robots.txt 该放行哪些 AI 爬虫?检索型 vs 训练型完整对照与实战配置
想被 ChatGPT 和 Perplexity 引用、又不想免费喂养模型训练?关键就藏在 robots.txt 那几行里。但很多人没发现:你写了“允许”,流量却在到达网站前就被 Cloudflare 挡掉了。这篇带你把每一只 AI 爬虫分清楚,再学会检查那个最容易被忽略的隐形破口。
先搞懂:AI 爬虫分三种,不是“全开”或“全关”
很多人把 AI 爬虫当成一个整体,结果不是全部放行(连训练数据都被拿走)、就是全部封锁(连带被 AI 搜索结果踢出)。其实从 2025 年起,OpenAI、Anthropic、Perplexity 都把爬虫拆成三种角色,各自有独立的 robots.txt 识别码,可以分开控制。
这三种角色的目的完全不同:训练型把你的内容拿去训练模型、检索型把你的内容建索引以便在 AI 回答时引用、用户触发型则是在真人提问当下实时抓取你的页面。
搞懂这个三层架构,你才有办法做出对自己有利的取舍——放行能带来曝光的、封锁只会被白拿的。先分清角色,再决定每一只要不要放,是后面所有配置的基础。
检索型 vs 训练型:一张对照表看懂该放谁
把主流爬虫按角色分类后,配置逻辑就清楚了。对多数想做 GEO(生成式引擎优化)的台湾企业来说,最常见的策略是放行检索型与用户触发型、对训练型再依品牌策略决定。
- 训练型(喂养模型,通常无直接曝光回报):GPTBot(OpenAI)、ClaudeBot(Anthropic)、Google-Extended(Google Gemini 训练)、CCBot(Common Crawl,大量开源模型的训练来源)
- 检索型(建立索引,让你被 AI 搜索引用):OAI-SearchBot(ChatGPT 搜索)、Claude-SearchBot(Claude 搜索)、PerplexityBot(Perplexity 索引)
- 用户触发型(真人提问时实时抓取,通常建议放行):ChatGPT-User、Claude-User、Perplexity-User
- 重要区别:Google-Extended 只控制 Gemini 是否拿你的内容做训练,它不影响 Google 普通搜索排名(那是 Googlebot),两者不要搞混
放行还是封锁?三种典型取舍情境
没有标准答案,取决于你的商业模式。下面三种情境涵盖大多数台湾中小企业与内容方的选择。
若你靠流量与品牌曝光获利(多数官网、博客、SaaS):放行所有检索型与用户触发型,因为被 ChatGPT、Perplexity 引用等于免费的新曝光来源;训练型则可视情况——介意被白拿就封锁 GPTBot/ClaudeBot/CCBot,不介意换取更广泛的模型知名度就放行。
若你是付费墙或独家内容(媒体、研究报告、课程):通常封锁训练型(不想内容被免费拿去训练),但保留检索型与用户触发型,让 AI 至少能引用你的摘要并导流回站。若完全不想和 AI 沾边(合规敏感、纯内部站):全部封锁,但要有心理准备——你会逐渐从 AI 答案中消失。
robots.txt 怎么写:可直接套用的范本
robots.txt 放在网站根目录(例如 https://你的域名/robots.txt),每个爬虫用独立的 User-agent 区块控制。下面是“放行检索、封锁训练”的常见写法骨架,每个区块都是一行 User-agent 加一行 Allow 或 Disallow。
规则对指令大小写不敏感、但 User-agent 名称要精准照官方拼法(例如是 OAI-SearchBot 不是 OpenAI-SearchBot)。写完务必到 https://你的域名/robots.txt 直接打开来看,确认文件真的存在且没有被重定向。
- 放行检索型:对 OAI-SearchBot、Claude-SearchBot、PerplexityBot 各自写 User-agent 一行、Allow: / 一行
- 放行用户触发型:对 ChatGPT-User、Claude-User、Perplexity-User 各自 Allow: /
- 封锁训练型:对 GPTBot、ClaudeBot、CCBot 各自写 User-agent 一行、Disallow: / 一行;要挡 Gemini 训练再加 Google-Extended 的 Disallow: /
- 别误用通配:User-agent: * 的规则只是“其他未指名爬虫”的默认值,已单独指名的 AI 爬虫会走自己的区块,不受 * 影响
- robots.txt 是“请求遵守”而非技术强制:守规矩的大厂会遵守,但它挡不住不声明身份的爬虫(例如曾被点名换 IP/UA 规避的行为)
隐形破口:robots 写了允许,却被 Cloudflare/WAF 挡掉
这是最多人踩到、却最难自己发现的陷阱。robots.txt 只是“礼貌性的偏好表”,真正决定请求能不能进到你网站的,是更前面的那一层——CDN 与 WAF(网站防火墙)。如果你用 Cloudflare,它的 Bot Fight Mode 默认在所有方案(含免费版)都会开启,会把它判定为机器人的流量直接挡掉,包括合法的 AI 爬虫。
结果就是:AI 爬虫根本没走到你的服务器、也没读到你那份精心配置的 robots.txt,就在 Cloudflare 那一层被回了 403 或挑战页。Cloudflare 近年更内置了“封锁 AI 机器人”的托管规则,这个规则的优先级高于 robots.txt——也就是说,robots.txt 写允许,根本压不过 WAF 的封锁。
规则评估有先后:自定义规则(Custom Rules)会在托管的“封锁 AI 机器人”规则之前执行。所以正确解法是在 Cloudflare 后台建一条自定义 Allow/Skip 规则,比对 User-Agent 含 OAI-SearchBot、PerplexityBot 等你要放行的爬虫,让它们在被托管规则拦下之前先放行。WordPress、Webflow 这类挂在 Cloudflare 后面的站特别容易中招。
怎么检查:三步验证爬虫真的进得来
光改 robots.txt 不够,你得实际验证请求有没有被前面那层挡掉。下面三步可以在几分钟内判断你的配置到底有没有生效。
- 第一步,直接看文件:浏览器打开 https://你的域名/robots.txt,确认文件存在、内容正确、没有被重定向到登录页或首页
- 第二步,模拟爬虫抓取:用命令带上爬虫的 User-Agent 抓自己首页,例如 curl -A "OAI-SearchBot" -I https://你的域名/,看返回的是不是 200;若是 403 或被导到挑战页,就是 WAF/CDN 在挡
- 第三步,比对不同身份:同一条命令分别带普通浏览器 UA 和爬虫 UA,如果浏览器拿到 200、爬虫拿到 403,几乎可确定是 Bot 管理规则在作怪,去 Cloudflare 的 WAF/Bot 配置加放行规则
- 进阶:查服务器或 CDN 的访问日志,看 OAI-SearchBot、PerplexityBot、Claude-SearchBot 等是否真的有成功的 200 记录,没有就代表它们从没进来过
- 想快速量出起点,也可以先用免费的 GEO 健检工具扫一遍,看 AI 爬虫能不能读到你的页面,再对照上面三步逐项排除
常见问题
Q. robots.txt 允许 GPTBot 了,为什么 ChatGPT 还是读不到我的网站?
最常见原因有两个。一是你放错爬虫:GPTBot 是训练型爬虫,ChatGPT 搜索与引用其实是靠 OAI-SearchBot 和 ChatGPT-User,要被引用应该放行这两只。二是被前面那层挡掉:就算 robots.txt 写允许,Cloudflare 等 CDN/WAF 的 Bot 管理规则优先级更高,会在请求到达你的服务器前直接回 403。请用 curl 带 OAI-SearchBot 的 User-Agent 抓自己首页,若不是 200 就要去 WAF 加放行规则。
Q. 检索型和训练型 AI 爬虫有什么差别?我该放哪一种?
训练型(GPTBot、ClaudeBot、Google-Extended、CCBot)会把你的内容拿去训练模型,通常不会直接带来曝光回报。检索型(OAI-SearchBot、Claude-SearchBot、PerplexityBot)会把你的内容建索引,让你在 AI 回答时被引用、带来曝光与导流。多数想做 GEO 的网站建议放行检索型与用户触发型(ChatGPT-User、Claude-User、Perplexity-User),训练型再依品牌策略决定要不要封锁。
Q. Google-Extended 是什么?封锁它会影响我的 Google 搜索排名吗?
不会。Google-Extended 只控制 Google 是否能用你的内容训练 Gemini 等生成式 AI,把它写成 Disallow 就是退出 AI 训练。普通 Google 搜索的索引与排名是由 Googlebot 负责,两者完全独立。所以你可以放心封锁 Google-Extended 退出 AI 训练,同时保留 Googlebot 维持原本的搜索排名,互不影响。
Q. 我用 Cloudflare,明明 robots.txt 放行了 AI 爬虫却还是被挡,怎么办?
因为 Cloudflare 的 Bot Fight Mode 默认在所有方案都会开启,且内置的“封锁 AI 机器人”托管规则优先级高于 robots.txt,请求会在到达你的服务器前就被挡下。解法是到 Cloudflare 后台的 Security → WAF → Custom Rules,建一条比对 User-Agent 含你要放行的爬虫(如 OAI-SearchBot、PerplexityBot)的自定义规则,动作设为 Allow 或 Skip;自定义规则会在托管封锁规则之前执行,就能让它们通过。
Q. robots.txt 写了 Disallow,AI 公司就一定不会抓我的内容吗?
不一定。robots.txt 是业界惯例、属于“请求遵守”而非技术强制,守规矩的大厂(OpenAI、Anthropic)会遵守,但它无法在技术层面阻止访问。曾有爬虫被点名以轮换 IP、User-Agent 规避 robots.txt 的情形。若要真正阻挡,需要在 WAF/CDN 层用防火墙规则封锁,光靠 robots.txt 的 Disallow 不足以保证对方完全不抓。
Q. ChatGPT-User、Claude-User 这类用户触发型爬虫要放行吗?
多数情况建议放行。这类爬虫不是大规模自动抓取,而是当真人在 ChatGPT 或 Claude 里提问、需要参考你的页面时才实时抓取一次,并通常附上来源链接导流回你的网站。封锁它们等于放弃了真人查询当下被引用、被点进来的机会,对想经营 AI 曝光的网站来说通常得不偿失。