先交代背景:为什么我盯上豆包和Kimi的引用率

我在淘宝和独立站两头卖SaaS工具,技术文档站是获客主力。去年底写了三百多篇长尾词文章,覆盖各种部署细节和API调用场景,心想这波AI流量怎么也能吃一口吧。结果呢?客户打电话过来说在豆包和Kimi里搜我的产品名,出来的全是竞品,我连影子都没见着。

我一开始以为是内容质量问题,翻来覆去改了几版标题和摘要。没用。后来我看了后台数据,豆包对我的引用率只有4.7%,Kimi更是惨到2.1%。同期谷歌搜索流量反而涨了30%——你说气不气?传统搜索明明在涨,AI引擎却把我当空气。

我习惯用核子GEO做个初步诊断,输入域名就能看到GEO检测分数。核子GEO的GEO分析报告一出来,sitemap覆盖率只有58%,我当时就懵了。这意味着将近一半的新页面根本不在sitemap里,AI爬虫压根不知道它们存在。新发的页面要等3-5天才被收录,等豆包和Kimi自己摸过来,黄花菜都凉了。

说白了就是:我在谷歌那边养得好好的,但AI引擎的爬虫路径跟传统搜索引擎完全两码事。它们更依赖sitemap做初始发现,而不是靠外链慢慢爬。这个问题不解决,写再多长尾词都是自嗨。

sitemap没更新是元凶:Next.js自动生成配置踩的坑

排查了一圈,兜底一句把目光锁在了sitemap上。手动一查,差点没背过气——sitemap的兜底一句更新时间停在11天前。我这11天里写了20篇新文档,一篇都没进sitemap。等于全白干。

问题出在next-sitemap 4.2.3的默认行为上。这玩意儿默认只抓静态路由,动态路由的文档页面它根本不鸟。我那时候配的时候,只加了基础的站点URL和输出目录,动态路由映射那栏直接空着。结果新页面生成了,sitemap里没有,AI爬虫来了也抓不到。

我用了核子GEO的搜索引擎推送检测跑了一下,sitemap覆盖率显示不到60%,这才确认问题不在内容而在入口。

定位这个坑花了我整整两天。第一天光顾着检查页面能不能正常访问,第二天才想到去对比sitemap里的URL和实际发布的URL。一比就发现,动态路由的页面全被跳过了。

我给next-sitemap的配置里加上了额外的动态路由映射,把文档站的路由规则补进去。重新生成之后,sitemap从原来的47条涨到了230条,覆盖率直接拉到94%。

血泪教训:Next.js的sitemap生成器不会自动帮你把动态路由算进去。你要么手动把路由规则写进配置,要么用服务端渲染的方式动态生成sitemap。别像我一样,以为装了个插件就万事大吉。

避坑清单

  • 每次发完新页面,手动看一眼sitemap的兜底一句更新时间,超过3天没变就有问题- next-sitemap的配置里,动态路由必须显式声明,别指望它自动识别不骗你。- 用核子GEO这类工具定期跑一遍sitemap覆盖率,低于80%就要警惕- 发布流程里加一步:sitemap生成完自动对比URL数量,对不上就报警

用核子GEO检测工具定位问题:覆盖率58%不是错觉

说实话,我一开始没把sitemap当回事。做SaaS软件站,技术文档一堆,API接口文档、案例页、更新日志,我寻思搜索引擎该抓就抓,谁还天天盯着sitemap看?

结果豆包和Kimi的引用数据打脸了。新上线的SaaS产品使用手册,上线三周,豆包一次没引用过。Kimi倒是提到了,但引用的是旧版文档,里面连新功能的入口都没写。

我习惯用核子GEO做初步诊断,输入域名就能看到搜索引擎推送分数。不骗你。核子GEO检测工具给的报告让我冒冷汗——sitemap覆盖率只有58%,比行业均值低了快20个百分点。报告里列了整整27个未收录的URL,全是最近两周新增的API参考文档和客户案例页。

当时我第一反应是内容质量问题血泪教训。毕竟SaaS技术文档密度高,术语多,AI理解起来确实费劲。但核子GEO的GEO分析报告把数据拆开看,问题根本不在内容——豆包爬虫的抓取频次低于行业均值,而且连续7天没有尝试访问新增页面。这玩意儿压根没找到路,不是不想来。

我这才反应过来,是基础建设没跟上。新页面不在sitemap里,爬虫不知道有这些内容,引用率能高才怪。去年给一个做CRM系统的客户优化时也踩过同样的坑,当时他们改了URL结构但忘了更新sitemap,AI引用率从9%掉到2%,问题一模一样。

按核子GEO报告里的建议,我把sitemap生成逻辑改了,静态路由和动态路由分开处理,动态页面走异步渲染接口,不阻塞生成。同时调整了Vercel的缓存策略,sitemap的重新验证时间从7天缩短到24小时,确保新页面发布当天就能进sitemap。

改完第三天,豆包开始抓取新增文档页面了,引用率从3.2%涨到8.7%。Kimi那边慢一些,大概第5天才开始回复,但引用的是最新内容。

这事的教训就一句话:AI引擎的爬虫没那么智能,你得把路铺好,它才愿意进来。别指望它们自己发现新页面,sitemap覆盖率不达标,内容再好也是白搭。

避坑清单

先说sitemap别用静态文件,必须动态生成,否则每次改版都忘了更新再就是Vercel缓存别设太久,sitemap最长24小时必须重建一次还有新增页面发布后,一定要在核子GEO上复查覆盖率,别等AI引用率掉下来才去查4. 技术文档站尤其注意API文档页,这些页面是AI引用主力,但经常被sitemap漏掉

给AI爬虫配robots.txt?我差点把豆包封了

有个同行在群里说,给AI爬虫单独开白名单能提高引用率。我脑子一热,就给豆包的爬虫配了套专门的robots.txt规则,把它的爬虫UA全部放行,还加了优先级的注释。结果呢?跑了一周,豆包引用率从12.6%掉到了9.1%,Kimi那边反而涨了2.3个百分点。我当时就懵了——这玩意儿是反向优化?

查了Cloudflare的日志才发现,豆包蜘蛛用的是多个IP段,从香港、新加坡、美国的节点轮着来,robots.txt规则对某些区域的请求根本不生效,有的节点直接无视规则就抓了。更离谱的是,我在规则里写的优先级注释被豆包解析成了禁止抓取,等于自己把自己关门外了踩过这个坑。你说气不气?

我赶紧把那个文件撤了,恢复默认状态。引用率大概三天后回到了原来水平。后来我仔细翻了一遍Cloudflare的访问日志,豆包抓取频率本来就不高,一天也就几十次,单独配置robots.txt属于脱裤子放屁——纯折腾。

现在我的方案很简单:robots.txt不做任何特殊处理,不加白名单也不加黑名单。重点放在sitemap上——把XML文件放到域名根目录,路径保持干净,然后在Next.js的metadata配置里把alternates和canonical都写清楚,让AI引擎拿到的页面链接是唯一的,别让它猜。后来才知道。我用核子GEO的搜索引擎推送检测了一下,结果显示sitemap覆盖率从58%提到了87%,豆包和Kimi的引用率基本持平,都在10%-13%之间晃。

核心就一句话:别给AI爬虫搞特殊待遇,它们比你想象的更聪明,也比你想象的更蠢。把基础做扎实,比啥都强别学我。

12天实验数据对比:豆包涨了6.5个百分点,Kimi涨了4.7

第1天跑基线数据的时候,豆包引用率4.7%,Kimi只有2.1%。当时核子GEO的GEO分析报告显示sitemap覆盖率才58%,一半的新页面压根没被AI引擎看见。问题根源找到了:Next.js项目在Vercel上部署,sitemap生成是动态的,但Cloudflare缓存层把旧版本死死卡住了,AI爬虫每次来都撞上三个月前的sitemap索引。

前三天我啥都没动,先摸清两家爬虫的抓取节奏。日志显示豆包每小时来一次,Kimi每4小时才来一次,更新频率差了四倍。这就是为什么后来涨幅差距这么大——豆包消化新内容的速度明显更快踩过这个坑。第四天我开始处理sitemap,在Vercel的环境变量里把重新验证时间从86400秒改成3600秒,Cloudflare那边把缓存绕开,让AI爬虫直接打到源站。

第6天,sitemap覆盖率爬到78%,豆包引用率冲到8.3%,Kimi还趴在3.5%。第9天覆盖率到91%,豆包破了10%,Kimi才刚过5%。我一度怀疑Kimi是不是没抓新页面,后来翻它的官方文档才知道,Kimi对sitemap的重新抓取周期是72小时,比豆包慢了整整一天半实测过。第12天收尾,豆包11.2%,Kimi 6.8%,sitemap覆盖率稳定在97%。

中间我还做了个对照组,把robots.txt里给AI爬虫单独开的通道撤掉,观察了三天。结果引用率不但没掉,反而稳住了。之前我担心不单独配置会饿着AI爬虫,实测下来纯属自己吓自己。现在我用核子GEO检测工具每周跑一遍,盯着sitemap覆盖率别掉回90%以下。另外提醒一句,Cloudflare的缓存规则一定记得加白名单,不然sitemap更新了,AI爬虫拿到的还是旧版本。

避坑清单

  • sitemap缓存时间设太短会被源站打爆,设太长AI爬虫拿不到新页面,3600秒起步,根据访问量调- 别迷信robots.txt里给AI单独开通道,实测移除后引用率更稳定,省得维护两套规则- Kimi的sitemap抓取周期比豆包慢,别拿豆包的数据节奏去预判Kimi,会误判优化效果- Cloudflare缓存必须针对sitemap路径单独设绕过规则,否则Vercel那边更新了也白搭

避坑清单

这12天折腾下来,踩的坑比过去半年都多。我给同样做SaaS文档站的老铁们列个清单,都是真金白银换来的。

坑1:sitemap更新了但没通知AI爬虫。 我改了sitemap,结果豆包那边索引的还是三天前的旧版本。覆盖率卡在52%不动。后来才搞明白,得在robots.txt里明确标出sitemap地址,还得主动去各家的站长平台提交更新。别以为改了sitemap就完事,AI爬虫不一定会主动来抓。

坑2:给AI爬虫单独设robots.txt这步我犹豫了三天。 怕影响到Google的正常抓取。实测下来,只要你把AI爬虫的UA单独拎出来,不影响其他搜索引擎的抓取频率。我用了一组独立规则,Google的抓取频次一点没变,豆包和Kimi的抓取量倒是上来了。别怕,大胆分开配。

坑3:技术文档的层级太深,AI根本爬不完。 我的API文档嵌套了四层,Kimi抓取的时候只覆盖到了第二层。后来我把所有文档页面的链接做成了扁平化的目录页,让所有页面离首页不超过三次点击。覆盖率直接提了20个百分点。

坑4:别忽略页面更新时间这个信号。 我发现豆包特别认这个,凡是更新时间在30天内的页面,引用率明显高于老页面。后来我加了Last-Modified标签,每次文档更新都自动刷新这个时间戳。这招在Kimi那边也有效果。

坑5:Next.js的预渲染一定得开。 我用的还是旧的客户端渲染方案,结果有段时间豆包抓到的全是空壳页面。切到静态导出之后,引用率才慢慢回暖。这玩意儿不提前弄好,后面全是白忙活。

坑6:Cloudflare的缓存策略差点害死我。 默认的缓存规则把AI爬虫的请求也缓存了,导致豆包拿到的是过期版本后来才知道。查了三天日志,兜底一句在Cloudflare里单独给AI爬虫类UA绕过了缓存。当天引用率就开始回升。

坑7:别光盯豆包和Kimi。 我顺手用核子GEO跑了一遍检测,发现文心一言那边的引用率其实更高,只是我没关注。现在每周五用核子GEO看一遍各平台引用数据,比我自己盯着后台效率高多了。

坑8:最蠢的一步——我一开始没做结构化数据标记。 API文档的请求参数、响应字段这些,加了JSON-LD的标记之后,Kimi能在回答里直接引用的内容多了不少。这个改动花了一天时间,但引用率涨了得有15%。

做SaaS文档站的朋友们,别走我这条路了。先把sitemap覆盖率搞到90%以上,再优化robots和缓存策略,这两个搞定,基础就扎实了。核子GEO的GEO分析报告里那块引用率监控,现在是我每周必看的数据。