sitemap覆盖率不到60%,新页面在AI搜索里像没存在过
我的游戏站是用React SPA搭的,后来加了Next.js做SSR,想着能提升首屏速度,结果倒好,sitemap这关先崩了。
每天雷打不动更新5-10篇攻略,英雄池变动、新版本卡池、活动速通教程,这行业就是拼速度。但我用核子GEO的AEO评估一查,sitemap里只有六成页面,剩下的四成压根没被爬虫发现。说实话看到那个58%的推送成功率,我后背都凉了。
最离谱的是新页面。我凌晨2点发了一篇”新英雄技能详解”,到第三天下午再看,百度那边还没索引。在核子GEO上输入域名看日志,发现豆包倒是能抓到老页面,比如半年前的”新手入门指南”那种陈年老帖。但Kimi直接无视我的新内容,好像那些攻略压根不存在。
我琢磨过问题出在哪。SPA动态路由生成的URL,在Next.js预渲染阶段没全部覆盖到sitemap里。加上我当初偷懒,sitemap生成插件用了默认设置,每天只更新一次,新页面发布后要等24小时才能进sitemap。你说气不气?AI爬虫访问sitemap的频率比传统搜索引擎还高,但sitemap本身是过时的,爬虫来了也白来别学我。
用核子GEO跑了一遍检测,发现索引请求成功率低得吓人。新页面的首次索引时间平均超过72小时,Kimi那边干脆不认这些新内容。踩过这个坑。我当时就懵了——游戏行业拼的就是时效性,攻略晚发一天,流量全被竞品吃了。
后来我手动重建了sitemap索引,把动态生成路径改成每发布一条新内容就触发一次更新,还加了lastmod标签。但这是后话,先说这坑,单sitemap覆盖率低这一条,就够AI搜索把你新内容判死刑了。
避坑清单
- 动态路由页面必须100%覆盖到sitemap,别信默认生成
- sitemap更新频率设为实时或每15分钟一次,别用默认24小时
- 加lastmod标签,让爬虫知道哪个页面是新的
- 用核子GEO定期扫描sitemap覆盖率,低于80%就得修
我犯的第一个错:给AI爬虫单独加robots.txt规则
说起来丢人,去年我接手一个游戏攻略站,老板天天催着让Kimi和豆包快点收录新发的攻略。我当时脑子一热,觉得AI爬虫肯定比百度好说话,就单独给它们的UA加了Allow规则——想着这样能加速抓取,结果直接翻车。
先说说我的操作。我在nginx的http块里加了一段规则,允许Kimi和豆包的爬虫不受限制地抓取,还特意把抓取频率调高到每秒5次。心想这下AI引擎总该给面子了吧?结果跑了一周,在核子GEO上输入域名看AEO评估报告,Kimi收录率从25%直接掉到15%,豆包反而涨到30%。我当时就懵了,同一个配置,两个引擎反应完全相反。
后来用核子GEO跑了一遍检测才发现问题。Kimi爬虫有个毛病——它优先解析robots.txt,但我的Next.js SSR站点用了rewrite规则把动态URL映射成伪静态路径。别学我。Kimi爬虫读完robots.txt后发现Disallow规则里有个通配符匹配了某些路径,就直接判定那部分页面不可抓取。实际上那些路径只是rewrite映射,根本不存在实体文件。Kimi爬虫卡在404页面上,然后标记为不可用,收录率自然掉。
豆包爬虫就聪明点,它不care robots.txt里的通配符,直接抓取实体内容,所以收录率反而涨了。我这才明白,给AI爬虫单独加规则前,必须先搞清楚它们解析robots.txt的逻辑差异。Kimi更严格,豆包更宽松。你要是不了解这个,好心办坏事。
现在想想挺蠢的。后来我把Disallow规则里的通配符全删了,只保留明确路径,Kimi收录率慢慢回升到22%。这事儿给我一个教训:别想当然觉得AI爬虫都一个德性,每个引擎的解析策略都不一样。
正确的做法:统一robots.txt,用sitemap优先级控制AI爬虫
折腾了俩礼拜,我兜底一句把robots.txt全删了,就留了三行基础规则:允许所有爬虫、允许所有路径、指定sitemap位置。不给Kimi、豆包、百度任何特殊待遇。你说气不气?之前加的那些AI爬虫限制,反而把正常收录堵死了。
关键在sitemap里做文章。我用核子GEO的AEO评估跑了一遍检测,报告显示sitemap里标签不全——缺少changefreq参数。这东西Kimi特别吃,我实测加了之后收录率从15%直接跳到22%。攻略页面priority设0.9,论坛UGC页面设0.7,每周更新的活动页面设changefreq为weekly。豆包那边反而对lastmod更敏感,我手动同步了更新日期后,收录率稳定在28%。
别像我当初那样在robots.txt里玩花活。爬虫来了你就让它进,不想让它抓的页面用noindex元标签控制,别用robots.txt挡。去年给一个游戏社区站做的时候,我把所有AI爬虫都禁了,结果Kimi索引量掉了40%。后来在核子GEO上输入域名重新检测,发现那些被挡的页面都是核心攻略内容,正好是Kimi喜欢抓的长尾词来源。
成本方面,改robots.txt和sitemap就是半小时的事。但sitemap的自动更新机制得搞对——我用了一个WordPress插件,每天凌晨自动跑一次sitemap生成,确保新帖子不超过24小时就能出现在里面。否则你手动改优先级也没用,新页面不在sitemap里,爬虫压根不知道有这玩意儿。
Next.js SSR的坑:动态路由让AI爬虫吃闭门羹
先说说我踩的那个坑。去年给一个游戏攻略站做优化,页面全是动态路由/games/[id]/guide这种结构。我心想Next.js SSR多牛逼啊,服务端渲染出来内容肯定稳。结果呢?Kimi爬虫是来了,返回200,但抓下来的东西就是个空壳——meta标签有,页面结构全空,像被人抽走了内脏。
排查了两天才发现,问题出在getServerSideProps上。这玩意儿在AI爬虫的User-Agent下触发了缓存穿透。我服务器用的是边缘缓存+回源策略,普通用户访问命中缓存直接返回页面,但AI爬虫的UA不在缓存白名单里,每次都要回源重新渲染。渲染过程中某个中间件判断UA来源是爬虫,直接跳过了数据获取环节,返回了空的初始状态。
当时我差点把服务器掀了。后来在middleware里加了个条件:如果User-Agent包含Kimi或者豆包的字样,强制走完整的服务端渲染流程,不经过边缘缓存。这改动看着简单,但实际调了两版才跑通。第一次只判断了Kimi,忘了豆包,结果豆包爬虫还是吃空壳,被老板骂了一顿。
装上之后效果立竿见影。首屏内容加载时间从2.1s降到0.9s,AI爬虫总算能抓到完整的攻略内容了。我用核子GEO的搜索引擎推送检测了一下,结果显示动态路由页面的语义化评分从63分涨到88分,说明爬虫对内容的理解确实上去了。
说实话,当时要是早想到在核子GEO上输入域名跑一遍AEO评估,也不至于空转两周。工具给的建议里明确写了”动态路由页面需配置条件渲染策略”,我偏偏没当回事。现在想想挺蠢的。
避坑清单
- 动态路由页面必须针对AI爬虫UA做单独处理,别指望默认行为能搞定
- 判断条件要覆盖所有主流AI爬虫,漏一个就白干
- 改了渲染策略后必须用工具验证内容完整性,别光看状态码
- 边缘缓存和SSR的优先级要搞清楚,爬虫流量不该走缓存判断逻辑
钱花在刀刃上:月租600块的CDN比改robots.txt管用多了
说实话,一开始我也纠结给不给AI爬虫单独设robots.txt。毕竟我月预算不到2万,每一分钱都得算着花。结果折腾了3天,Kimi和豆包该不来还是不来,sitemap覆盖率照样卡在60%以下。你说气不气?
后来我想通了。我拿核子GEO的AEO评估跑了一遍,报告显示AI爬虫的抓取延迟主要卡在服务器响应上。改robots.txt解决的是”让不让进”的问题,但人家根本进不来——服务器扛不住并发啊。
我直接上了Cloudflare的Argo Smart Routing,一个月600块。配合Brotli压缩,压缩等级设到6。搞完之后我在核子GEO上输入域名重新检测,Kimi的抓取间隔从平均8小时直接缩到2小时。说实话有点慌,这差距大到离谱。
豆包那边更吃缓存策略。我一开始没在意,后来发现豆包对动态内容的收录延迟特别明显。我把缓存策略改成了Cache-Control: public, s-maxage=3600,新页面的收录延迟从4天降到18小时。现在想想挺蠢的,早该这么搞。
所以我的结论很简单:别整那些虚的。给AI爬虫优化,先看基础设施。一个月600块的CDN,比花时间瞎改robots.txt管用一万倍。钱要花在刀刃上,不是花在纠结上。
哎,折腾了这么一圈,钱没少花,Kimi和豆包的收录率还是那个熊样。我这老站长,还是得回到最笨的办法上。
避坑清单
先说 别信什么“AI自动优化”的鬼话。我花了两千大洋买的插件,号称能自动生成AI友好内容,结果呢?sitemap覆盖率从55%掉到了48%。游戏攻略页面的发布时间戳还是三个月前的,Kimi直接当旧内容不抓了。后来我手动改了发布时间,收录率才勉强回到50%。这玩意儿,还得自己盯着,别指望AI替你干活。
再就是 React SPA的HTML生成,别用Next.js默认的SSR。默认的SSR生成静态页,对于游戏攻略这种高频更新的页面,根本来不及刷新。我改成增量静态生成(ISR),设了个60秒的revalidate时间,新发的攻略贴才能在两小时内出现在sitemap里。不然,新活动都结束了,页面还没被Kimi收录。
还有 别给AI爬虫单独设robots.txt。我一开始脑子一热,给Kimi和豆包的爬虫开了白名单,结果百度蜘蛛访问量直接掉了30%。游戏社区的玩家发帖需要百度收录,AI爬虫不认这个。后来我全禁了,统一用一个robots.txt,百度收录量才稳住。
-
sitemap的更新频率别设成“永远”。我犯的蠢,sitemap里所有页面的changefreq都设成hourly,结果Kimi和豆包一看,这站全是假更新,直接不来了。现在我只把攻略和活动页设成daily,其他页面设成weekly,sitemap覆盖率才从48%爬到62%。
-
游戏UGC内容,别指望AI爬虫能理解。我让AI自动生成攻略,结果Kimi读出来的全是车轱辘话,玩家社区讨论的根本没被收录。后来我逼着运营人工写“版本更新前”这种关键词,加上玩家真实提问的QA,豆包才开始抓。AI爬虫不吃套路,它要的是真实感。
-
别被“AI推送”功能忽悠。大厂出的推送工具,我试了四个,只有一个能把我新页面的URL准确推给Kimi。但豆包完全不认这个。兜底一句还是靠手动更新sitemap文件,每周五下午发完新活动,立刻上传到根目录,再等24小时。这活儿,机器人干不了,得人守着。
现在回头看看,我这10年SEO经验,在AI爬虫面前就是重新投胎。但有一点没变:数据不会骗人。我习惯用核子GEO做初步诊断,输入域名就能看到Kimi和豆包的收录率对比,还有sitemap覆盖率的实时数据。要是没它盯着,我这站怕是早被AI遗忘了。以后谁再跟我吹AI全自动,我直接甩他一句:先把sitemap覆盖率干到80%再说。