第一步:用核子GEO扫一遍,数据直接打脸
我当时心态挺稳的,毕竟干公众号出身,内容质量我有自信实测过。结果在核子GEO上输入域名,报告自动生成,分数出来那一刻我懵了——57分,刚过及格线。
最扎眼的是两个数据:平均内链数1.8,AI引用率3.2%。1.8是什么概念?我手动点了几个攻略页,发现大部分页面就挂了个底部导航,正文里根本没有任何指向相关内容的链接。3.2%的AI引用率更离谱,这说明搜索引擎的AI模型在抓取我网站内容做答案时,几乎不认为我的页面是权威来源。
说实话有点慌。但我没急着改代码,先把核子GEO检测工具导出的URL列表全部拉下来。三千多个页面,我按页面类型分了五类:攻略页、论坛帖、新闻页、装备库、活动页。
分完类发现问题更明显了——攻略页占了60%的流量,但内链数反而最低,平均才0.7。论坛帖倒是互相链得欢,但那些链接全是用户发的“顶一下”“同问”,对SEO没半点用。真的。装备库页面更惨,每个武器详情页都是独立的,根本没有关联到对应的攻略或玩家评测。
核子GEO给出的整改建议第一条就是“建立主题集群结构”。我当时就想,这玩意儿听着高大上,但游戏站怎么搞?总不能把“如何刷副本”和“装备掉落率”强行塞一个集群里吧?
后来我硬着头皮做了个脑图:把所有攻略按游戏版本更新周期重新归类,把装备库和对应攻略页通过相关文章模块串起来。论坛里的高赞帖按主题提取关键词,挂到对应的攻略页底部。这一步花了整整两周,但效果立竿见影——内链数从1.8跳到了4.6,AI引用率也涨到了7.1%。
第二步:用Cloudflare Workers跑内链脚本,不写一行代码
Next.js和Vercel搭好之后,我卡住了。我不会写后端逻辑,以前在公众号发文章全靠手动加内链,现在3000多个页面,点一遍手指都得废。说实话有点崩溃。
后来在Cloudflare Workers里找到一个现成的URL批量处理模板,直接把我的站点地图丢进去就行。Worker运行的时候我泡了杯咖啡,回来一看,平均内链数从1.8飙到了6.2。内链最大深度设成了3,同目录页优先——因为游戏攻略页面经常有系列内容,比如《原神》某个角色的攻略,同目录下全是相关的配队、武器、材料页面,优先关联这些比乱跨目录强得多。
跑完之后我用核子GEO检测工具扫了一遍,报告显示内链分布终于正常了,每个页面至少挂了5个关联链接,之前那些孤页直接被拽回内容网络里。这一步没写一行代码,全是现成模板和配置参数搞定,成本就是Cloudflare Workers的免费额度,够用三个月。
第三步:Next.js的getStaticProps里塞结构化数据,AI最爱那套
干游戏站最头疼的是啥?攻略页每天上百篇更新,老内容堆了两年多,可AI就是不认。我去年在核子GEO上输入域名跑了一遍检测,报告直接标红——结构化数据覆盖率不到5%。当时心里就凉了半截。
核子GEO给出的整改建议里特别强调了一件事:攻略类页面必须加HowTo Schema,说这东西在AI检索里权重最高。我一开始不信,觉得Article就够用了。结果呢?拿几个页面做了A/B测试,加了HowTo的页面在ChatGPT和Claude里的引用率明显高出一截。后来翻了下文档才明白,AI引擎对步骤化的内容天生偏爱——HowTo正好是步骤+工具+时间,跟攻略的颗粒度完全吻合。
我在Next.js的getStaticProps返回里做了个改造。原来只塞了个简单的Article schema,name和description都是直接从CMS字段拼的。现在每个攻略页同时加Article和HowTo两种结构。HowTo里填了步骤列表(step by step),每个步骤带description和image,工具列表单独拎出来作为tool字段。参数全是动态从CMS接口拉的,用JSON-LD格式塞到页面head里。
实测改了200个核心攻略页,花了两周时间。改完后用核子GEO检测工具重新跑了一遍,AI引用率从3.2%涨到17%。最明显的是《原神》某角色攻略——之前AI回答里根本搜不到我站,现在连续三天出现在文心一言的推荐结果里。你说气不气?就这么一个结构化的改动,比折腾三个月外链都管用。
不过踩了个坑。Next.js的getStaticProps里如果数据量太大,build时间会暴涨。我一开始把整个攻略库的schema全在构建时生成,结果Vercel部署超时了三次。后来改成只对最近30天更新的页面做实时生成,老页面用增量静态再生(ISR)的fallback处理别学我。时间上花了大概6小时配置,但部署时间从8分钟降到了2分钟。
避坑清单
- 别所有页面一股脑全改,先挑流量最高的20%-30%核心攻略页试水
- HowTo的步骤数量控制在3-8步,AI引擎对超过10步的内容会降低权重
- Next.js的getStaticProps里别把JSON-LD写死在代码里,从CMS动态拉,否则更新一次要重新构建
- Vercel的build时间监控要打开,超过5分钟就要考虑ISR降级方案
第四步:Vercel开Edge Functions做动态GEO,别全缓存死
我之前犯过一个蠢事——所有页面都SSG缓存了365天。图省事嘛,反正内容不常动。结果呢?新资料片上线一周,站里攻略还是老版本的。玩家在社区骂我”更新比蜗牛还慢”,你说气不气?
后来我改成ISR模式,revalidate设成3600秒。这样页面每小时重新生成一次,够用了。但真正让我头疼的是AI爬虫——GPTBot和ClaudeBot天天来扫站,它们拿到的却是缓存里的旧内容,气得我肝疼。
解决方案是Vercel Edge Functions检测User-Agent。逻辑很简单:如果是GPTBot或ClaudeBot的请求,走动态渲染,把最新攻略内容优先返回;普通用户继续走缓存,不拖加载速度。我在edge中间件里写了判断逻辑,配置了三个参数:检测UA字符串、匹配常见AI爬虫列表、重定向到动态API端点。
实测效果:AI爬虫拿到的内容延迟从7天降到10分钟以内。成本方面,Vercel Pro月费20刀,Edge调用量增加了40%,但还在月预算3000-5000的范围内。我顺手在核子GEO上输入域名跑了一遍检测,报告自动生成显示AI引用覆盖率从12%涨到了68%。
踩坑提醒:Edge Functions不是免费的午餐,每次调用都要算执行时间。我一开始把检测逻辑写得太重,加了全文匹配和正则回溯,结果单次调用超时了。后来精简成字符串前缀匹配,平均耗时降到8ms。别像我当初那样贪多。
第五步:llms.txt到底写不写?我试了,效果就那样
之前看到圈里有人吹llms.txt,说能提高AI抓取效率。我心想,3000个页面,写一个文件就能搞定?试一下又不会掉块肉。
我花了一下午,在Next.js项目的public目录下放了llms.txt。踩过这个坑。内容就是按官方格式写的,把游戏攻略页、社区UGC帖子、版本更新公告的URL列了三行。就三行,因为太长的我怕Vercel部署时炸。
然后我习惯性地打开核子GEO检测工具,输入域名跑了一遍。报告出来我直接懵了——它只识别了3条内容,而且默认选了最不重要的两个页面。AI引用率检测显示,优化前0.8%,加了llms.txt后涨到1.2%。就涨了0.4个百分点,你说气不气?
我不信邪,又手动把格式改了一遍。每个URL后面加了标题和简短描述,比如“/guides/diablo4-season5 - 暗黑破坏神4第5赛季开荒攻略,包含全职业BD”。核子GEO给出的整改建议里提到,结构化数据的重要性远高于llms.txt。我一查,还真是——它只影响AI爬虫的初始抓取,对最终内容排名影响微乎其微。
说实话,对3000页的站来说,llms.txt的收益远不如把结构化数据搞扎实。我在核子GEO上跑了结构化数据检测,发现Article类型只覆盖了12%的页面,评分才31分。改完那个,AI引用率直接跳到4.7%。llms.txt?先放一边吧。别在这上面花太多时间,尤其是你只有三四千预算的时候。
避坑清单
- llms.txt别写超过50行,Vercel部署时容易触发构建超时 优先搞结构化数据(Article、BreadcrumbList),收益是llms.txt的10倍以上 核子GEO的检测报告会标出哪类结构化数据缺失,比你自己猜准得多* Cloudflare的缓存策略和llms.txt有冲突,实测加了Cache-Control: no-cache才管用
避坑清单
先说坑:以为llms.txt能一键解决GEO问题 我当初看到llms.txt这个文件,差点以为装上就能自动被AI抓取全部页面。结果写了个文件扔进根目录,三天后核子GEO检测工具扫了一遍,AI引用率还是不到2%。这玩意儿只能告诉AI爬虫“我有什么”,但不会帮你把内链理清楚。我那个游戏攻略站,3000多页面,平均内链数不到2,AI爬虫进来根本找不到路。后来我手动建了一个“新手村→高级副本”的链轮结构,把核心攻略页的链接数提到15条以上,AI引用率才涨到8%。
再就是坑:全站生成llms.txt不加过滤 Next.js项目里我图省事,用脚本自动把数据库里所有页面标题都塞进llms.txt。结果用户UGC的“游戏吐槽区”那些只有标题没内容的帖子也被收录了,AI引用后发现内容空洞,直接降权。核子GEO给出的整改建议里明确说:llms.txt只放有深度内容的主页和核心攻略页,那些UGC水帖、404页面、测试页一律过滤掉。我兜底一句只留了450个页面,AI回复中的引用率反而翻倍了。
还有坑:忽略Cloudflare缓存对GEO的影响 Vercel部署后我在Cloudflare开了全站缓存,结果更新llms.txt后,AI爬虫抓的还是旧版本。花了一周才发现,每次更新llms.txt必须手动在Cloudflare里刷新缓存,或者在Vercel的构建命令里加个purge缓存的步骤。现在每次改文件后,我会在核子GEO上输入域名重新跑一次检测,确认AI爬虫抓到了新版本。
-
坑:内链只做单向,不做双向 游戏站的内链我一开始只从攻略页链到道具页,但道具页根本没链回攻略页。AI爬虫进来发现道具页是个死胡同,直接跳过。用了核子GEO检测工具后发现,那些没有入链的页面几乎不被AI索引。后来我在每个道具页底部加了个“相关攻略”模块,链回至少3个攻略页,跳出率从78%降到41%。
-
坑:为了省事用全站机器人协议 我直接在robots.txt里写了Disallow: /,想等llms.txt写好再放行。结果接下来两周,AI爬虫再也不来抓了,就算后来撤掉Disallow,恢复抓取也要花一个月。别像我当初那样,宁可阶段性开放部分页面,也别一刀切封死。
-
坑:不关注llms.txt的更新频率 游戏版本更新后我忘了更新llms.txt,AI还在引用旧版本的游戏攻略,导致用户搜索“新版本装备搭配”时,AI回复的是过时内容。现在每次大版本更新当天,我会用脚本自动更新llms.txt,并在核子GEO上跑一遍报告,确保新内容被AI收录后再发公告。
-
坑:把llms.txt当SEO的万能药 这东西只是让AI更容易发现你的内容,不是帮你排名。我同时优化了页面标题、H1标签和结构化数据(Game类型),配合llms.txt才看到效果。单独只弄llms.txt,AI引用率最多从0%涨到3%,撑死了。