选择语言

robots.txt 测试器:粘贴草稿,逐项检查 URL 是否被爬虫屏蔽

粘贴 robots.txt 草稿即可按指定爬虫匹配规则,给出每个 URL 的允许或拦截结果,并标注命中规则与解析警告。支持 GPTBot、ClaudeBot、Googlebot 等令牌。

robots.txt 测试器如何使用 ↓
请粘贴 /robots.txt 实际返回的内容。所有评估都在浏览器中进行,不会发起任何网络请求或上传任何内容。
产品令牌,例如 Googlebot、GPTBot 或 ClaudeBot,或完整的 User-Agent 字符串。
每行一个。完整 URL 会仅保留路径和查询部分。

遵循 RFC 9309,包括其中的 * 通配符和 $ 结尾锚定:爬虫自身所在的组优先于 * 组,最长匹配的规则胜出,平局时以 Allow 为准。实际爬虫在边缘情况下仍可能有差异。

Mehmet Demiray 发布日期 更新日期
分享

robots.txt 的 User-agent 分组是怎么匹配的

robots.txt 测试器会先把粘贴进来的文件拆成若干组。每个 User-agent 行及其后续的 Allow、Disallow 等行构成一组。当你输入一个抓取器时,工具按 RFC 9309 的优先级选择分组:先找完全相同的 token;找不到时,如果 token 带连字符,就回退到父 token,例如 Googlebot-Image 回退到 Googlebot;再找不到,才使用 * 组。

需要特别注意:一旦找到了具体的抓取器组,就不会再叠加 * 组中的规则。也就是说,具体组完全替代通配组,而不是把两边的规则合并。比如文件中 * 组写了 Disallow: /private/,但 Baiduspider 组只写了 Disallow: /tmp/,那么测试器对 Baiduspider 只会应用 /tmp/ 规则,/private/ 不会被阻止。反过来,如果文件中根本没有 Baiduspider 组,测试器才会读取 * 组。

文件里出现多个同名 User-agent 组时,工具会把这些同名组合并处理,最终看到的规则来自所有同一抓取器分组。测试结果中会显示实际应用的分组,方便你确认到底是哪一组在起作用。

最长匹配优先:Allow 与 Disallow 同时命中时怎么判

robots.txt 测试器对每条路径会先找出所有匹配的 Allow 和 Disallow 规则,然后按照最长匹配优先来确定最终结果。这里的“长度”是规则模式去掉 * 和 $ 之后与路径匹配的字符长度,不是文件里的行号。

| 规则 | 模式 | | Disallow: /downloads/ | /downloads/ | | Allow: /downloads/book.pdf | /downloads/book.pdf |

测试 /downloads/book.pdf 时,两条规则都匹配。因为 /downloads/book.pdf 比 /downloads/ 更长,所以 Allow 胜出,结论是允许抓取。

再看 $ 和 * 的配合。规则 Disallow: /*.pdf$ 表示阻止所有以 .pdf 结尾的路径。* 代表任意长度字符,$ 代表路径结束。它们不属于 RFC 9309 原稿的强制语法,但 Google 和大量主流抓取器都遵守,因此测试器也按这个语义解析。不过 $ 只对路径部分兜底,查询字符串中的结尾需要谨慎。

最后是两条边界:如果 Allow 和 Disallow 匹配长度完全相同,Allow 优先;如果没有任何规则匹配,默认允许抓取。一个空的 Disallow: 也等同于允许全部,只不过测试器会把它显示为匹配规则,避免你误删。你可以在结果里看到决定规则和行号,方便定位到具体一行。

用 robots.txt 测试器检查 GPTBot、ClaudeBot 与 Content-Signal

AI 搜索与训练爬虫已经成了不少中文站点需要面对的新流量。你可以在 robots.txt 测试器里输入 GPTBot、ClaudeBot、Google-Extended 这类 token,也可以粘贴完整的 User-Agent 字符串。工具会先识别产品 token,再按分组匹配路径。

与 AI 相关的内容偏好经常写在 Content-Signal 行里,例如 Content-Signal: search, ai-input, ai-train。它表达的是发布者的用途偏好:是否允许内容用于搜索展示、作为 AI 输入、用于模型训练。robots.txt 测试器会在结果中报告该组里的 Content-Signal 值,但不会把它当作技术阻挡条件。最终是否拦爬,仍要看 Disallow 规则是否匹配到该路径。

如果想让 GPTBot 只抓公开文章而不抓评论,可以写 User-agent: GPTBot、Disallow: /comment/、Disallow: /login/ 和 Content-Signal: search, ai-input。粘贴进工具后测试 /article/123 和 /comment/123,就能立刻看到允许与阻止的结论以及决定行。这样比直接部署后再排错更省事。你可以先使用 AI 爬虫 robots.txt 生成器 生成一套规则,再把草稿粘到 robots.txt 测试器里验证。对中文站点来说,如果同时有百度和 AI 爬虫,记得把 Baiduspider 与 GPTBot 分成不同组,避免通用规则互相干扰。

robots.txt 常见错误:解析器会提示哪些问题

robots.txt 测试器会在解析时标记几类常见问题,方便你在上线前修正。

首先是规则出现在任何 User-agent 之前。这样的行不属于任何抓取器组,主流抓取器通常会跳过它,测试器会给出警告。路径不是以 / 开头也是高频错误。Disallow: admin.html 应写为 Disallow: /admin.html,否则路径匹配结果可能不符合预期。Crawl-delay 虽然常用于百度、Yandex 等抓取器,但它不在 RFC 9309 里,Google 会忽略它。测试器只把它作为厂商扩展或未知指令报告,不会因为这一行改变允许或阻止结论。

中文站点特别要注意路径大小写。文件系统把 /Admin/ 和 /admin/ 当两个目录,robots.txt 匹配同样区分大小写。如果不确定,可以分别测试两个 URL。Host 和 Clean-param 是 Yandex 的扩展指令,在面向 Google 和百度时不要把它们当作通用语法。还有一种误区是在 robots.txt 里写 Noindex。这个指令不会被主流搜索引擎当作抓取控制,想让页面不出现在搜索里应该用页面 meta robots 或其他方式。

测试器对这些问题只标警告,不中断解析。你根据结果中的行号删掉或修正错误行,再重新粘贴检查,就能减少上线后被误拦或漏拦的可能。同时记住,Disallow 只是阻止抓取,不代表页面不会出现在搜索结果里。

robots.txt 测试器不做什么:本地草稿、不抓取、不查索引

robots.txt 测试器的输入是你粘贴的文件内容,而不是一个线上地址。它不会主动访问你的站点、抓取线上 robots.txt,也不会验证 URL 是否真实存在。这意味着你可以测试尚未部署的草稿,或者只存在本地的私有文件。解析过程在浏览器内完成,粘贴的规则不会上传到服务器。

当你输入完整 URL 时,工具只会提取路径和查询部分,域名会被忽略。举例说,https://example.com/abc?x=1 会被处理成 /abc?x=1 再参与匹配。它不会抓取页面内容,也不能判断某个 URL 是否已经被搜索引擎索引。因此“robots.txt 允许”不等于“会被收录”,“被阻止”也不等于“不会出现在搜索结果”。robots.txt 管的是抓取请求,不是索引结果。工具也不会对百分号编码进行归一化,/%E6%96%87%E6%A1%A3 与 /文档 会按原样匹配。

实时抓取器在个别边缘情况下的行为可能和 RFC 9309 模拟不完全一致。测试器忠实实现标准规则与主流语义,但不模拟每个搜索引擎的全部私有扩展。对于 bot 身份验证这类需求,要配合 Web Bot Auth 密钥生成器 使用,robots.txt 本身不能验证抓取者是谁。如果你同时维护给 AI 系统看的根文件,llms.txt 生成器 可以作为补充。结果导出为 CSV 或图片时,只包含你粘贴的规则与测试结论,不回传任何数据。

我们回答最多的问题

如何用 robots.txt 测试器检查某个网址是否会被屏蔽?

打开工具后,把 robots.txt 文件内容粘贴到文本框,在“抓取器”处输入产品标记,例如 Googlebot、GPTBot、ClaudeBot 或 Baiduspider,然后在列表中每行填写一个路径或完整网址。工具会逐条给出“允许”或“屏蔽”的结论,并显示决定结果的那条规则和所在行号。完整网址会被简化为路径和查询部分,域名不参与匹配。

需要注册账号或把网站挂到线上吗?

不需要。robots.txt 测试器免费、无需登录,直接在浏览器本地运行。你可以粘贴尚未部署的草稿测试,不会抓取线上 robots.txt,也不会把粘贴的内容上传,适合上线前验证规则。

可以输入完整网址吗?

可以。工具支持每行输入完整网址或路径。完整网址会被自动简化为路径和查询部分,例如 https://example.com/a/b?x=1 会按 /a/b?x=1 参与匹配,域名不会影响判断。

Allow 和 Disallow 同时匹配时,工具按什么规则判断?

按“最长匹配优先”判断。比如 Disallow: /a/ 和 Allow: /a/b/ 同时出现时,路径 /a/b/c 会命中更长的 /a/b/,因此允许访问。若两条规则匹配长度相同,Allow 优先;没有任何规则匹配时默认允许。

`*` 和 `$` 在 robots.txt 里表示什么?

* 表示匹配任意长度的任意字符,$ 表示路径在此结束。例如 /*.pdf$ 可以匹配以 .pdf 结尾的路径。它们虽然不在 RFC 9309 原始规定中,但 Google 等主流抓取器都会遵守,测试器也按此处理。

Content-Signal 行是什么?工具会执行它吗?

Content-Signal 是 robots.txt 里给 AI 抓取器的机器可读用途声明,常见值包括 search、ai-input、ai-train,用来表示内容是否可用于搜索、AI 输入或训练等用途。robots.txt 测试器只会报告该组里的 Content-Signal 值,不会执行或验证它。你可以先用 AI 抓取器 robots.txt 生成器 生成规则,再粘贴到这里测试。

我的抓取器在文件里没有专门的 User-agent 组,怎么办?

测试器会回退到 * 组。如果文件里也没有 * 组,所有路径都默认允许访问。特定抓取器有自己的组时,会优先采用自己的组,而不是把 * 组规则叠加进来。

为什么 Googlebot-Image 会按 Googlebot 的规则判断?

按 RFC 9309 的匹配方式,带连字符的产品标记会先找自己的组,找不到时回退到父标记。Googlebot-Image 没有独立组时,就会回退到 Googlebot 组;如果 Googlebot 组也没有,才会落到 * 组。

为什么 Crawl-delay 会被标记为提示?

Crawl-delay 不在 RFC 9309 标准指令中,Google 也明确忽略它。robots.txt 测试器会把它作为解析提示显示,但不会据此判断是否屏蔽。如果你的站点主要面向 Google,通常不需要依赖 Crawl-delay。

屏蔽某个网址后,它会从搜索结果中消失吗?

不一定。robots.txt 控制的是抓取,不是索引。禁止抓取的网址仍可能因为其他页面的链接而被索引并出现在搜索结果中。要从搜索结果中移除,需要 noindex 或合适的页面标记,不能只靠 robots.txt。

它和 Google Search Console 的 robots.txt 报告有什么不同?

Search Console 报告会抓取你已验证网站的线上 robots.txt,并反馈抓取失败等问题,适合线上诊断。robots.txt 测试器只测试你粘贴的文本,不上网抓取文件,因此可以测试草稿、私有配置和任意抓取器,且无需验证网站或登录。