使用指南发布日期 阅读时间约 8 分钟

用 robots.txt 屏蔽 AI 爬虫:GPTBot、ClaudeBot 等

越来越多的站长不希望自己网站的文字和图片被拿去训练 AI。只要在 robots.txt 中写上 AI 爬虫的名称,就能要求各公司的爬虫停止抓取。不过 AI 爬虫分为“训练用”“AI 搜索用”“按用户指令访问”三类,屏蔽哪一类,影响差别很大。本文整理主要 AI 爬虫的名称与用途、按目的划分的 robots.txt 写法,以及屏蔽时的注意事项。

把 AI 爬虫分成三类来看

大多数 AI 公司会按用途给爬虫取不同的名称。robots.txt 可以按名称决定是否屏蔽,所以先弄清楚它们的分工。

  • 训练用:为了构建 AI 模型而收集公开网页的爬虫。屏蔽后,网页较难被用作今后的训练数据。
  • AI 搜索用:为了让 AI 在回答中介绍、引用网站而收集网页的爬虫,例如 ChatGPT 搜索和 Perplexity。屏蔽后,网站在这些回答中被提及的机会会变少。
  • 按用户指令访问:用户让 AI“读一下这个网页”时当场打开网页的程序。有些公司把它视为不受 robots.txt 约束。

主要 AI 爬虫的名称与用途

User-agent公司用途
GPTBotOpenAI训练
OAI-SearchBotOpenAIChatGPT 搜索
ChatGPT-UserOpenAI按用户指令访问
ClaudeBotAnthropic训练
Claude-SearchBotAnthropicClaude 搜索
Claude-UserAnthropic按用户指令访问
Google-ExtendedGoogle用于 Gemini 等的训练和回答(不影响 Google 搜索)
Applebot-ExtendedApple用于 Apple Intelligence 等的训练(不影响 Apple 的搜索)
meta-externalagentMeta训练
CCBotCommon Crawl公开数据集(被许多 AI 用于训练)
BytespiderByteDance训练等
AmazonbotAmazon改进 Alexa 等服务
PerplexityBotPerplexityPerplexity 搜索

这些名称由各公司公布,可能会新增爬虫或更改名称。屏蔽之前,请到各公司的官方说明中确认最新名称。

按目的划分的 robots.txt 写法

  1. 1

    只禁止 AI 训练,仍保留在搜索和 AI 搜索中

    写 User-agent: GPTBot、User-agent: ClaudeBot、User-agent: Google-Extended、User-agent: Applebot-Extended、User-agent: meta-externalagent、User-agent: CCBot 这 6 行,后面再写 1 行“Disallow: /”。User-agent: * 的组保持不变。这是影响最小的屏蔽方式。

  2. 2

    连 AI 搜索中的引用也屏蔽

    在上面的名称中加上 OAI-SearchBot、Claude-SearchBot、PerplexityBot。网站在 ChatGPT、Perplexity 的回答中被介绍的机会会变少,如果指望从 AI 获得流量,请慎重决定。

  3. 3

    只让部分目录不被用于训练

    不写“Disallow: /”,而是只写想保护的目录,如“Disallow: /members/”“Disallow: /illust/”。这样就可以做到博客文章可以用,但插画和付费文章不让用。

在测试工具的“生成 AI 爬虫屏蔽规则”中,从“仅屏蔽训练”“屏蔽训练和 AI 搜索”“全部屏蔽”中选择,就能一次生成这些行。把生成的行加入 robots.txt 后,先用判定功能确认结果符合预期(例如 Googlebot 允许、GPTBot 屏蔽),再发布。把多个名称合成一组的写法,请参阅User-agent 的写法。

对 Google 搜索和 AI 概览的影响

  • 屏蔽 Google-Extended 不会影响 Google 搜索的排名和展示。
  • Google 搜索的“AI 概览”被视为 Google 搜索的一部分,所以无法用 Google-Extended 屏蔽。不想出现在其中时,请使用网页的 nosnippet 等设置。
  • 屏蔽 Googlebot 会让网站逐渐从 Google 搜索本身消失,所以不要为了防 AI 而屏蔽 Googlebot。
  • 屏蔽 Applebot-Extended 不会影响 Siri 和 Spotlight 搜索所用的 Applebot。

robots.txt 能做到的和做不到的

robots.txt 只是“请不要来抓取这些网页”的请求,没有强制力。对公开了名称并声明遵守 robots.txt 的大公司爬虫有效,但无法阻止伪造名称或不读取 robots.txt 的爬虫。

  • 已经被用于训练的数据,不会因为补写 robots.txt 而撤回。它只对今后的抓取有效。
  • 被转载到其他网站的文字,以及过去已收录在 Common Crawl 等数据集中的内容,无法用自己网站的 robots.txt 阻止。
  • 如果需要确实挡住,也可以在服务器或 CDN 的设置中拒绝特定 User-agent 或 IP 地址的访问。
  • 从搜索结果中删除网页和停止抓取是两回事。区别请参阅robots.txt 与 noindex 的区别。

常见问题

怎样不让 ChatGPT 用我的网站训练?
在 robots.txt 中写“User-agent: GPTBot”和“Disallow: /”。OpenAI 的训练用爬虫就会停止抓取。ChatGPT 搜索所用的 OAI-SearchBot 是另一个名称,如果仍想出现在搜索中,就不要动它。
屏蔽 Google-Extended 会降低 Google 搜索排名吗?
不会。Google-Extended 只决定内容能否用于 Gemini 等 AI,不用于 Google 搜索的抓取和排名。
屏蔽 AI 爬虫后,就不会出现在 AI 搜索中了吗?
如果只屏蔽训练用的 GPTBot、ClaudeBot,AI 搜索用的 OAI-SearchBot、Claude-SearchBot 仍然可以抓取。如果把 AI 搜索用的名称也屏蔽,在这些回答中被介绍的机会就会变少。
写进 robots.txt 就一定能阻止 AI 训练吗?
不一定。robots.txt 是否遵守由爬虫自己决定。大公司声明会遵守,但已经收集的数据和转载到别处的数据无法阻止。

本文介绍的工具

相关文章

使用指南约 8 分钟

robots.txt 的检查方法:测试工具下线后检查屏蔽情况的步骤

Google Search Console 里的 robots.txt 测试工具已于 2023 年 12 月停止提供,现在换成了“robots.txt 报告”。报告无法“输入网址测试是否被屏蔽”,因此很多人不知道该去哪里检查。本文整理 robots.txt 的存放位置和打开方法、Search Console 报告和网址检查工具能看出与看不出的内容、用测试工具逐个网址确认判定的步骤,以及修改后到生效的过程。

阅读文章 →
使用指南约 7 分钟

robots.txt 中 User-agent 的写法:同时写 * 和 Googlebot 会怎样

如果 robots.txt 里同时有“User-agent: *”组和“User-agent: Googlebot”组,Googlebot 就不再使用“*”下的规则。很多人不知道这一点,加了 Googlebot 专用的组之后,原本屏蔽的网页反而被抓取了。本文说明爬虫如何决定使用哪一组、Googlebot-Image 和 AdsBot-Google 等的特殊处理,以及组的合并方法和容易写错的地方。

阅读文章 →
使用指南约 8 分钟

robots.txt 与 noindex 的区别:从搜索结果中删除网页的正确方法

“已经用 robots.txt 屏蔽了,搜索结果里还是有”“Search Console 提示‘已编入索引,尽管遭到 robots.txt 屏蔽’”。这类问题大多源于没分清 robots.txt 和 noindex 的作用。本文说明抓取和编入索引的区别、想从搜索结果中删除网页时的正确步骤、robots.txt 里的 Noindex 和 Crawl-delay 为什么无效,以及 Search Console 常见提示和常见写法错误的改法。

阅读文章 →