为 AI 爬虫配置 robots.txt
简明回答
把搜索爬虫和训练爬虫当作两个独立的决定。屏蔽 OAI-SearchBot 这样的搜索爬虫,网站会从该产品的回答中消失。屏蔽 GPTBot 或 Google-Extended 这样的训练标识,不影响搜索收录。
- 你可以编辑并部署每个相关主机名下的
/robots.txt。 - 你清楚 CDN 或 WAF 是否也在拦截爬虫。Google 指出,抓取必须同时被「任何 CDN 或托管基础设施」允许,而不只是 robots.txt。
1. 按用途决定
Section titled “1. 按用途决定”| 用途 | 标识 | 如果禁止 |
|---|---|---|
| Google 搜索(含 AI 概览和 AI 模式) | Googlebot | 页面完全不会被抓取用于搜索。 |
| Gemini 的训练和依据生成;搜索 AI 功能背后模型的训练 | Google-Extended | 不影响搜索收录,也不影响 AI 概览的展示。 |
| ChatGPT 搜索结果 | OAI-SearchBot | 不会出现在 ChatGPT 搜索回答中(仍可能作为导航链接出现)。 |
| OpenAI 模型训练 | GPTBot | 表明内容不应用于训练。 |
| ChatGPT 中由用户发起的访问 | ChatGPT-User | robots.txt「可能不适用」;不用于决定搜索收录。 |
| Claude 搜索结果 | Claude-SearchBot | 内容不会被收录进 Claude 的搜索;「可能降低网站的可见度」。 |
| Claude 用户请求 | Claude-User | 用户询问时,Claude 无法读取你的页面。 |
| Anthropic 模型训练 | ClaudeBot | 之后的内容不进入训练数据集。 |
| Perplexity 搜索结果 | PerplexityBot | 不会出现在 Perplexity 搜索结果中。 |
| Perplexity 中由用户发起的访问 | Perplexity-User | 由于是用户发起,「通常忽略 robots.txt 规则」。 |
2. 编写规则
Section titled “2. 编写规则”示例:出现在 Google、ChatGPT、Claude 和 Perplexity 的搜索中,同时退出模型训练。
user-agent: Googlebotallow: /
user-agent: OAI-SearchBotallow: /
user-agent: GPTBotdisallow: /
user-agent: Google-Extendeddisallow: /
user-agent: Claude-SearchBotallow: /
user-agent: ClaudeBotdisallow: /
user-agent: PerplexityBotallow: /
user-agent: *allow: /爬虫只遵循与其名称匹配的最具体的那一组规则,所以 * 组里的规则不会叠加到具名的组上。
- 获取线上文件:
curl -sA "OAI-SearchBot" https://example.com/robots.txt。 - 在 Google Search Console 中打开 robots.txt 报告,确认 Google 已获取新版本。
- 检查服务器或 CDN 日志中各爬虫的请求,并对照厂商公布的 IP 段核实来源(OpenAI 为每个爬虫提供了 JSON 格式的 IP 列表)。
恢复之前的文件。Google 通常会在 24 小时内刷新缓存。
- 本想屏蔽训练,却屏蔽了
OAI-SearchBot。 - 以为 Google-Extended 能把内容从 AI 概览中移除。它不能;请使用搜索生成式 AI 控制或摘要控制指令。
- robots.txt 已允许爬虫,但 WAF 规则仍返回
403。