AI 爬虫检测:GPTBot、ClaudeBot 能不能抓你的网站
输入域名或粘贴 robots.txt,工具按 RFC 9309 判断 30 多个 AI 与搜索爬虫能否抓取你指定的路径,指出常见的配置错误并给出修复规则。
要点
- 工具按 RFC 9309 判断 30 多个 AI 与搜索爬虫能否抓取你指定的路径,指出常见的配置错误并给出修复规则。
- AI 爬虫按用途分为 AI 搜索索引、用户触发的抓取和模型训练,禁止不同的爬虫影响不同的结果。
- 每个爬虫标有来源可信度,每条诊断标有证据等级,工具不给网站打综合分。
- robots.txt 只在你的浏览器里分析;只有输入域名时,本站服务器才代为请求一次 robots.txt。
适用场景与使用步骤
这个工具适合三种情况:上线前确认 robots.txt 没有误伤 AI 搜索;想让 ChatGPT、Perplexity 引用自己的内容,但不想提供训练数据;以及接手一个网站,需要快速看懂它对各家 AI 爬虫的态度。
- 在顶部输入域名,点「获取 robots.txt」。也可以直接粘贴文件内容,或者点「加载示例」看一份带有典型错误的配置。
- 在「要测试的路径」里填写想检查的页面路径,例如
/blog/或/products/abc。 - 右侧先看「诊断」。每条诊断可以展开,里面写了原因、证据等级和可以直接复制的修复代码。
- 再看爬虫表。每一行显示允许或禁止、命中的规则行号、使用的分组,以及这个爬虫的来源可信度。点「只看禁止」可以只显示被挡住的爬虫。
- 想直接改配置,就在左下角选一个意图预设,点「合并到上面的 robots.txt 并检查」。工具会保留你原有的其他规则和 Sitemap,只替换 AI 爬虫相关的分组,然后重新检查。被替换的原有行会改成注释留在原位,方便你核对有没有需要保留的路径规则或 Crawl-delay。
robots.txt 的内容只在你的浏览器里分析,不会上传。只有输入域名时,本站服务器会代为请求一次 https://域名/robots.txt,原因见下方常见问题。
AI 爬虫按用途分成三类
同一家 AI 公司通常运行多个爬虫,每个爬虫做不同的事。禁止哪一个,影响的是不同的结果:
| 用途 | 代表爬虫 | 禁止后的影响 |
|---|---|---|
| AI 搜索索引 | OAI-SearchBot、Claude-SearchBot、PerplexityBot、Kimi-SearchBot | 页面不会出现在对应产品的搜索回答和引用里 |
| 用户触发的抓取 | ChatGPT-User、Claude-User、Perplexity-User、Kimi-User | 用户贴出你的链接时,AI 读不到页面;部分厂商说明这类访问可能不遵守 robots.txt |
| 模型训练 | GPTBot、ClaudeBot、CCBot、KimiBot、Meta-ExternalAgent | 内容不进入以后的训练数据,不影响搜索引用 |
另外有两个控制令牌:Google-Extended 和 Applebot-Extended。它们不是独立的爬虫,抓取仍由 Googlebot 和 Applebot 完成,令牌只决定内容能否用于训练。Google 的爬虫文档说明,Google-Extended 不影响网站在 Google 搜索中的收录和排名。
Google 的 AI Overviews 和 AI 模式属于 Google 搜索,使用 Googlebot 抓取的索引。Bing 的 Copilot 也使用 Bing 的索引。所以禁止 Googlebot 或 Bingbot,会同时失去传统搜索和这些 AI 功能里的展示。
来源可信度和证据等级
AI 爬虫的名称变化很快,网上的名单经常互相抄写,其中有些名称从来没有被运营方确认过。工具给每个爬虫标了来源可信度,点击标签可以打开出处:
- 官方文档:运营方在自己的网站上公布了这个名称和用途,例如 OpenAI、Anthropic、Google、Kimi 的爬虫说明页。
- 第三方报告:运营方没有公开可查的文档,或者第三方测量结果与官方说法不一致。例如 Bytespider,字节跳动称它遵守 robots.txt,但 TollBit 对 2026 年上半年的测量显示,在明确禁止它的欧洲网站中,约一半仍被它抓取了禁止的网址。
- 未证实:名称只出现在第三方名单里,没有找到运营方公开的文档,例如 DeepSeekBot、Doubaobot、ERNIEBot。这些名称可能不存在,也可能不是运营方实际使用的名称。写进 robots.txt 不影响其他爬虫,但不能指望它们起作用。
每条诊断还标注了证据等级,和本站其他内容使用同一套标准:A 官方确认(官方文档或公开表态)、B 文件佐证、C 专利可能、D 行业推测。工具不给网站打综合分,因为「该不该放行某个爬虫」取决于你的目标,没有统一的标准答案。
工具会检查的常见错误
只禁止 GPTBot,以为退出了 ChatGPT 搜索
GPTBot 只负责训练。ChatGPT 搜索结果由 OAI-SearchBot 决定,用户在对话里贴链接时由 ChatGPT-User 抓取。如果你的目标是「被引用但不给训练」,只禁止 GPTBot 是对的;如果想完全退出 ChatGPT 搜索,还要加上:
1 | User-agent: OAI-SearchBot |
反过来,禁止了 OAI-SearchBot 却放行 GPTBot,结果是不出现在搜索里、内容却可能被拿去训练,工具会把这种情况标为「注意」。
给某个爬虫单独写了分组,它就不再读 * 分组
按 RFC 9309,爬虫只读和自己名称匹配的那个分组,找不到才读 User-agent: *。例如:
1 | User-agent: * |
这样写之后,PerplexityBot 可以抓取 /cart。要让它同时遵守两条规则,需要把 Disallow: /cart 也写进 PerplexityBot 的分组。工具会列出每个单独分组缺少的规则,并生成补全后的分组。
User-agent: * 全站禁止,连带挡掉 AI 搜索
测试环境或旧站常见 User-agent: * / Disallow: /。这条规则会挡住所有没有单独分组的爬虫,包括 Googlebot、Bingbot 和全部 AI 搜索爬虫。如果只是想挡掉不认识的爬虫,需要给想放行的爬虫各写一个 Allow: / 分组。
以为禁止 Google-Extended 就能退出 AI Overviews
Google-Extended 只控制 Gemini 模型训练,以及 Gemini 应用和 Vertex AI 的 grounding。AI Overviews 和 AI 模式的内容来自 Google 搜索索引,要限制它们只能用页面级的 nosnippet、max-snippet、data-nosnippet 或 noindex,代价是同时影响普通搜索结果的摘要。Google 在 AI 功能说明里写明了这一点。
Content-Signal 和 Content-Usage
robots.txt 原本只能说「能不能抓」。2025 年起出现了两种声明「内容可以怎么用」的写法,工具都会解析并单独列出:
- Content-Signal:由 Cloudflare 提出,写在 User-agent 分组里,例如
Content-Signal: search=yes, ai-input=yes, ai-train=no。三个键分别表示搜索索引、作为 AI 回答的输入、模型训练,取值只能是 yes 或 no。开启 Cloudflare 托管 robots.txt 的网站,会被自动插入一段以# BEGIN Cloudflare Managed content开头的内容,工具能识别出来。 - Content-Usage:来自 IETF AIPREF 工作组的草案,例如
Content-Usage: train-ai=n,前面可以加路径。草案的键名和取值还在变化。
这两种写法都是声明,不是访问控制。Google 公开表示 Content-Signal 对它的爬虫和模型没有作用;OpenAI、Anthropic、Perplexity 的爬虫文档也没有提到它们。真正决定能不能抓的仍然是 Allow 和 Disallow 规则。
匹配规则
工具按 RFC 9309 和 Google 的实现判断:
- 爬虫先找
User-agent与自己名称一致的分组(不区分大小写);找不到时使用User-agent: *分组。多个分组都匹配时,规则合并。 - 在分组内,路径匹配最长的规则生效;
Allow和Disallow一样长时,Allow优先。 *匹配任意字符,$表示路径结尾。Disallow:后面为空表示不禁止任何路径。/robots.txt本身总是允许抓取。
给老手:容易踩的几个细节
- 连续的多行
User-agent属于同一个分组,共用下面的规则。Google 的开源解析器只在出现Allow或Disallow之后才开始新的分组,中间的Crawl-delay、Sitemap、Content-Signal等指令不会把两组 User-agent 分开。所以User-agent: Bingbot下面只写一行Crawl-delay、紧接着写下一组 User-agent,两组会合并。工具按这种方式判断,并会提示。 Crawl-delay不被 Google 支持,Bing、Yandex 和 Anthropic 支持。- robots.txt 返回 4xx 时视为没有限制;返回 5xx 时,RFC 9309 要求爬虫视为全部禁止。工具获取域名时会区分这两种情况。
- Amazon 说明 Amzn-SearchBot 在没有单独规则时,会沿用你给其他搜索爬虫的规则。这和 RFC 9309 的回退方式不同,工具按 RFC 显示,并在该行备注。
- Cloudflare 托管的 robots.txt 会放在源站文件前面一起返回。如果两部分都有同名分组,按 RFC 9309 会合并;同长度的
Allow: /和Disallow: /同时出现时,Google 的实现以 Allow 为准。 - robots.txt 只控制抓取,不控制索引。已被禁止抓取的网址如果有外链,仍可能以无摘要的形式出现在搜索结果里。
常见问题
为什么工具判断允许,但 AI 还是抓不到我的网站?
robots.txt 只是声明。Cloudflare 等 CDN 的「屏蔽 AI 爬虫」开关、WAF 规则、服务器按 User-Agent 拦截,都会在 robots.txt 之外直接拒绝请求。另外,大多数 AI 爬虫不执行 JavaScript,只靠客户端渲染的内容对它们来说是空白页。
禁止了 ChatGPT-User 或 Perplexity-User,为什么还能看到它们的访问?
OpenAI、Perplexity、Kimi、Amazon、Meta 都在文档中说明,由用户提问触发的抓取可能不遵守 robots.txt,因为这类访问被视为代替用户打开网页。确实需要拦截时,要在 CDN 或服务器上按 User-Agent 和官方公布的 IP 段处理。
想被 AI 搜索引用、又不想被拿去训练,应该怎么写?
放行 AI 搜索和用户触发的爬虫,禁止训练爬虫和 Google-Extended、Applebot-Extended 两个控制令牌。在工具左下角选择「被 AI 搜索引用,不给训练」就能生成这份规则,也可以直接合并到现有文件里。
中国的 AI 爬虫应该怎么处理?
在本工具核对过的中国 AI 产品里,目前只找到 Kimi 公开的爬虫说明,分为 Kimi-SearchBot(搜索)、Kimi-User(用户触发)和 KimiBot(训练)。字节跳动的 Bytespider 有遵守 robots.txt 的声明,但第三方测量多次发现它抓取被禁止的网址。DeepSeek、豆包、文心没有找到公开的爬虫文档,网上流传的名称都标为「未证实」。腾讯元宝没有找到公开资料,所以不在列表里。百度搜索仍由 Baiduspider 抓取。
输入域名时,工具是怎么获取 robots.txt 的?
浏览器的同源策略不允许网页里的脚本读取其他网站,所以由本站服务器代为请求 https://域名/robots.txt,只返回这个文件的内容。获取有频率限制(每个 IP 每小时 30 次),同一网站 10 分钟内重复检查会使用缓存。如果网站对服务器请求和浏览器请求返回不同的内容,可以手动打开 robots.txt 复制粘贴。
列表里的爬虫名称多久更新一次?
以各公司公开的爬虫文档为准,每季度核对一次,有新的官方公告时随时更新,更新日期见页面顶部。每个爬虫旁边的标签链接到它的出处,可以自己核对。
延伸阅读
- robots.txt 与 Meta Robots 完整指南:控制搜索引擎和 AI 爬虫的访问权限
- JS 渲染与 SEO:为什么搜索引擎和 AI 可能看不到你的内容
- Schema 结构化数据可视化检测:检查页面的 JSON-LD,AI 搜索和 Google 都会读取它
- SERP 预览:检查标题和描述在搜索结果里会不会被截断
- 更多免费 SEO 与 GEO 工具