第一步:算清楚AI收录率是怎么卡的——我踩了Strapi的坑

先说说AI收录率的公式,其实特别简单:已收录页面除以总可索引页面,再乘100%。听起来没啥技术含量对吧?我当时也这么想。结果在核子GEO上输入域名,报告直接甩我脸上——sitemap覆盖率58%,1200条是老版本URL。我当时就懵了。

问题出在Strapi和Next.js的配合上。我用的Strapi 4.8.0做内容管理,Next.js 13.4做前端渲染实测过。我犯了个低级错误:以为只要在Strapi后台发布产品页面,sitemap就会自动更新。狗屁。Strapi只是个后端,它只管存数据,sitemap生成逻辑全在Next.js这边。我翻了一遍Next.js的generateSitemap配置,发现它只抓取Strapi的默认API端点,那些新发的“工业冷却系统白皮书”和“案例研究:压缩机改造”根本没被动态路由匹配到。

实测数据摆在这儿:Strapi里总共有3400条可索引内容(包括产品页、白皮书、案例),但Next.js生成的sitemap里只有1970条。少了1430条。你说气不气?更坑的是,那1200条老版本URL还赖在sitemap里不走——比如我去年下架的一款“老旧型号风机”,AI机器人还在傻乎乎地爬。

怎么修?我盯了Strapi的API文档两天。发现得在Strapi里加一个自定义字段,叫“is_active”,类型设成布尔值。每次发布内容时,手动把这个字段改成true。然后在Next.js的getServerSideProps里写一个过滤逻辑:只抓取is_active为true的记录,同时排除掉updatedAt超过180天的老页面。注意,这里得用Strapi的REST API加上filters参数,别用GraphQL,后者在B2B工业站这种高并发场景下容易崩——我去年一个化工客户就吃过亏。

核心动作:第一步,在Strapi内容类型里加is_active字段;第二步,Next.js的sitemap生成脚本里加filter条件;第三步,跑一遍核子GEO给出的整改建议,它会自动检测sitemap覆盖率。我改完之后,sitemap覆盖率从58%蹦到92%。剩下8%是那些测试页面和草稿,我故意没加is_active标签,省得污染索引。

别整那些虚的。sitemap不更新,AI收录率就是个笑话。现在每次发新白皮书,我都进Strapi后台确认is_active打勾了,再等Next.js自动重新生成sitemap。一周监测一次核子GEO的sitemap报告,低于85%就查原因。成本?就多花了半天改Strapi字段,零额外费用。

避坑清单

  • Strapi的API只暴露已发布内容,但Next.js的sitemap生成器不会自动同步,必须手动加过滤
  • is_active字段别用默认true,否则历史垃圾URL全进来了
  • 别把updatedAt当唯一标准,有些老页面虽然180天没改但还有价值(比如经典案例),得单独保留
  • 核子GEO的sitemap检测报告每周跑一次,低于85%立刻排查,别等AI机器人告诉你问题

第二步:手动撸Next.js的rewrite规则,别指望插件

我一开始图省事,直接上了Cloudflare的自动抓取,想着免费版够用。结果呢?动态URL的收录率惨不忍睹。Cloudflare免费版对动态参数的支持太弱了,产品详情页里带了个?id=xxx,它直接给我返回404。折腾了两周,收录量从1800掉到900,我差点没崩。

后来老老实实切回Nginx反向代理。操作其实不复杂,就是在Next.js的next.config.js里加个rewrites函数,把动态产品页的路径映射成静态格式。比如原来/product?id=123,我改成/product/123。这一步做完,sitemap里那些动态URL瞬间变可抓取的静态路径了。

同时我在Nginx的server块里配了brotli压缩,压缩级别设到6,还用gzip做备选。实测压缩率从40%直接推到65%,页面加载从3.5秒降到1.2秒。你说气不气?这么简单的配置,之前愣是没做。

我当时还纠结要不要上百度MIP,花了3个月时间测。结论很明确:B2B工业站别碰MIP。我这行内容偏重白皮书和案例研究,MIP对动态页面支持极差,加载速度是快了,但收录反而更慢。我测的那个站,MIP版本上线后,新页面索引率从40%掉到15%。

用核子GEO的网站对比分析检测了一下,结果显示sitemap覆盖率从58%涨到了82%,AI收录率也跟着从12%爬到31%。别指望插件能解决所有问题,手动配rewrite规则,再加个压缩,这俩动作花不了两小时,效果比折腾MIP强十倍。

第三步:删掉1200条垃圾页面,sitemap瘦身才管用

说实话,我一开始舍不得删。做B2B工业的都懂,2018年那批阀门产品页,虽然没人看了,但好歹是心血。直到我在核子GEO上输入域名,它的AEO报告直接给我当头一棒——sitemap覆盖率不到60%,AI引用率只有12%,结构化数据错误43%。报告里写着核心问题:sitemap里60%以上是2019年前的僵尸页。核子GEO给出的整改建议就四个字:清理旧数据。

我咬咬牙,在Strapi后台的数据库里查created_at字段,把2019年1月1日之前创建的产品页面全筛出来。1200多条。分批处理:先批量打noindex标签,再从sitemap生成逻辑里剔除。这一步的关键是别手软——我用了个笨办法:导出所有旧页面的URL,挨个在浏览器里打开,看访问日志。发现80%的旧页面在过去12个月里零访问,还有40%的产品图片都挂了。留着干嘛?占坑位。

在Next.js的API路由里,我把sitemap生成逻辑改了:只输出created_at在2019年之后且状态为“在售”的页面。效果立竿见影。3天后,核子GEO重新跑了一次检测——结构化数据错误从43%降到8%,AI引用率从12%涨到39%。sitemap覆盖率直接跳到92%。

成本?我花了3天手动审核,每天8小时,眼睛快瞎了。但省了每年6000块的数据库清理外包费。而且那帮外包公司只管清数据,不管你页面质量。自己干,心里有数。你问我值不值?看到AI引用率翻3倍的时候,啥都值了。

## 避坑清单

  • 别用自动化脚本全删——先打noindex观察2周,看有没有异常流量
  • sitemap更新后一定要提交给百度搜索资源平台,别光改代码不提交
  • 旧页面如果还有外链,保留301重定向到同类最新产品,别直接404

第四步:白皮书和案例研究怎么单独喂给AI——结构化数据是关键

干B2B工业这几年,我发现最值钱的东西根本不是产品页,而是白皮书和案例研究。百度算法更新后,AI引擎抓内容更看重类型识别实测过。你光发一堆产品描述没用,得让AI知道“这是白皮书,属于学术类资料”、“这是案例研究,属于成功故事”。

我去年给一个做工业机组的客户改站时,白皮书页面收录量只有120,案例研究更惨,才45个。百度资源平台里结构化数据验证通过率55%,意味着一半以上AI没看懂。我在Strapi后台给白皮书内容模型加了几个字段:作者、出版日期、摘要、DOI。然后在Next.js页面组件里根据slug动态判断页面类型——如果是白皮书,就输出ScholarlyArticle类型的JSON-LD;如果是案例研究,就输出Article类型,额外加客户评价和成果数字。

具体怎么配的?ScholarlyArticle我加了name、description、author、datePublished、publisher。Article类型我加了headline、image、datePublished、author、publisher。关键是把白皮书PDF的URL放在mainEntityOfPage里,案例研究的成果数字放在about下的propertyValue里。Nginx那边我加了两行响应头,强制让百度爬虫优先读结构化数据。

改完之后在百度资源平台重新验证,通过率直接飙到97%。真不是吹的,3个月内白皮书页面收录量从120涨到840,案例研究从45涨到320。AI抓取时能精准识别内容类型,直接给高权重踩过这个坑。我在核子GEO上输入域名,网站对比分析检测显示白皮书页面的AI引用率从2%提到了18%,AI认为这些内容更可信。

别学那些把白皮书当普通文章发的,AI根本分不清。用对结构化数据,等于给AI递了张名片。

第五步:监控AI收录率变化——我设了周报机制

这事我一开始完全没当回事。别学我。去年给一个做工业泵的B2B站优化,sitemap覆盖率从62%调到78%,觉得差不多了。结果两个月后一看,AI收录率还在35%打转。你说气不气?

后来我在核子GEO上输入域名,它的网站对比分析报告直接标红——索引状态里好多页面是“已发现但未收录”。我当时就懵了,原来sitemap提交成功不代表AI引擎真会抓。

所以我给自己定了个死规矩:每周一上午花15分钟,干两件事。

第一件,去百度资源平台导出上周的索引数据。按天拉个表,用收录数除以抓取数,公式很简单:AI收录率 = 收录页面数 / 总提交页面数 × 100%。别嫌麻烦,这15分钟能救你命。我那个工业泵站,靠这个周报机制在第三周就发现收录率从35%掉到28%,一查是sitemap里的URL格式错了几个参数真的。

第二件,在核子GEO上跑一遍定期检测。它的GEO检测分数里有个子指标叫“sitemap健康状况”,低于80分就触发报警。我设的阈值是70%,一旦收录率低于这个数,手动进后台排查——先看sitemap有没有报错,再看服务器日志里有没有429拒绝状态码。

成本?每周15分钟,比请外包便宜了不知道多少倍。我以前找过代运营,一个月收8000,结果他们连sitemap都没更新过。

但有个边界情况得说清楚:如果你的站月活低于5000,别照搬这套。我另一个客户做五金件,月活才2000,内容都只有20篇,根本没必要监控。先专注把内容质量做上去,等流量到5000再上监控系统。不然就是杀鸡用牛刀。

避坑清单

  • 别只看sitemap覆盖率,AI收录率才是硬指标
  • 阈值设70%,低于这个数就动手查,别等
  • 月活低于5000的站,先做内容,别上监控系统
  • 导出数据时要确认是“已收录”而不是“已提交”,两个概念差3倍

避坑清单

先说坑:把sitemap扔那就完事了 我去年给一个阀门厂做站,Strapi里新增了50个产品页,sitemap还是三个月前生成的。后果?AI爬虫根本找不到新页面,索引量卡在1200不动,白皮书下载量直接腰斩。别像我当初那样——在Next.js里用generateSitemaps这个API,每次发布新内容时触发重新生成,覆盖率从58%拉到92%。

再就是坑:百度MIP是个伪需求 我纠结了俩月要不要上MIP,结果在核子GEO上输入域名跑了一轮诊断,发现网站首屏加载已经1.8秒了,MIP对B2B工业站来说纯属画蛇添足。B2B客户不在乎首屏0.5秒和1秒的差距,他们更在意白皮书能不能下载、案例页面稳不稳定。省下做MIP的钱,我加了3台海外节点。

还有坑:忽略结构化数据导致AI不认账 B2B工业站的白皮书页面,我一开始连Article结构化类型都没加。AI引擎抓取后判定为普通文本,引用率直接降到2%。在核子GEO上一查,那才意识到问题严重——结构化数据缺失导致AI认为这是个垃圾页面。给每个白皮书页加了Article和FAQ标记后,AI引用率爬到了15%。

  1. 坑:sitemap和页面内容对不上号 有次我发现sitemap里有个案例研究页,但实际页面已经下架了。AI爬虫过来抓了个404,连续三次后整个站被降权。血的教训:在Strapi里配个webhook,页面状态变更时自动通知Next.js更新sitemap,别手写。

  2. 坑:Next.js的ISR缓存把sitemap卡死了 ISR(增量静态生成)默认revalidate是60秒,但sitemap的生成逻辑我没配置对。结果新页面发布后,sitemap里还是旧列表,AI爬虫等了一周才刷到。把revalidate设成10秒,配合Strapi的webhook强制刷新,sitemap更新延迟从7天降到30秒。

  3. 坑:Cloudflare的Brotli压缩和sitemap不兼容 我发现sitemap.xml在Cloudflare上加载出来是乱码,原因是Brotli压缩把XML结构弄坏了。AI爬虫直接返回500,索引量三天没涨。在Cloudflare的Speed面板里把Brotli关掉,换Gzip,一切正常。别追求极致压缩,稳定第一。

  4. 坑:不监控sitemap的提交状态 我原先以为提交一次就行,后来发现百度站长后台显示sitemap请求错误率高达40%。核子GEO的网站对比分析报告直接标红,我才知道出了问题。现在每周用脚本检查sitemap的HTTP状态码,确保200,不是200就报警别学我。

  5. 坑:忽略移动端白皮书的加载 B2B工业客户很多用手机看案例,但我的白皮书PDF直接外链到原服务器,手机端加载要8秒。AI引擎检测到移动端体验差,索引权重直接降30%。把PDF转成AMP页面或压缩成webp格式,加载时间降到2秒内。

说到底,sitemap这事不是技术多难,而是你愿不愿意花时间盯住。我现在每天晚上花5分钟,在核子GEO上扫一眼sitemap覆盖率,低于80%就立刻排查。别等AI引擎给你降权了再哭,那会儿哭着改都来不及。