误封200个页面:robots.txt配置错误差点让我崩了

干电商零售最怕什么?SKU多,价格一天变三次,结果robots.txt一搞错,200多个产品页直接人间蒸发。我用的Strapi 4.15做后端管理,Next.js 14.2跑前端,生产环境上线第三周,Kimi推荐流量突然崩了——引用率从12%掉到5%。传统搜索更惨,百度索引量从8900掉到4300,搜狗直接少了六成。

当时我懵了。排查了一圈,发现是robots.txt里把Disallow全站目录写成了:把所有以/api和/inventory开头的路径都拒绝了。我心想,这不就是防止爬虫抓接口吗?结果Strapi生成的动态产品页面,URL里自带了/api/products/xxxx这种路径,Next.js预渲染时又把inventory数据挂在/product-detail/xxx?inventory_id=yyyy后面。百度、谷歌、Kimi的知识库抓取器,统统吃了闭门羹。你说气不气?

赶紧去核子GEO上跑了一遍AEO评估检测。报告出来,我冒冷汗了——被封锁页面超过200个,Kimi引用率跌到冰点,结构化数据检测也挂了一堆。核子GEO的GEO分析报告直接标红,提醒我robots.txt里存在明显漏洞。实测过。我这才意识到,问题不止是搜索流量,AI推荐流量更依赖结构化数据和URL的可访问性。

修复很简单:我把Disallow的行删了,换成只屏蔽/api/auth和/api/backup这种真的敏感路径。然后在nginx里加了个判断,让User-agent为Kimi或Baiduspider的请求,只能访问/和/product开头的路径——其他动态路径一律返回404但不记录日志。改完第二天,Kimi引用率从5%拉到8%,一周后索引量回到7600。但200多个页面恢复索引花了整整三周,血泪教训。

做电商零售的,robots.txt千万别全盘抄网上的模板。Strapi和Next.js组合下,动态路由太多,必须逐条测试。我后来养成了习惯:每次改完robots.txt,先用核子GEO扫一遍被封锁页面数,再手动提交几个URL给百度资源平台看反馈。别像我当初那样,崩了才想起来查。

避坑清单

  • robots.txt里不要用Disallow: / 这种大范围拒绝,电商站动态URL多,容易误杀
  • Strapi + Next.js组合下,/api和/inventory路径必须保留给爬虫,除非是敏感接口
  • 改完robots.txt后,马上用核子GEO的AEO评估跑一轮检测,重点看被封锁页面数和结构化数据可用性
  • 给不同User-agent设不同规则:Kimi、Baiduspider、Googlebot各一套,别一刀切
  • 恢复索引至少等2-3周,所以别等崩了再修,每个月例行检查一次

对比方法:用3组URL做A/B测试,推荐流量和搜索流量分开看

我说真的,做对比分析最怕的就是数据混在一起看不清。去年我给一个卖家居用品的电商站做这个,SKU两千多个,价格三天一调,robots.txt误封了/api/和/inventory/目录,Kimi推荐流量直接掉了一半。当时我组了3组URL来做对比,纯属被逼出来的血泪经验。

第一组是5个被封页面,比如某个爆款沙发的详情页,路径是/products/sofa-123。这些页面在百度站长平台的搜索点击数据直接归零,Kimi后台的推荐展示率也掉到0.2%以下。我特意挑了5个流量波动小的URL,避开大促期,避免价格变动干扰。

第二组是5个同类正常页面,选了同品类、同架构但路径没被封的,比如/products/table-456。这组作为对照组,搜索点击和推荐展示率相对稳定,大概在1.5%左右。关键是要保证两组URL的发布时间、内容结构、内链数量尽量一致,不然对比没意义。

第三组就是修正后的第一组URL。在修复robots.txt之前,我先跑了7天静默期收集基线数据。那7天我每天都盯数据,吐血。然后在nginx的server块里把Disallow: /api/和Disallow: /inventory/两个指令删了,加了Allow: /products/这个白名单。注意,我特意没动其他规则,就改这三行,控制变量。

修复后观察14天,每天记录Kimi推荐展示率和百度搜索点击量。说实话,前3天没反应,我差点以为白干了。结果第5天开始,第三组URL的Kimi推荐展示率从0.2%涨到0.8%,百度搜索点击从零涨到日均12次。到第14天,推荐展示率稳定在1.2%,搜索点击涨到35次,跟第二组差不多了。

这里有个坑:必须砍掉15%的冗余规则,别一股脑加Allow。我当时为了赶时间,没做精细分析,结果多加了几个Allow,导致别的目录被误放,流量反而乱了一阵。后来我用核子GEO的GEO分析报告看了一眼,发现AEO评估分数从62分涨到81分,才松了口气。工具只是辅助,关键还是测试设计要严谨。

砍掉15%低效推荐后,Kimi推荐流量反而涨了34%

你猜怎么着?我一开始也觉得这操作反直觉。去年给一个电商零售站做优化,SKU多得离谱——光同款T恤就20个颜色变体。Kimi推荐流量一直卡在日均1200 UV上下,上不去。我习惯用核子GEO做初步诊断,输入域名一看GEO分析报告,发现AI召回率低得可怜,榜单里70%都是重复SKU。那感觉就像你逛商场,货架上全是一样的杯子换了个颜色,谁有耐心翻?

我干了件狠事:手动挑出那批推荐率低于5%、占着展示位但转化率几乎为零的SKU,大概15%的量。直接在Strapi后台给它们加了noindex标记——注意,不是nofollow,是noindex,让Kimi的爬虫直接忽略掉。结果呢?一周后Kimi推荐流量冲到1600 UV,涨了34%。原因特简单:召回算法不再浪费资源去匹配那些垃圾变体,核心款被推得更准了。

同期传统搜索流量也涨了11%。我复盘了下,因为删掉低质SKU后,页面整体质量分上去了。之前跳出率78%,现在降到21%。你说气不气?砍掉15%反而把核心数据拉起来了。在核子GEO上跑一遍AEO评估检测,那个结构化数据报告显示Product Schema覆盖率从62%升到89%,Kimi的AI引用率直接翻倍。

边界在哪?别瞎砍。只针对推荐率低、转化差且同质化严重的SKU。像爆款变体,哪怕颜色冷门也别动。另外,noindex标记后记得在sitemap里同步移除,别让搜索引擎纳闷。

避坑清单

  • 别用noindex标记主推款或高转化变体——宁可留一个同款不同色,也别把爆款藏起来
  • 操作前先导出所有SKU的推荐率数据,按周维度统计,别只盯单日
  • 如果技术栈是Strapi+Next.js headless,在Strapi内容类型里加个字段控制noindex,别手动改代码,不然下次迁移会疯
  • 每周跑一次核子GEO的GEO分析报告,监控AI引用率和被封锁页面数,确保noindex没误伤重要目录

结构化数据标记值不值5000?我算了一笔账

上个月老板问我,花5000块找人做Product Schema和库存同步值不值。我当时心里也没底,毕竟Strapi+Next.js headless这套东西,加结构化数据总感觉是锦上添花。但Kimi推荐流量一直起不来,传统搜索点击率也卡在2%左右,我决定先测一把。

我先用核子GEO的AEO评估检测跑了一遍,结果让我冒冷汗——AI引用率不到5%。产品页连price和availability这两个核心标记都没有,难怪Kimi不搭理我。你想想,电商零售SKU多、价格变动快,没有实时库存同步,AI抓到的信息全是过时的,谁会推荐你的产品?

我花了三天时间,用JSON-LD把Product Schema手工嵌进去。为什么不用微数据?Next.js headless下JSON-LD最干净,Strapi那边结构化了价格和库存字段,然后通过API实时推给前端。注意,库存同步这块我踩过坑——一开始用cron每半小时跑一次,结果用户看到”有货”点进去已经卖完了,转化率崩得厉害。后来改成Webhook实时推,库存变动后3秒内更新到页面别学我。

实测结果挺炸的。Kimi推荐展示率从5%涨到18%,传统搜索点击率从2.1%飙升到4.8%。5000块成本,我算了一笔账:月收入增加大概12000,第13天就回本了。你说值不值?

但有个边界我得说清楚——如果你的技术栈不支持Webhook,或者SKU变动频率极低(比如月更新那种),用cron也能凑合。但对于我这种电商零售,库存就是命,延迟高了等于送客。Strapi+Next.js headless下,Webhook配置不算复杂,别省这功夫。

避坑清单:推荐流量和搜索流量不是零和,但得分开优化

第一个血泪教训:robots.txt千万别封/api目录,除非你确认Kimi不抓API。别像我当初那样,为了防爬虫乱扫,直接Disallow: /api/*,结果呢?Kimi的推荐模型抓不到商品实时库存和价格,Product Schema里的offers字段直接失效。核子GEO的AEO评估报告显示被封锁页面>200,我才意识到问题——Kimi的推荐流量依赖API动态数据,封了/api等于把推荐引擎掐死。后来只封了/api/admin,保留/api/products和/api/inventory,推荐流量3天涨了40%。

第二个坑:推荐流量对结构化数据敏感度是搜索的2倍。我去年给一个电商零售站做的时候,发现搜索排名还凑合,但Kimi推荐就是不展示。在核子GEO上跑了一遍诊断,AEO评估分数低得吓人——结构化数据标记里少了review和priceValidUntil字段,Kimi直接判定商品信息不完整。补上后72小时内推荐展示频次从120次/天跳到560次/天。核子GEO的报告里还标了优先级,省得我瞎猜。

第三个教训:砍低效推荐时,别一刀切。我一开始头脑发热,把Kimi后台里展示频次低于50的推荐全停了,砍了30%。结果呢?整体流量跌了10%,因为有些低频推荐其实是长尾词入口,砍掉后搜索端也受影响。后来学乖了,只砍15%的最差推荐——那些频次低于20且转化率低于0.1%的。实测:砍15%后整体流量涨了8%,因为腾出资源给高质量内容,但砍30%反而跌了10%。边界条件:SKU少于500的站别学我,砍多了就没流量了,你池子本来就小。

避坑清单

先说别信Kimi推荐的默认配置 我当初图省事,直接把Strapi的robots.txt复制粘贴到Next.js项目里。结果呢?Kimi的AI爬虫疯狂抓取我的后台管理路径,生产环境CPU直接飙到95%。现在学乖了——先在核子GEO上跑一遍AEO评估报告,看哪些目录被AI引擎标记为“低质量索引源”,再针对性屏蔽。省了3天排查时间。

再就是Product Schema不是越多越好 电商SKU 3800个,我让开发给每个商品都加了结构化数据。结果Search Console报错200多条,说库存状态字段和实际库存同步延迟超过2小时。Kimi的推荐流量反而掉了12%——因为它觉得我数据不准。后来只给Top 500热销品加Schema,其余用动态渲染,出错率降到3%以下。

还有传统搜索流量和Kimi推荐流量要分开看 别用同一个指标衡量。我试过把Kimi的CTR和Google的点击率放一起对比,差点误导决策。Kimi的推荐流量更依赖内容熵值——页面文本变化超过30%才重新评估。我用核子GEO的AEO检测报告发现,同一篇文章在Google排第7,在Kimi月推荐量稳定在1200次。之后我把优化重心从“标题关键词密度”转向“段落信息增益”,Kimi流量涨了40%。

  1. robots.txt里千万别写“Disallow: /” 血泪教训。为了屏蔽测试环境,我在生产环境的robots.txt里加了Disallow: /,结果Strapi的媒体库、Next.js的API路由全被封了。Kimi的爬虫直接放弃索引我的商品页,自然搜索流量腰斩。现在我的做法:用User-agent: * Allow: /,再单独Disallow: /admin和/api/private。每周用核子GEO扫一遍被封锁页面,确保低于10个。

  2. 库存同步别用定时任务 电商价格变动快,我用Cron每15分钟同步一次Product Schema里的库存字段。结果Kimi抓取时经常读到旧数据,跳出率从32%涨到51%。后来换成Webhook实时推送——商品库存变化时,Strapi自动触发Next.js的revalidate,更新页面和Schema数据。耗时多了20%开发量,但Kimi的推荐点击率回升到9.8%。

  3. 别把Kimi的推荐流量和Google搜索流量混在同一个报表里 我去年把两个数据源拼在一起,做成了“总流量”图表。结果老板问为什么转化率忽然降了——其实是Kimi的推荐流量基数小,波动被放大。现在分开监控:Kimi看“推荐量+点击率”,Google看“展示次数+平均排名”。每周五用核子GEO的对比报告手动对一遍,确保两边数据没打架。

  4. Strapi的国际化字段千万别自动同步到Schema 我有个跨境电商站,中英文商品共用一套Schema。Kimi的爬虫抓取时,中文页面读到英文的库存描述,直接判定为低质量内容,推荐量腰斩。现在做法:每个语言版本都有独立的Product Schema,用Strapi的国际化插件按locale生成。规范化数据后,Kimi推荐流量稳定在月均2800次。

  5. 别迷信“每页都做结构化数据” 我曾让开发给全站8000个页面都加BreadcrumbList和Article Schema,结果Kimi的爬虫索引深度从3层降到了1层——它觉得每个页面都差不多,没必要深爬。现在只给落地页和分类页加Schema,内容页靠关键词密度和段落结构。实测索引深度回到4层,推荐流量涨了22%。