指南 · robots.txt

AI 爬虫的 robots.txt 怎么写?

更新于 2026-11-04 · kagentx

短答案

每个 AI 产品有训练、搜索、用户触发三种爬虫,robots.txt 要按名字分别写。想出现在 AI 回答里,就放行搜索类(OAI-SearchBot、Claude-SearchBot、PerplexityBot)和用户触发类(ChatGPT-User、Claude-User);只想不被拿去训练,拦 GPTBot、ClaudeBot、Google-Extended 就够。下面一张表说清 16 个爬虫,再给三份可复制的模板。

每个 AI 爬虫分别是干什么的?

同一家公司通常有三种爬虫:收集网页训练模型的、给 AI 搜索建索引的、用户提问时现场打开网页的。三种拦了的后果完全不同,所以 robots.txt 要按爬虫名分别写。下表按 kagentx 的 AI 爬虫检查 所查的 16 个爬虫排列,说法来自各家官方文档,2026-11-04 逐一查看。

爬虫哪家用途遵守 robots.txt 吗(官方怎么说)拦了会怎样
OAI-SearchBotOpenAI搜索索引OpenAI 的文档建议在 robots.txt 里放行它OpenAI 说,拦了的网站不会出现在 ChatGPT 搜索的回答里
ChatGPT-UserOpenAI用户触发OpenAI 写明:这是用户发起的访问,robots.txt 规则可能不适用OpenAI 说它不决定内容会不会出现在搜索里,那是 OAI-SearchBot 的事
GPTBotOpenAI训练OpenAI 说用 robots.txt 里的 GPTBot 标记来控制表示内容不应用于训练 OpenAI 的基础模型
ClaudeBotAnthropic训练Anthropic 说它的爬虫遵守 robots.txt表示网站以后的内容不进 Anthropic 的模型训练集
Claude-SearchBotAnthropic搜索索引同上Anthropic 说,不会为搜索收录你的内容,可能降低你在 Claude 搜索结果里的可见度
Claude-UserAnthropic用户触发同上Anthropic 说,用户提问时取不到你的内容,可能降低可见度
PerplexityBotPerplexity搜索索引Perplexity 建议放行它官方没单独写后果;它的用途是让网站出现在 Perplexity 的搜索结果里,Perplexity 说它不用于训练基础模型
Perplexity-UserPerplexity用户触发Perplexity 写明:因为是用户请求的,一般忽略 robots.txtrobots.txt 拦不住,要拦只能在防火墙里处理
Google-ExtendedGoogle训练Google 说它只是 robots.txt 里的标记,没有单独的 User-AgentGoogle 说不影响 Google 搜索收录,也不是排名信号;管的是 Gemini 模型的训练
GooglebotGoogle传统搜索引擎Google 说常规爬虫自动抓取时总是遵守 robots.txt不会被 Google 搜索收录,AI 概述也依赖它
BingbotMicrosoft传统搜索引擎未核实(这次没取到官方页面正文)不会被 Bing 收录(按用途推断);Copilot 用 Bing 的结果
Applebot-ExtendedApple训练Apple 说它不抓取页面,只决定 Applebot 抓到的内容能不能用于训练Apple 说拦了仍可出现在搜索结果里,只是不用于训练 Apple Intelligence 这类模型
Meta-ExternalAgentMeta训练官方页面没明说,只告诉站长加 Disallow 规则来拦按官方给的做法,加规则后它不再抓取
CCBotCommon Crawl公开抓取数据集Common Crawl 说在 robots.txt 里写 Disallow 就能拦不再被 Common Crawl 抓取
AmazonbotAmazon改进产品,可能用于训练Amazon 说它遵守 robots.txt,改动约 24 小时生效不再被抓取;Amazon 另有 Amzn-SearchBot(不用于训练)和 Amzn-User(用户触发,可能不遵守全部规则)
DuckAssistBotDuckDuckGo用户触发DuckDuckGo 说可用 robots.txt 拦,约 72 小时生效DuckDuckGo 说不影响自然搜索排名,数据不用于训练

读表只记一件事:训练类爬虫拦了,影响的是你的内容会不会被拿去训练;搜索类和用户触发类拦了,影响的是 AI 回答里会不会有你。想拿 AI 推荐,就别拦后两类。

怎么拦掉 GPTBot,但仍让 ChatGPT 搜索引用我?

OpenAI 把训练和搜索分给两个爬虫:GPTBot 管训练,OAI-SearchBot 管 ChatGPT 搜索。所以可以只拦 GPTBot,同时明确放行另外两个:

User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

OpenAI 的文档说搜索结果最多约 24 小时才跟上 robots.txt 的改动。Anthropic 也是分开的:ClaudeBot 管训练,Claude-SearchBot 和 Claude-User 管搜索,要分别写。

三份可以直接复制的 robots.txt

把 your-site.com 换成你的域名,放在网站根目录的 /robots.txt。三份只在「拦什么」上不同。爬虫名和用途会变,用之前先用 AI 爬虫检查 看当前的列表。

  1. A. 全放行:想让所有 AI 都能读到你

    这是最适合想被 AI 推荐的网站的写法。不写任何规则也等于放行,这样写是为了让意图清楚,也方便以后加规则。

    # Allow every crawler, including AI search and AI assistants
    User-agent: *
    Allow: /
    
    Sitemap: https://your-site.com/sitemap.xml
  2. B. 只拦训练:不想被拿去训练,但要出现在 AI 回答里

    把训练类爬虫放在一组里拦掉,搜索类和用户触发类不动。Amazonbot 的官方说明里写了可能用于训练 Amazon 的 AI 模型,要拦的话把它加进这一组。

    # Block crawlers that collect pages to train models
    User-agent: GPTBot
    User-agent: ClaudeBot
    User-agent: Google-Extended
    User-agent: Applebot-Extended
    User-agent: Meta-ExternalAgent
    User-agent: CCBot
    Disallow: /
    
    # Everyone else, including AI search crawlers, stays allowed
    User-agent: *
    Allow: /
    
    Sitemap: https://your-site.com/sitemap.xml
  3. C. 全拦:不想让任何 AI 产品用你的内容

    AI 搜索和 AI 助手也一并拦掉,代价是 AI 回答里不会出现你。Perplexity-User、ChatGPT-User 因为是用户发起的,官方说可能不遵守 robots.txt,要彻底拦只能在防火墙或 CDN 里按它们公布的 IP 处理。Googlebot 和 Bingbot 没放进来:拦了它们,传统搜索里也看不到你。

    # Block AI training, AI search and AI assistants
    User-agent: GPTBot
    User-agent: OAI-SearchBot
    User-agent: ChatGPT-User
    User-agent: ClaudeBot
    User-agent: Claude-SearchBot
    User-agent: Claude-User
    User-agent: PerplexityBot
    User-agent: Perplexity-User
    User-agent: Google-Extended
    User-agent: Applebot-Extended
    User-agent: Meta-ExternalAgent
    User-agent: CCBot
    User-agent: Amazonbot
    User-agent: DuckAssistBot
    Disallow: /
    
    # Classic search engines stay allowed
    User-agent: *
    Allow: /

写 robots.txt 有一个容易踩的坑:爬虫只听名字对得上的那一组,不再看 * 那一组。比如下面这样写,OAI-SearchBot 只会看到自己的 Allow,/admin/ 对它不再生效,要在它那一组里再写一遍:

User-agent: *
Disallow: /admin/

User-agent: OAI-SearchBot
Allow: /

Cloudflare 的 AI 爬虫拦截会把我拦在外面吗?

会,而且和 robots.txt 里怎么写无关。Cloudflare 的设置在请求层拦截,不是改你的 robots.txt:

  • Cloudflare 在 2025-07-01 的公告里说,新加入的域名会被问要不要放行 AI 爬虫;公告也提到,2024-09 推出的一键拦截 AI 爬虫开关,有超过一百万客户开了。
  • 现行文档按行为分三类设置:搜索、智能体、训练。每类的动作有:拦截、只在有广告的页面拦截、放行,训练类还有「仅禁止训练」。文档写新域名三类默认都是放行,之后可以改。
  • 搜索类单独成一类,拦截会作用于整个站点的符合条件的请求。所以把「搜索」设成拦截,OAI-SearchBot 这类搜索爬虫就进不来,robots.txt 里写了放行也没用。

自己站上的设置在 Cloudflare 后台:Security → Settings,筛选 Bot traffic,找 AI Crawler and Agent access policies(文档里的名字)。用 AI 爬虫检查 查一次:robots.txt 显示放行、但实际抓取被拒,多半就是 CDN 或防火墙的原因。

改完怎么确认生效?

  1. 1. 先看文件本身

    浏览器打开 your-site.com/robots.txt,确认是你刚写的内容,返回 200,不是旧的缓存页或 404。

  2. 2. 用工具逐个爬虫检查

    用 AI 爬虫检查 输入网址,它按爬虫名分别告诉你放行还是拦截,以及是哪一行规则起作用。

  3. 3. 再看防火墙和 CDN

    换成爬虫的 User-Agent 请求首页,状态码应该是 200:

    curl -s -o /dev/null -w "%{http_code}" -A "OAI-SearchBot/1.3" https://your-site.com/

    这只换了 User-Agent,不能模拟爬虫真实的 IP。有的 CDN 按 IP 认爬虫,结果可能和真爬虫不一样。

  4. 4. 等官方说的时间

    OpenAI、Perplexity、Amazon 说约 24 小时,DuckDuckGo 说约 72 小时。之后再用同一批买家问题到 AI 里问几次,看有没有变化。具体怎么问,见 为什么 ChatGPT 不推荐我的产品 和 怎么让 Perplexity 引用你的网站。

robots.txt 只管「能不能抓」,不管「抓到什么」。页面正文要等 JavaScript 才出现的话,放行了也读不到,见 AI 爬虫会执行 JavaScript 吗。想给 AI 一份站点简介,见 llms.txt 是什么。

常见问题

robots.txt 能挡住所有 AI 爬虫吗?

不能。robots.txt 是请求,不是强制。Perplexity 写明 Perplexity-User 一般忽略它,OpenAI 说 ChatGPT-User 的访问 robots.txt 规则可能不适用,Meta 说 Meta-ExternalFetcher 可能绕过。要彻底拦只能在防火墙或 CDN 里处理。

拦了 Google-Extended 会掉出 Google 搜索吗?

不会。Google 的文档写明 Google-Extended 不影响网站在 Google 搜索里的收录,也不是排名信号,它只管 Gemini 模型的训练。

拦了 GPTBot,ChatGPT 就不会推荐我吗?

不会。GPTBot 只管训练,ChatGPT 搜索用的是 OAI-SearchBot。OpenAI 说,拦了 OAI-SearchBot 的网站才不会出现在 ChatGPT 搜索的回答里。

改完 robots.txt 多久生效?

OpenAI、Perplexity、Amazon 的文档说约 24 小时,DuckDuckGo 说约 72 小时。Anthropic、Google、Apple 的文档没有给具体时间。

我该全放行,还是只拦训练?

这是取舍,要你自己定。放行搜索类和用户触发类,AI 回答才可能引用你;拦训练类只影响内容是否被拿去训练模型。想拿 AI 推荐,至少不要拦搜索类。

出处

kagentx

AI 爬虫进得来,
回答里有你吗?

评测检查爬虫能不能进,再把买家的问题拿去问 ChatGPT、Perplexity、Claude(开联网搜索),记下推荐了谁、引用了哪些网页、你在不在里面。基础版 $1,一般 2–3 分钟出结果。