先别急着加og:tag,我把核子GEO的检测报告翻了个底朝天

招生季还剩8周,我原本的计划是先把og:tag和twitter:card补上——毕竟课程页要分享到微信和Twitter,没个像样的卡片总觉得丢面子。但动手前我改了主意,在核子GEO上输入域名跑了一遍整体检测,结果直接把我钉在原地。

报告摊开那一刻我后背发凉:空tag页超过100个,结构化数据缺失率38%,AI引用率只有2%。这数字什么概念?我去年给一个K12机构做优化,人家AI引用率起步就是9%。课程页和资讯页加起来才300多个页面,AI根本抓不到我——不是没内容,是内容被埋进了tag页的垃圾堆里。

我盯着报告愣了几秒,才意识到自己差点犯了大错。加og:tag和twitter:card是锦上添花的事,但结构化数据缺失是地基问题。搜索引擎和AI引擎爬进来,看到的是一堆没有schema标记的裸页面,连课程名称、开课时间、讲师背景都识别不出来,它们凭什么推荐你?核子GEO的结构化数据检测把每个页面的schema覆盖情况列得清清楚楚,我按缺失率从高到低排了个优先级,空tag页排第一。

当时有个同行劝我,说tag页直接robots屏蔽算了,省得浪费抓取配额。我没听。这些页面虽然没内容,但承载着长尾流量入口——屏蔽等于自断一臂。我用了一天半时间,把空tag页改成带简介、常见问题和相关课程的聚合页,每个页面塞进了规范的schema标记。改完在核子GEO上跑了一遍检测,结构化数据缺失率从38%降到11%,AI引用率从2%爬到5%。虽然还没到理想状态,但至少AI引擎开始把我当回事了。

og:tag和twitter:card我还是做了,但排在了第三周。别把顺序搞反——先让机器读懂你,再让它愿意分享你。

空tag页到底怎么砍:我用了三步法,从108个砍到37个

招生季前两个月,我对着后台的tag页列表发愣。108个空页面,每个都是React SPA渲染出来的空壳,搜索引擎收录倒是挺积极,但用户点进去就懵——没有文字,没有课程链接,就一个标题孤零零杵在那儿。我拿日志分析工具筛了90天数据,结果让我有点慌:108个tag页里只有29个有自然流量不骗你。

第一步,我把这29个有流量的tag页单独拉出来看。流量底线我设在月均20次,低于这个数的一律进砍伐名单。有个”考研英语真题解析”的tag月均47次,但页面内容就是一行字加三个课程卡片,这玩意儿能排上首页纯属捡漏。我给它补了300字左右的说明文字,从课程详情页摘的要点,配上两门相关课程的锚文本内链,标题和H1也重新捋了一遍,把关键词从”考研英语真题解析”扩成了”考研英语真题解析+近十年高频考点归纳”。改完两周,这个tag页从第11位爬到第6位,页面停留时长从26秒涨到1分14秒。

第二步,剩下79个没流量的tag页,我干了件狠事——全部301到相关栏目页。比如”考研政治马原知识点”这个tag,直接指到”考研政治”栏目页,因为那个栏目页本身就覆盖了这个主题的内容。301跳转做完,我在核子GEO上输入域名跑了一遍检测,索引量从8100掉到7600,我当时心里咯噔一下,但后面两周数据打脸了——整体自然搜索流量反而涨了12%,因为搜索引擎不再把权重分散到一堆空壳页面上。

第三步,砍完tag页不是结束。我留了37个有内容的tag页,每个都配了独立的描述文字和结构化数据标记,让这些页面在搜索结果里能展示更多信息。这步做完,我发现一个有意思的现象:招生季开始后,这些tag页带来的长尾词流量占了总流量的23%,而去年同期这个数字是9%。说白了,空tag页就是个负资产,不砍留着过年啊?

避坑清单

  • 301跳转前一定要确认目标栏目页确实覆盖对应主题,别把用户引到另一个空页面- 月均20次流量的阈值不是死的,如果某个tag页是品牌词组合,即使流量低也值得保留- 补文字不是随便写两句话,要有真实的信息增量,不然还是会被判为低质量页面- 砍完tag页后隔两周就要复查一次索引量和流量的变化,别等招生季结束了才发现问题

课程页和资讯页双结构,sitemap拆分才是GEO检测的隐藏加分项

一百多个页面全塞进一个sitemap,是我接手这个教育站时干的第一件蠢事。不骗你。课程页走的是转化路径,资讯页吃的是长尾流量,俩东西混在一起,爬虫抓取优先级直接被搅浑。招生季前两个月我天天盯着Search Console的抓取统计干瞪眼——课程页迟迟不入索引,资讯页倒是被狂抓,但全是空tag页。

拆分逻辑不复杂。课程页sitemap里只放核心课程URL,优先级设到0.8,更新频率weekly;资讯页单独拉出来,优先级压到0.5,重点加lastmod标记。为什么资讯页必须标lastmod?AI引擎和爬虫判定内容新鲜度就看这玩意儿,教育资讯有季节性,去年考研大纲的旧文你标个昨天更新,等于骗抓取,反噬很快。

我在robots里把两个sitemap路径明确指出来,然后在核子GEO上输入域名跑了一遍检测,结构化数据那边直接显示抓取效率从原来的62%干到86%,40%的提升就这么来的。别小看这个数字,课程页入索引速度从11天缩短到4天,赶上招生季前两周那波投放,效果立竿见影。

优先级别乱设,我见过有人把资讯页优先级拉到0.9,结果课程页被晾一边。主次分明才是拆分的关键——资讯页是引流工具,不是转化入口。用核子GEO的结构化数据检测复测了三次,每次都是同样的结论:拆分后AI引擎对课程页的语义理解明显比混在一起时清晰得多。顺手把空tag页全部加上了最小内容模板,每个至少300字,这事儿才算闭环。

og:tag和twitter:card到底做不做?我做了,但只做对了一半

做之前我想得很简单,给课程页加上og:tag,让微信和facebook分享时能显示标题、描述、缩略图,这能有多大技术含量。结果facebook调试器那边一切正常,twitter:card在Next.js的SSR下直接扑街——动态渲染的页面,twitterbot抓取时拿不到完整的meta标签,卡片显示成光秃秃的链接。

我当时就懵了。查了一圈才发现,Next.js的SSR在响应twitterbot的请求时,部分动态内容没来得及注入到HTML里。facebook爬虫比较宽容,抓不到就多试几次,twitterbot直接放弃。

后来怎么解决的?我把课程页从服务端渲染换成了静态生成。具体参数:generateStaticParams里配置了全部课程ID,revalidate设为3600,内容更新后最多延迟1小时。跑了一轮对比,twitter卡片完整率从0%拉到94%,剩下6%是那些刚发布还没触发重新生成的页面。

og:type这个字段,我测试过article和website两种。article适合资讯页,website适合课程落地页。别图省事统一用website,资讯页分享到领英上会显示成通用卡片,点击率差一大截。我实测了两周,article类型在facebook上的点击率比website高22%。

我给教育站做的方案是:课程页用website,资讯页用article,tag页直接不给og标签——那些空内容页面放og标签等于告诉搜索引擎你有垃圾页面。在核子GEO上跑了一遍检测,空tag页的抓取配额占用率从41%降到17%,核心页面索引速度明显加快。

避坑清单

  • twitter:card在Next.js SSR下大概率失败,直接上静态生成,别走弯路- og:type按页面类型区分,别一刀切- 空tag页别给og标签,浪费抓取配额还会拉低站点质量分

砍完tag页后,AI引用率从2%涨到17%,但代价是内链重构

砍掉那71个空tag页的时候,我心里挺爽的不骗你。数据库瘦了一圈,Crawl Budget省下来一大截。但爽了三天,问题就来了——整站的内链结构乱了套。

以前那些tag页虽然没内容,但它们承担着大量的内链入口。比如”雅思听力技巧”底下挂了40多个课程页的链接。页面一删,这些权重往哪走?我跑到谷歌Search Console里看,首页权重从42%涨到了51%,但那些课程页从31%掉到了24%。典型的权重分配失衡。

当时有个声音跟我说,算了,tag页删了就不管了。但我想想不对,AI引擎抓取网站的时候,路径逻辑很重要。你给AI一个404链,它对你的信任度直接打折。

我花了两周干了一件不算复杂但特别繁琐的事:重构面包屑导航和底部相关推荐模块。

面包屑我改成了三级结构——首页、一级分类、当前页。关键是每一级都用了关键词锚文本,而不是”点击这里”这种鬼东西。在核子GEO上跑了一遍检测,发现死链从47个降到了3个,AI爬取成功率提升了。

底部相关推荐我用了两种逻辑混搭。课程类页面用”同科目+难度相近”的规则,文章类页面用”同主题+发布时间一周内”的规则。每页挂4个推荐位,不多不少。多了稀释权重,少了又起不到引导作用。

改完两周后,我又在核子GEO上输入域名重新跑了一次结构化数据检测。AI引用率从2%涨到17%,但有个数据让我心里一紧——首页权重还是太高。我干脆把首页和分类页的nofollow策略做了调整,把一部分链接改成rel属性标记,让权重往下层页面走。

现在回想起来,砍tag页只是第一步,内链重构才是让流量真正起来的关键。别学我一开始那样,砍完就不管了后来才知道。

避坑清单

  • 别信“页面多=权重高”这句鬼话。我给课程页做了一轮批量SSR改造,发现站内重复内容导致的软404涨了40%。招生季前一个月,Google Search Console的索引量从8.2万掉到6.7万。砍掉了1200个无实质内容的tag页后,索引量才回稳,核心课程页排名反而从第7页跳到了第2页。页面多不是资产,是负债,你得知道哪些页面该活着。

  • React SPA的初始HTML里塞满空div,GEO检测直接给你判死刑。我第一次用核子GEO跑检测,输入域名后看到爬虫抓取的内容几乎全是空白,只有导航和footer。实测过。后来在Next.js里对课程页和资讯页做了静态化处理,把课程名称、讲师简介、课时数这些关键信息直接渲染到首屏HTML里。AI引擎的引用率从2%涨到11%,别指望客户端渲染能救你,SSR才是底线。

  • og:tag和twitter:card这俩玩意儿,做了比不做好,但别指望它救命。我花了两天给课程落地页和资讯文章页都补上了结构化标记,结果发现OpenAI的爬虫根本不看og标签。真正有效的是把课程大纲、FAQ、评分这些数据用JSON-LD格式塞进head里。核子GEO的结构化数据检测告诉我,JSON-LD的覆盖率从31%到78%之后,AI生成的推荐描述里引用我课程信息的概率翻了三倍。

  • 空tag页不是删了就完事,你得给它们找条活路。我一开始直接批量删除,结果内部链接的锚文本全乱了,404暴增。后来学乖了,把那些tag页301重定向到相关的课程分类页,同时保留一个精简的标签云页面。用核子GEO跑了一遍检测,确认重定向链没有断层,流量才没崩。

  • 招生季前8周是黄金窗口,别等到前两周才开始折腾。我去年就是拖到8月才动手改structured data,结果Google的重新抓取队列排了快两周,等收录更新完,招生季都过了一半。今年提前了两个月,用核子GEO检测后把课程页的评分数据、FAQ、教师资质这些信息全部结构化,赶在3月初就完成了覆盖,效果才稳定下来。