Cloudflare 默认拦 AI 爬虫了:别让你的店在 AI 搜索里凭空消失

改了什么,为什么你可能根本没察觉

Cloudflare 现在默认拦截 AI 爬虫。它不是给你一个开关让你自己选,而是新接入或者按推荐配置走的站点,AI bot 一上来就被挡在外面。配套上线的还有一个叫 Pay Per Crawl 的东西:爬虫想抓你的内容,先返回一个 HTTP 402,带上一个 crawler-price 的响应头,告诉对方一次抓取要多少钱,发布方自己定价。

这套机制对内容平台来说是好事。早期跑出来的数据,未授权的 bot 流量降了大概 32%,参与按次收费的发布方数据授权收入涨了大约 27%。逻辑很顺:以前 AI 公司白嫖内容拿去训练,现在你能收过路费了。

问题出在”默认”两个字上。一堆站点的 AI bot 访问就这么被自动关掉了,店主自己一点都不知道。你没改 robots.txt,没动任何设置,只是某天 Cloudflare 推了个配置,或者你新接了 CDN,结果 GPTBot、ClaudeBot 这些就开始吃 402、403 了。

对一个靠 AI 搜索带流量的店来说,这是温水煮青蛙。你不会收到任何报错,后台数据也不会跳红,只是有一天你发现,问 ChatGPT “XX 品类有什么推荐的牌子”,答案里再也没有你了。隔壁那家放行了爬虫的店还在被引用,你已经从答案里隐身了,自己却以为是 SEO 排名波动。

不是所有 bot 都一样:训练爬虫和检索爬虫得分开看

先把 bot 分清楚。最容易踩的坑,是把所有带 “AI” 字样的爬虫当成一类全拦掉,结果把真正给你带流量的那批也误伤了。

训练爬虫,抓你的内容是拿去喂模型训练的,比如 GPTBot、Google-Extended、CCBot。这类爬虫抓走的东西要过很久才可能在某个新版本模型里隐约体现出来,跟你这周的成交没有直接关系。拦不拦它,更多是个内容版权和收益的问题。

检索爬虫就完全不一样了。OAI-SearchBot、ChatGPT-User、PerplexityBot 这一类,是用户此刻在 ChatGPT 或者 Perplexity 里提问,AI 现场去拉你的页面,组织成用户眼前看到的那个答案。一个买家正在问”敏感肌防晒哪个好”,检索爬虫能不能进你的站,直接决定了你这个 SKU 会不会出现在他看到的推荐里。做 AI 购物可见性,要的就是让检索爬虫进得来。

这里有个特别容易搞混的细节:Google-Extended 和 Googlebot 是两码事。Google-Extended 管的是 Gemini、Vertex 这类的训练授权,你把它拦了,对 Google 正常搜索排名一点影响都没有,因为常规搜索抓取走的是 Googlebot,那是另一个独立的爬虫。所以”我不想给 Gemini 训练用我的内容”和”我要继续出现在 Google 搜索里”完全可以同时成立,别因为名字里都有 Google 就一刀切。

反过来,把检索爬虫拦了就是真出血。拦掉 PerplexityBot,你就从 Perplexity 的答案里消失;拦掉 OAI-SearchBot 和 ChatGPT-User,ChatGPT 现场检索时就抓不到你。而这两个入口现在越来越多人用来做购物决策。

下面这张表把几个关键 bot 拢一拢,方便你对着 robots.txt 一个个核:

Bot归属类型拦掉的代价
GPTBotOpenAI训练内容进不了 OpenAI 模型训练,对当下成交基本无影响
OAI-SearchBotOpenAI检索ChatGPT 搜索/答案里抓不到你
ChatGPT-UserOpenAI检索用户在 ChatGPT 里现场调取你的页面时拿不到
ClaudeBotAnthropic训练/抓取Anthropic 这边的抓取被挡
PerplexityBotPerplexity检索直接从 Perplexity 的答案里消失
Google-ExtendedGoogle训练不进 Gemini/Vertex 训练,但不影响 Google 正常搜索
CCBotCommon Crawl训练不进 Common Crawl 公共数据集

收益还是可见性,这是个取舍

把上面的分类想明白,决策其实就是一道选择题:你是想把内容当资产授权出去收钱(用 Pay Per Crawl,拦 bot),还是想继续在 AI 答案里被人看到(放行检索爬虫)。

两边各有各的道理。手握大量原创内容、流量已经很稳、并不指望 AI 引荐带新客的发布方,选收费是合理的,内容被白嫖了这么多年,能收回点版权钱当然好。前面那 27% 的授权收入增长,就是冲着这类玩家去的。

但一个跨境电商店的处境恰恰相反。你的内容是用来让买家找到你、最后下单的,不是用来卖授权的。买家越来越多地不在 Google 里翻十个蓝链了,而是直接问 AI”有没有适合 XX 的产品”,AI 给几个具体推荐。这种场景里你要是被检索爬虫挡在外面,等于主动退出了一个正在长大的获客渠道,而且退得悄无声息。

所以对绝大多数靠 AI 发现带量的店,答案几乎是确定的:放行检索爬虫。训练爬虫那批可以单独想,想保护内容不被拿去训练就拦,无所谓就放,这块怎么定都不太影响你眼前的生意。真正不能糊涂的,是别把检索爬虫跟训练爬虫一起误杀。

中间路线也有:检索全放,训练全拦。这样既不让自己的内容白白进训练集,又保住了在 ChatGPT、Perplexity 里被引用的机会,对大多数店来说算个挺稳的默认配置。

怎么排查:一步步对着做

一,先搞清楚你的域名是不是在 Cloudflare 后面,以及它的 bot 管理 / AI 爬虫默认设置现在是什么状态。很多店是建站工具或者运维顺手挂上去的,店主自己都不知道有这层。进 Cloudflare 控制台,找 Bot Management 或者 AI 爬虫相关的开关,确认默认是放行还是拦截。如果显示默认拦 AI bot,那基本能确定你已经中招了。

二,把 robots.txt 翻出来,对着上面表里那几个 User-Agent 一个个看。重点确认检索爬虫,也就是 OAI-SearchBot、ChatGPT-User、PerplexityBot,没有被 Disallow。顺手也看看有没有那种 User-agent: * 后面跟一大片 Disallow 的粗暴规则,把所有人连带 AI bot 全挡了。

三,给你想放行的检索爬虫单独加明确的 Allow 规则,别只靠默认。明确写出来一是清楚,二是以后别人改配置时不容易误删。训练爬虫这块,根据上一节的取舍自己拿主意,要拦就拦,要放就放,但这是你有意识做的决定,不是被默认值替你决定的。

四,光改 robots.txt 不够,Cloudflare 这层可能在 robots.txt 之前就把请求拦了。所以要去 Cloudflare 的防火墙 / WAF / Bot 规则里确认,你放行的这几个 bot 没有被边缘层直接挡掉。robots.txt 是”请你别抓”的君子协定,Cloudflare 的拦截是真的在网络层把请求掐了,两层都得对得上。

五,任何一次 Cloudflare 或者 CDN 的配置变更之后,回头再核一遍。这事不是一次性的。换套餐、开新功能、迁移 CDN,默认值都可能把你之前的放行又覆盖回去。养成改完配置就复查 bot 放行的习惯。

怎么确认真的生效了

改完别急着觉得搞定了,默认值这种东西最会骗人,得拿真实证据验。

最硬的证据是服务器日志。把 OAI-SearchBot、ChatGPT-User、PerplexityBot 这几个 User-Agent 拉出来,看它们最近的请求返回的是不是 200。如果还在吃 402、403,说明没放行成功。402 通常是 Pay Per Crawl 在要钱,403 是被边缘层直接拒了,对着上一节第四步回去查 Cloudflare 那层。日志会老老实实告诉你 bot 到底进没进来,比任何后台开关的显示都可信。

没有完整日志访问权限的话,可以用 curl 模拟一下这几个爬虫的 User-Agent 去请求你的页面,看返回什么状态码。这招糙但管用,至少能区分出 200、402、403 三种结果。注意有些 bot 还会校验来源 IP,模拟不一定百分百还原,但状态码层面的拦截基本能测出来。

再就是实际去问。隔几天在 ChatGPT 和 Perplexity 里搜你的核心品类和买家最常问的那几个问题,看答案里有没有你。Perplexity 会直接标出来源链接,比较好确认你被引用了没有;ChatGPT 有时候列来源有时候不列,多搜几次找规律。一开始可能要等一阵,检索爬虫重新抓到、AI 把你纳入答案需要时间,别改完当天没看到就慌。

把日志验证当成主线,问 AI 当成辅助。日志告诉你”门开没开”,问 AI 告诉你”客人有没有真的进来”,两个都对上了,这次排查才算落地。

相关文章