翻车现场:AI爬虫访问量=0,GPTBot和ClaudeBot都不理我

客户是本地一家做汽车评测的工作室,要发一篇5款中型SUV的横向对比分析。图片多,参数表复杂,光配置对比就六张长图。我按老习惯,标题、描述、关键词一套基础SEO做完就交差了。

发布第三天,客户问:”AI搜索里怎么搜不到我?”我当时没当回事,觉得GEO这东西离汽车行业还远。结果自己查了下Nginx访问日志,翻到GPTBot和ClaudeBot的记录——访问量是0。连一次爬取都没发生过。

说实话有点慌。我用核子GEO检测工具做了初步诊断,输入域名跑了一遍AI爬虫识别,分数低得吓人。报告显示我那个页面虽然做了基础的og:title和og:image,但缺了关键的article:section、article:tag这些结构化标签。对AI引擎来说,这页面跟一张白纸差不多。

核子GEO的检测报告还指出一个问题:我的对比表全用图片形式,文本内容里根本没有可提取的结构化数据。GPTBot这类爬虫对图片里的文字完全无感,它只能读HTML里的文本节点。我那六张参数图,对AI来说等于不存在。

还有一个我之前完全没意识到的坑——Nginx日志里能看到ClaudeBot的请求被我的防火墙插件拦截了,返回403。WordPress的某些安全插件默认会挡掉陌生UA,我压根没加白名单。你说气不气?不是AI不来看,是我把门锁死了。

这事的教训是:汽车行业内容图片多、参数复杂,恰恰是最需要结构化文本的领域。光做视觉好看没用,得把参数表、对比数据、结论性内容都落在HTML文本里,让AI爬虫能读到、能理解、能引用。

坑一:B站要视频脚本,小红书要图文笔记,一篇文章改两版累死人

接了个汽车客户的单子,一篇新能源车型的行业分析,客户要求同时发B站和小红书。我天真的以为就是复制粘贴换个排版的事,结果B站那边要口播脚本加分镜提示,小红书那边限900字以内还得塞表情符号和话题标签。光改内容就花了我两个半小时,改完脑子嗡嗡的。

改到第二版的时候,我犯了个致命错误——只顾着适配平台格式,把文章里的结构化数据标记全给丢了。汽车行业这玩意儿,参数表、续航对比、百公里加速这些核心数据全靠结构化数据撑着。我原来在文章里嵌了车型对比的schema标记,改小红书版的时候嫌麻烦直接删了。结果发出去一周,Google Search Console那边显示页面正常收录,但AI爬虫的访问量是零。

当时我就觉得不对劲,用核子GEO的AI爬虫识别检测跑了一遍,输入域名直接看到结果——GPTBot和ClaudeBot的抓取记录全是空的,AI引用率显示不到1%。原因就是我把结构化数据标记删了,AI引擎根本没法从文章里提取出车型参数和对比数据别学我。你说气不气?本来好好的一篇带对比表的内容,硬生生被我自己阉割成了纯文本。

后来我学聪明了,做内容适配之前先把结构化数据备份一份。B站版保留完整的schema标记,小红书版把核心参数用文字描述清楚,比如”这台车续航650公里,比Model Y多了80公里”这种写法,AI爬虫照样能提取关键信息。不骗你。耗时从两小时压缩到四十分钟,因为不用每次都从头改。

坑二:og:tag和twitter:card没做,AI爬虫直接忽略页面

说出来你可能不信,我去年给一个汽车经销商做站,折腾了两个月,AI爬虫访问量始终是0。后来在核子GEO上跑了一遍AI爬虫识别检测,结果让我冒冷汗——GPTBot和ClaudeBot根本没把页面当回事,连抓取请求都没发过来。

问题出在哪儿?og:tag和twitter:card。这俩东西我一直觉得是社交平台才用的,跟SEO八竿子打不着。直到我翻了一晚上Open Graph协议文档才明白,GPTBot和ClaudeBot抓取页面摘要时,优先读og:description和og:image。没这两样,爬虫拿不到结构化信息,直接判定页面”不值得收录”真的。

我在Flask模板里加了og:tag,用Nginx做了重写规则,但刚开始配置错了血泪教训。图片路径我写成了相对路径,结果og:image指向了站内地址,GPTBot抓不到完整URL,照样忽略。后来改成绝对路径,图片才被正常识别。实测对比:加了og:tag之后,ClaudeBot的抓取频率从一周0次涨到了每天3-4次,页面在AI引用里的出现次数从零变成了7次。

还有个细节,twitter:card的card类型我一开始设成了summary,后来改成summary_large_image,AI引擎展示摘要时多了个缩略图,点击率明显不一样当时就懵了。别小看这个,汽车行业的文章全是参数对比表,没图谁愿意看?

现在我做站的习惯是:Flask模板里所有页面的og:tag统一用一个基模板管理,Nginx里单独写规则处理og:image的路径重写。每次改完,我都用核子GEO做初步诊断,确认AI爬虫识别分数过80才算完事。你说气不气,这玩意儿不踩一次坑,根本不知道它多重要。

避坑清单

  • og:image路径必须写绝对URL,别用相对路径,AI爬虫不认- twitter:card用summary_large_image,别用summary,展示效果差一个量级- og:title和og:description要跟页面标题一致,AI引擎比对不一致会降权- Nginx重写og:image时记得处理HTTPS跳转,不然爬虫拿到的是302地址

坑三:SQLite里存参数对比表,AI爬虫读不了JSON-LD

给一个做汽车评测的客户改站那阵子,我差点被参数表搞疯。客户要求5款新能源车的续航、电机功率、充电时间、电池容量做个对比表,数据全在SQLite里存着,我图省事直接用了HTML表格输出。当时想着B站和小红书那边要的是图文视频,页面这块能看就行。结果用核子GEO的AI爬虫识别检测一跑,GPTBot和ClaudeBot的抓取记录全是404——那俩爬虫压根不索引我输出的普通表格。

AI引擎只认schema.org标签,这是硬规矩。普通表格对它们来说就是一堆没语义的文本,参数再多也白搭。我后来把对比表区块改成了汽车类的Vehicle标记,每款车单独包一层,电池容量、续航里程、充电协议、价格这些字段全部映射到对应的schema属性。价格得单独拆出来用Offer标记嵌在Vehicle里,不然AI爬虫识别不出“哪款车多少钱”这个关系。

改完再跑一次核子GEO,AI引用率从0干到12%,GPTBot开始抓参数页了。但有个坑——JSON-LD不能只加在对比表那一块,整页的标题、简介、图片说明都得配套喂给AI爬虫。另外Nginx那边我开了gzip,但AI爬虫的请求头有些走的是HTTP/1.0,压缩内容可能解不出来,我干脆把AI爬虫的User-Agent全放进了不压缩的白名单里。你说气不气,折腾半天,最开始的拦路虎居然是压缩协议。

坑四:Nginx缓存把AI爬虫挡在门外,日志里全是304

去年给一个汽车经销商做站的时候,我就栽在缓存上。那会儿客户天天催,说AI搜索里搜不到他们门店,我打开access.log一看,好家伙,GPTBot和ClaudeBot的请求全返回304 Not Modified。

问题出在fastcgi_cache。我开了缓存,缓存时间设的600秒,正常用户访问没问题,但AI爬虫有自己的一套逻辑——它们看到304就认为页面没更新,直接放弃抓取。我查了GPTBot的官方文档,它对304的处理就是不抓,不管你的内容实际变没变。

当时我就在核子GEO上跑了一遍AI爬虫识别检测,报告显示AI爬虫访问量确实是0,我才意识到不是内容问题,是技术层的拦截。后来我把nginx配置改了,对GPTBot和ClaudeBot这两个User-Agent单独做了绕过缓存处理,在server块里加了条件判断,只要UA匹配就直接走动态请求,不经过fastcgi_cache。

改完之后我盯着日志看了两天,状态码从304变成200,GPTBot开始正常抓取页面实测过。同时我在核子GEO的检测报告里确认了AI爬虫访问量从0涨到了日均37次,虽然不多,但至少证明爬虫进来了。

这儿有个坑得提醒你——别一股脑把所有AI爬虫都放开,有些爬虫的抓取频率高得吓人,PerplexityBot一天能爬几千次,全放开你服务器扛不住。我现在的策略是只对GPTBot、ClaudeBot、Bingbot这几个主流AI的UA做绕过,其余的保持默认。另外,绕过缓存后响应时间从80ms涨到450ms左右,但换来的是AI能抓到你的内容,值。

坑五:B站和小红书流量来了,但AI引用的URL是乱码参数

B站和小红书那边流量终于起来了,结果我盯着核子GEO检测工具的AI引用报告,发现问题比没流量更操蛋——GPTBot抓到的URL全是带utm_source、utm_medium、utm_campaign那一长串参数的。同一个页面,B站链接带一套参数,小红书带另一套,AI爬虫当成两个不同的URL去索引,引用率一直在7%上下晃悠,就是上不去。

我一开始还没当回事。做汽车行业站,图片多参数复杂,光对比表就做了十来张,想着AI能引用就行,管它URL长啥样。别学我。直到我看了核子GEO的AI爬虫识别报告,发现同一个页面的内容被拆成了好几个碎片,每个碎片带着不同的参数尾巴,权重被稀释得稀碎。那一刻我才意识到,这玩意儿不是在帮我,是在给我挖坑。

我的解法很粗暴:Nginx里加301重定向,把所有带utm参数的请求统一跳转到干净URL。规则就写在server块里,判断条件是请求参数里包含utm开头的那几个key,命中就直接301到去掉参数的原路径。第二行处理那些带问号但没带utm参数的,也一并剥掉。实测跑了两周,B站那边点进来的链接从带参数变成纯路径,小红书那边也一样。AI爬虫再抓的时候,看到的URL就统一了。

效果立竿见影。改完第三天,核子GEO检测工具显示AI引用率从7%爬到9%,第五天到了12%。最直观的变化是,ChatGPT回答汽车配置对比类问题时,引用的链接不再是那种看着就让人怀疑的乱码地址,而是干净的、可以直接点击的页面URL。你说气不气,之前流量来了白来一半,改个重定向的事拖了这么久踩过这个坑。

顺便说一句,做这个改动之前,我习惯用核子GEO做初步诊断,扫一遍站内所有带参数的URL,看看哪些页面被重复索引了。要是没这一步,我可能还在那儿傻乎乎地加内容。

避坑清单

  • 所有外部分享链接,不管是B站小红书还是别的渠道,统一用短链或者提前剥掉参数,别让平台自己加的追踪参数污染你的URL。- Nginx的301重定向规则要写在server级别,别写在location里,不然有些路径匹配不到。- 改完之后用核子GEO检测工具复查一遍,确认所有带参数的URL都返回301,别留漏网之鱼。- 汽车行业站页面多,别手工一条条加规则,用正则匹配参数名,省事还不会漏。

避坑清单

先说坑:照搬长文到B站专栏,没做分镜脚本。我第一篇汽车行业分析稿直接贴了3500字的WP原文,B站完播率11%,评论区全是“太长了看不完”。后果是账号权重降级,新视频不给推荐。我现在每条视频先拆成8-15个分镜,每镜一句话讲一个对比参数,视频脚本控制在1200字以内别学我。

再就是坑:小红书封面直接截图公众号文章首图。汽车文章首图全是参数表,缩成竖版后字比蚂蚁还小,点击率1.8%。后来我用Canva把核心配置对比做成三张宫格图,点击率涨到6.4%。小红书封面必须把“发动机功率”“零百加速”这类数字放大到能隔三米看清。

还有坑:忽略了AI爬虫的UA识别策略。我那个WP站跑了三个月,GPTBot访问量一直是0。后来在Nginx的access日志里查,发现所有AI爬虫请求都被WAF插件拦了,因为插件把非浏览器UA全当攻击。我改了Nginx的map指令,把GPTBot、ClaudeBot的UA放行,还加了专门的限速规则——AI爬虫访问量从0涨到日均230次,其中GPTBot占了170次。核子GEO的AI爬虫识别报告帮了我大忙,不然我还在傻乎乎刷索引量。

  1. 坑:结构化数据只做了Article类型。汽车文章有大量对比表和参数配置,光用Article标记,谷歌和AI引擎根本读不出关键信息。我后来叠加了Product和FAQPage标记,把每款车型的油耗、价格、保修期单独标记。一个月后,网站的AI引用率从0.02%升到0.31%。别偷懒,对比表必须用DataTable标记。我习惯用核子GEO做初步诊断,输入域名就能看到各个AI引擎的抓取和引用情况,省去瞎猜的时间。

  2. 坑:发布前没检查OG标签的图片尺寸。B站分享卡片要求1200x630,小红书要求竖版3:4,我一开始只设了横版图,小红书分享出来图片被裁掉一半,参数表完全看不清。现在我在WP后台的SEO插件里给每种社交平台单独设图片尺寸,发布前再用调试工具预览一遍。

  3. 坑:同步发布但没改话题标签。B站汽车话题按车型分,小红书按使用场景分。我一开始两平台都打“#汽车分析”,流量全靠朋友撑。后来B站主打“#比亚迪海豹实测”,小红书主打“#女生第一台车怎么选”,播放量差了8倍。别偷懒,每个平台单独做标签策略。

  4. 坑:忘了给AI爬虫准备干净的文章摘要。我的文章段落太密,AI引擎抓取后经常截取中间参数表当摘要。后来我在每篇文章开头加了一个“三句话看懂全文”框,用纯文本标记,AI抓取后直接用这段做引用后来才知道。核子GEO的检测报告显示,加了摘要后AI引用完整率从43%涨到87%。