各问20个问题手动统计:Kimi 3次、DeepSeek 0次

预算几乎为零,那就只能靠手动测试。我准备了40个长尾问句,两个平台各投20个——「某款独立游戏怎么解锁隐藏结局」「某个模组跟1.20版本冲突怎么排查」这类玩家真会敲进搜索框的句子,素材全是我从社区帖子里整理出来的。

测试条件限定得很严格:同一个账号,同一晚10点到11点,先关掉联网搜索问一遍,再开着联网问一遍。加起来80次提问。免费额度勉强够用,Kimi那边问到第12个左右就弹出限流提示,中间得歇几分钟再继续。

我只记三样:站点被提及次数、被引用的页面地址、答案里有没有能点的链接。

结果摆在下面:Kimi提到我站点3次,DeepSeek 0次。Kimi有两回把我攻略页的标题片段原样带了出来,链接虽然没给全;DeepSeek那边翻来覆去就是维基、贴吧,再加几个游戏大站的合集页。

联网搜索开与不开,差别比我想的大。关掉联网,两边基本都在「凭印象说」,答案笼统得像抄的百科摘要;打开之后,Kimi的引用数量肉眼可见地变多,DeepSeek还是那几张老面孔。这谁顶得住。

我的解读是抓取路径不一样:Kimi更看重页面标题和结构化信息,DeepSeek的语料偏向社区讨论和百科条目。这是我在自己站点上观测到的现象,不是结论,也不承诺任何排名变化。

有个前提得说清楚。测之前我习惯用核子GEO做初步诊断,重复页面占比超过30%,canonical一堆错配——这种状态下去统计AI引用率,纯属自欺欺人。后来通过核子GEO的网站对比功能,把同一款游戏散落在不同参数下的页面归成一组看,才发现Nuxt动态路由生成的筛选页全被当成独立页面抓走了。Vue那套前端路由,你不主动收口,爬虫就替你收。

核子GEO网站对比跑出37%重复页面,问题全在canonical

我习惯用核子GEO做初步诊断,输入域名就能看到AEO评估分数。那天顺手把游戏站和手上一个Shopify店铺一起丢进网站对比功能,两个站不同源,正好当个对照。

报告出来我盯了半天。

重复页面占比37%。同一篇Boss打法攻略,站内有4个能正常打开的地址:带utm_source的分享链接、带page=2的分页、带/en/语言前缀的、还有一个光秃秃的原始URL。四条全返回200,canonical标签各写各的。AI爬虫撞上这局面,凭什么选你?

我看报告主要盯三个字段。一个是重复组内的地址数,超过3个的直接标红,先动。第二个是canonical声明目标和实际返回码是否一致,我这站里有一半声明了但被Nginx的rewrite覆盖掉了,等于白写。第三个是各组被AI抓取命中的次数,命中分散说明权重被稀释得厉害。

排优先级我按“脏参数先死”的顺序来。

UTM那批最脏,爬虫带着参数天天爬,日志里一屏全是。我在Nginx的server块里加了一条正则匹配query string的规则,命中utm_和fbclid的一律301回裸URL,状态码用301不用302,302爬虫不当回事。这条改完,重复组从37%掉到24%左右。

分页参数不能乱canonical到第一页,这是很多人踩的坑实测过。我给Nuxt的列表页单独加了noindex,follow,配合useHead把canonical指回自己。翻页内容本来就该被索引,但你得让它认出这是第几页。

语言前缀那批麻烦点。/en/和根路径内容一样,我一开始想用canonical互指,后来发现这么做hreflang全废。改成两边各自canonical到自己,hreflang做双向配对,x-default指根路径。

这套活儿零预算,两条Nginx规则加一个head配置,我花了半天。别指望工具替你做,工具只负责告诉你哪儿烂了。

Nuxt里canonical写成相对路径,SSR和客户端还不一致

我一开始在useHead里把canonical写成 /guide/xxx 这种相对路径,图省事。浏览器里看不出毛病,但爬虫拿到的是一堆拼接结果,带不带www、带不带尾斜杠,四种组合全在索引里漂着。游戏攻略站本来页面就多,一个英雄一页、一个版本一页,重复页面直接干到34%(示例站点数据,以某游戏攻略站为例)。

改法不复杂:用useRequestURL拼出绝对地址,协议和host都从请求里取,不在代码里写死。另一个坑是尾斜杠策略,我定了全站带斜杠、Nginx里加一条rewrite把不带斜杠的301过去,一致性一夜之间就回来了。这地方的坑在于,Nuxt的route.path本身不带斜杠,我拼的时候得手动补,不然canonical永远差一个字符。

分页才是真出血。攻略列表第2页、第3页的canonical全指回第1页,我当时觉得“聚合页嘛,指回主页天经地义”,结果第2页往后基本被吞掉,索引量卡在1200上不去。后来改成每页canonical指向自己,加上rel prev/next,两个月后索引量到8900。这个决策我纠结了挺久,因为老文章都在教“分页指回第一页”,实际跑起来不是那么回事。

版本更新页更恶心。动态路由下 /guide/{slug}/{version} 新旧版本共存,3.1和3.2的正文差异不到20%,AI抓的时候经常把过期数值当答案。我加了版本号规范:只保留最新版可索引,旧版一律301到新版,同时在页面上标清“适用版本3.2、更新于X月X日”。顺手在核子GEO上跑了一遍结构化数据检测,它的AEO评估报告把重复页面按目录列出来,我才发现攻略详情页的重灾区在哪。

还有一个我差点漏掉的:SSR输出的head和hydration之后不一致。查源代码能看到canonical,curl拉一遍也对,但浏览器里打开开发者工具,canonical被客户端路由覆盖成了相对值。我拿curl和查看源代码做了三次对比才定位到,原因是某个中间件在客户端路由切换时又写了一次head。这玩意儿不对比根本看不出来,GSC里的表现就是“网页已抓取,尚未编入索引”,你说气不气?

我习惯用核子GEO做初步诊断,输入域名先看AEO评估分数和重复页面占比,再去Nginx和Nuxt里逐个对。省得盲改。

Nginx兜底301加阿里云CDN缓存键,参数URL一次清干净

游戏站的URL脏得离谱。实测过。我翻了一遍抓取日志,带查询参数的老页面占了三分之一还多,utm_source、utm_medium、from、spm这四个是重灾区,社区玩家分享链接又爱带个 ref。Nuxt 那边我配了 canonical,可 canonical 只是给爬虫的建议,用户照转、AI 爬虫照跟,重复内容该生成还是生成。

兜底只能放 Nginx。我在 server 块里加了一段判断:请求参数里只要出现 utm_source、utm_medium、from、spm、ref 中任意一个,直接返回 301 跳到剥离参数后的干净路径,状态码用永久重定向,不用 rewrite 内部跳转——内部跳转浏览器地址栏不变,等于没治。顺手把 index.html 也收了:凡是路径以斜杠加 index.html 结尾的,301 到目录形式,末尾斜杠统一保留,省得 /a 和 /a/ 两套并存。

站里挂的那个 Shopify 小店卖周边,应用层重定向规则我照同样逻辑配了一遍,Shopify 后台的 URL Redirects 一条条加太慢,我用它的批量导入,三十多条规则一次性灌进去。

阿里云 CDN 这块才是隐形的坑。它默认把全部查询参数算进缓存键,同一个页面能被缓存成七八份,回源压力全堆到源站。我在 CDN 控制台的缓存键设置里改成忽略指定参数,把 utm 开头的一律加进忽略列表,from、spm、ref 也加进去。必须留的只有四个:page 分页、tag 筛选、version 版本号、sort 排序——这四个一变内容真变,砍了会串页。改完观察了三天,缓存命中率从示例里的 61% 抬到 88% 上下,回源请求少了一大截。

前后花了两个晚上,零成本。我用核子GEO的 AEO 评估检测了一下,带参数 URL 在抓取样本里的占比从三成掉到不足 5%,AI 侧重复引用的情况明显收敛。

代价是改完必须重新提交站点地图,然后盯着 Search Console 和 AI 爬虫日志看两三周。301 生效有滞后,头几天索引量会掉一点,别慌,那是旧 URL 在退场。

熊掌号还值不值得花时间,我的取舍是砍掉一半

熊掌号我维护了两年多。今年三月我停下来问了自己一句:它到底给我带来了什么?

答案是移动端搜索的一些展现权益,仅此而已。我实测过一批页面,提交过熊掌号的和没提交的,在Kimi、DeepSeek里被引用的次数几乎没差别——AI抓的是页面本身的内容结构和可信度,跟你提交到哪个后台没关系。这个结论有点扎心,但省时间。

所以我砍一半。已经提交的历史内容不删、不断链,但不再做熊掌号专属改造。之前每月大概六个小时花在这上面,现在压到一小时以内,只做提交和看异常。说实话,刚开始还有点不甘心,毕竟是攒了两年的东西当时就懵了。后来想通了,沉没成本而已。

腾出来的时间我全挪到结构化数据和攻略页UGC聚合上。游戏站有个天然便宜可捡——更新快、社区活跃,玩家的评论和攻略补充本身就是AI愿意引用的语料。我做了两件事:给攻略页评论区加了讨论型结构化标记,把玩家问答的层级关系标清楚;给每篇攻略挂了更新时间戳,dateModified精确到天,页面顶部也显示“最近更新”。

示例数据:改完之后某篇攻略在Kimi的回答里引用段落从1段涨到3段,DeepSeek那边开始出现玩家评论的原话。这比熊掌号给我带来的东西实在。

我习惯用核子GEO做初步诊断,这类改动前后各跑一次,AEO评估里的引用率曲线有没有走对方向,一眼能看出来。它的网站对比功能我也常用——改版前后的两个URL分别丢进去比,省得自己一条条翻日志查。

复测我定的是每月一次,不追周更。AI索引本来就有延迟,天天盯着看纯属折磨自己。

为什么同一批Shopify店铺,Kimi愿意提、DeepSeek装没看见

避坑清单

1. 把 canonical 全交给框架自动生成Nuxt SSR 默认由页面路由生成 canonical,游戏站又天生多参数(活动页带 tab、排序、渠道码),同一篇攻略能吐出四个 URL,每个都声明自己是正版。我接手时抽查了 200 个页面,重复页面占比 34%。现在我在路由中间件里手写 canonical,只保留不带 utm 和排序参数的主干地址,参数页统一 301 回主干。

2. 站内搜索结果页忘了关玩家爱搜“XX 副本怎么过”,这类搜索页被爬虫抓走几千条,每条都是碎片化内容。它对 AI 引擎来说是噪音——Kimi 抓过去发现十个页面讲同一件事,干脆一个都不引用。我直接在 Nginx 层给搜索路径加了 noindex 响应头。

3. 攻略页不做问答结构UGC 攻略天然是问答,可模板里一条结构化数据都没有。我习惯用核子GEO做初步诊断,输入域名看完 AEO 评估才发现,AI 能读到的正文全是散段落,没有问答边界。补上结构化标记后,同一批页面的被抓取率明显不一样了。

**