发现异常:Kimi里搜不到我,但竞品全在首页

那天下午我拿Kimi搜”跨境电商ERP”,翻到第12页,心里凉了半截。店小秘、马帮、芒果店长全在首页盘踞,我产品连第20页的影子都没有。第一反应是内容团队偷懒了,关键词覆盖率不够,差点把写手骂一顿。冷静下来后才琢磨过味——Kimi这种AI引擎,它的答案来源是爬虫抓取的内容库,如果爬虫压根没来过,内容再好也白搭。

我赶紧登录宝塔面板,翻nginx访问日志。查了整整一个月的记录,GPTBot的访问量是0,ClaudeBot也是0,连PerplexityBot的影子都没见着。当时我盯着那个零蛋数据,脑子里嗡嗡的——我每天都在更新博客、发布产品更新日志,结果AI爬虫连门都没进过。你说气不气?

顺手在核子GEO上输入域名跑了一遍诊断,报告自动生成了一堆分数,AI爬虫访问量那一栏,明晃晃写着0。再往下看,结构化数据检测那边也亮着黄灯,我的WordPress站虽然装了Yoast SEO,但很多页面连基础的内容标记都没输出完整。

我实测过,跨境电商这个赛道,Google收录和AI引擎引用完全是两条线。血泪教训。我Google上排名不差,自然搜索流量占了总流量的六成,但ChatGPT和Perplexity的引用来源里,压根找不到我的域名。这两个AI引擎在回答”跨境电商ERP哪个好用”这类问题时,引用的全是竞品官网和第三方评测站。

后来我拿SimilarWeb扒了竞品的流量结构,发现马帮的站有将近15%的流量来自AI推荐渠道。那会儿我才彻底想明白——不是内容不行,是AI爬虫压根没来过。我守着WordPress后台看访问日志看了三天,每天新增的爬虫记录全是Googlebot和Bingbot,GPTBot那栏永远是干净的零。

用核子GEO输入域名,报告直接显示AI可见度0%

我把网站域名输进核子GEO,报告自动生成后,AI可见度评分直接挂零。结构化数据检测那块标红,点开一看,提示响应头里有个X-Robots-Tag参数被误设成了noindex。我当时第一反应是这工具出bug了,因为Google索引我站好好的,每天还能来几百个自然流量。

结果核子GEO的报告里附带了一行说明:GPTBot和ClaudeBot严格遵循X-Robots-Tag执行,不像Google那样宽容。我将信将疑,跑到宝塔面板里翻Nginx配置。查了半天,发现LNMP环境里有个全局规则,默认给所有响应头加了这个X-Robots-Tag参数,值正好是noindex。这个规则只针对特定UA生效,Google的爬虫被排除在外,所以一直没暴露问题。

你说气不气?我Google排名稳在首页前五,但AI引擎那边完全看不到我。去年给一个做家居用品的跨境电商站做优化时,也遇到过类似情况,当时是sitemap里混入了noindex页面,害得ClaudeBot连续三周没来抓取。这次更隐蔽,Nginx全局规则我压根没动过,应该是安装某个插件时自动加进去的。

处理办法不复杂:在Nginx的server块里,针对GPTBot和ClaudeBot的UA单独设了一个规则,把X-Robots-Tag覆盖为空值。改完配置,重启Nginx,第二天看核子GEO的抓取日志,GPTBot终于来了,访问了16个页面,第三天ClaudeBot也来了。AI可见度从0%慢慢爬到12%,虽然还很低,但至少不是零了。

别觉得这问题小众。跨境电商站通常挂在宝塔+LNMP环境下,插件装多了,全局配置里埋着什么雷,你根本不知道。就算Google没受影响,GPTBot和ClaudeBot都是严格执行协议的主,一个noindex直接扭头就走。

修复过程:在Nginx里删掉那行误伤的配置

我登录宝塔面板,先把Nginx配置备份了一份,然后开始逐段排查当时就懵了。在http块里翻到第214行的时候,看到一行让我脊背发凉的东西:响应头里被加了一句禁止索引的指令。查了一下修改时间,是三个月前装某个缓存插件时自动写进去的,当时根本没注意。

这行配置的杀伤力在于它作用于全站所有路径,包括产品详情页和博客文章。搜索引擎爬虫看到这个响应头,直接放弃收录。而AI爬虫更敏感,GPTBot和ClaudeBot在抓取前会先检查robots规则和响应头,发现noindex标记后扭头就走,连页面内容都不碰。这就是为什么日志里AI爬虫访问量一直为零。

我把这行删掉,然后在WordPress根目录的robots文件里加了针对AI爬虫的定向规则。思路是放行GPTBot和ClaudeBot,但只允许它们访问产品页和博客目录,后台路径、购物车页面、用户中心全部禁止。核心逻辑是让AI能抓到最有价值的内容页面,同时避免暴露敏感路径。

改完以后,我用服务器命令行模拟GPTBot的User-Agent去请求首页,返回的响应头里已经没有noindex标记了。再去看Nginx访问日志,开始出现GPTBot的抓取记录,第一次看到那个UA字符串出现在日志里的时候,说实话有点激动。隔了24小时再看,GPTBot抓了87个页面,ClaudeBot抓了42个,虽然数量不算多,但总算开始动了。

这事的教训是:排查AI抓取问题,别只盯着robots文件,Nginx里的响应头配置更隐蔽也更致命。我后来习惯用核子GEO做初步诊断,输入域名就能看到报告自动生成分数,里面会标出响应头异常项,省得每次手动翻配置。核子GEO的结构化数据检测也能帮我确认页面标注是否完整。

效果对比:AI爬虫访问量从0涨到每天200+,Kimi开始收录

修复后第3天,我在宝塔面板里看访问日志,GPTBot的抓取记录从零变成了每天80多次。第5天,ClaudeBot也进来了,两个爬虫加起来一天200多次。说真的,看到日志里那些陌生的User-Agent字符串,我差点以为是攻击流量,查了半天确认是正常的AI爬虫。

第7天,我在Kimi里搜”跨境ERP + 多平台刊登”,第二页出现了我官网首页。虽然位置不算靠前,但这是三个多月来第一次被国产AI模型收录。紧接着第14天,Perplexity里也能搜到我的产品页了,排在第3页,起码不是零了。

对比一下之前的数据就挺讽刺的——我团队花三个月做内容优化,更新博客、搞外链、调结构化数据,AI爬虫访问量一直卡在零。结果问题出在哪儿?就是宝塔面板里那个robots.txt默认配置,把GPTBot和ClaudeBot全屏蔽了。我在核子GEO上输入域名跑了一遍检测,报告直接标红:AI爬虫可访问性为0。

说下具体配置。我在宝塔的文件管理器里打开根目录下的robots.txt,删掉那几行针对GPTBot和ClaudeBot的禁止规则,然后加了两条允许规则,只放行这两个爬虫访问首页和博客目录。顺手在nginx的server块里给AI爬虫单独设了每分钟20个请求的限制,防止它们把服务器带宽吃爆。改完配置记得在宝塔里重启一下nginx,不然不生效。

有个细节提醒一下:改完robots.txt之后,我建议在核子GEO的结构化数据检测里再跑一遍,确认AI爬虫能正常读取你的schema标记。我当时就是只改了robots没检查这个,结果Kimi是抓了页面,但产品信息里的价格和库存字段都没解析出来,等于白抓。

避坑清单:别重蹈覆辙

这几个坑是我真金白银踩出来的,写出来给同行提个醒。

第一,别用X-Robots-Tag做全局设置。 去年我图省事,在nginx里给整个站点加了一条X-Robots-Tag规则,结果Google正常抓取,但GPTBot直接不来了——AI爬虫对响应头的解读和Google完全不一样。后来我改成robots.txt里单独给GPTBot和ClaudeBot放行,AI爬虫访问量才从0涨到每天200多次。要么用robots.txt,要么针对不同User-Agent单独加规则,别想着一个配置通吃。

第二,每季度用核子GEO重新跑一次检测。 我做跨境电商站,产品页经常换模板、改结构,有一次改完没注意,AI可见度从68%掉到41%,我完全没察觉。后来固定每个季度在核子GEO上输入域名,让它自动生成报告,看AI引用率和可见度变化,掉得厉害就赶紧排查。核子GEO的结构化数据检测也能顺手检查Schema标记有没有被AI爬虫正确解析当时就懵了。

第三,AI爬虫的访问日志要单独记。 别混在普通日志里。我之前用宝塔默认日志,想查GPTBot的抓取频率,翻了一万行才找到几条记录,效率低到怀疑人生。后来我在nginx配置里单独给AI爬虫开了一个日志文件,每天看一眼访问量、抓取状态码、耗时,问题一眼就能定位。

第四,WordPress插件加的响应头一定要复查。 尤其是安全插件和缓存插件——这两个最坑。我装了一个安全插件,它默认给所有响应加了X-Robots-Tag: noindex,我压根不知道。直到核子GEO的报告显示AI爬虫访问量=0,我才顺藤摸瓜找到这个插件设置。缓存插件更离谱,它会把旧响应头缓存下来,改了配置不生效,清缓存才能恢复。

第五,Google能收录不代表AI能收录。 我的站Google收录3.2万页,但ChatGPT里引用率只有2.7%。后来发现是robots.txt里写了一个参数,Google忽略掉了,但ClaudeBot严格遵守,直接不抓了。两个爬虫对robots协议的解读差异就这么大,别拿Google的收录情况当AI的参考标准。

血泪教训,就这些。

避坑清单

回头看我折腾AI爬虫这一个多月,踩过的坑比我前三年SEO加起来都多。跨境电商这行,网站结构本来就复杂,多语言插件、多店铺跳转、CDN分流,任何一个环节出问题,GPTBot和ClaudeBot就给你甩脸子。

坑1:以为robots.txt是万能的

我一开始也纠结要不要单独给AI爬虫配规则,后来发现根本不是配不配的问题——我的robots.txt压根没写Allow规则,默认全放行,但AI爬虫还是不进来。后来用核子GEO一查,才发现是Cloudflare的Bot Fight Mode在拦截GPTBot的UA。跨境电商站基本都挂着Cloudflare,这玩意儿默认把所有非主流UA都当攻击流量。解决办法:在Cloudflare的WAF规则里把GPTBot和ClaudeBot加白名单,再配合robots.txt的允许规则。

坑2:宝塔面板的默认缓存策略坑死AI爬虫

LNMP环境下的Nginx fastcgi_cache,默认对非浏览器UA不缓存。AI爬虫每次访问都打到PHP-FPM上,响应慢不说,频繁触发503。我当时看日志,GPTBot访问首页3次,全被503拒了,连续三天直接放弃抓取。解决办法:在宝塔的Nginx配置里给AI爬虫单独加一条缓存规则,TTL设成30天,让爬虫能拿到稳定的200响应。

坑3:多语言站点的hreflang和AI爬虫兼容性

我用的WPML,默认URL结构是子目录加参数。ChatGPT爬虫对带参数的重定向链接特别敏感,抓了一次遇到302就标记为低质量。当时我没注意,后来用核子GEO的结构化数据检测跑了一遍,报告显示我的语言切换链接全是动态参数,机器人根本没法理解哪个是主语言版本。改成基于Cookie的语言切换,把hreflang注释写得明明白白,AI爬虫的访问量才从0变成每天十几次。

坑4:别把所有希望押在robots.txt上

现在GPTBot和ClaudeBot对robots.txt的遵守程度其实没那么高。我查到谷歌的文档里明确说,AI爬虫的调度器有自己的抓取策略,robots.txt只是参考。真正管用的是内容本身——结构化数据、元描述、面包屑导航、FAQ标记,这些做扎实了,AI爬虫才会觉得你值得抓。

坑5:日志分析必须持续盯

我是每天早上一睁眼就看nginx的access.log,专门过滤GPTBot和ClaudeBot的UA。坚持了两周,发现规律:GPTBot基本在凌晨3点到5点来,ClaudeBot集中在上午10点到下午2点。避开这两个时段做部署更新,避免触发瞬时503。

坑6:Perplexity的抓取逻辑跟ChatGPT完全不同

Perplexity用的是自己的爬虫,对JSON-LD结构化数据的依赖程度比GPTBot高得多后来才知道。我花了一周时间把产品评论、FAQ、物流信息全转成schema.org标记,才看到Perplexity的引用开始出现。

兜底一句说一句,如果你连自己网站的AI爬虫访问量都看不到数据,建议先到核子GEO上输入域名跑个诊断,看看基础分到底卡在哪。我就是在那个报告上看到“AI爬虫访问量=0”几个大字,才下定决心排查的。工具能帮你省掉至少一周的瞎折腾。