Pack Camo

robots.txt 生成器与测试工具

按爬虫设置规则、屏蔽 AI 爬虫并添加站点地图来生成 robots.txt,再用它测试网址。

所有处理都在本地完成,不会上传任何内容。

预设
分组 1
分组 2
站点地图

请使用绝对网址,例如 https://example.com/sitemap.xml。

robots.txt

14 行

User-agent: *
Disallow: /admin/
Disallow: /cart
Disallow: /*?sessionid=
Allow: /admin/public/

# AI crawlers
User-agent: GPTBot
User-agent: ClaudeBot
User-agent: CCBot
User-agent: Google-Extended
Disallow: /

Sitemap: https://example.com/sitemap.xml

未发现问题。

编写 robots.txt 规则,再精确核对它们屏蔽了什么

这款 robots.txt 生成器根据用户代理(user agent)分组和 Allow/Disallow 规则生成文件,添加你的站点地图,并能一键套用现成配置,例如屏蔽 AI 训练爬虫或标准的 WordPress 文件。测试工具则回答真正关键的问题:这个网址是否允许该爬虫抓取,又是哪一行决定的?它遵循 RFC 9309 和 Google 文档中说明的行为——最具体的 user-agent 分组、最长匹配路径、长度相同时 Allow 优先,以及 * 和 $ 通配符——并在你输入时标出错误。一切都在你的浏览器中运行。

如何创建并测试 robots.txt

  1. 1从预设开始——全部允许、屏蔽 AI 爬虫、WordPress、屏蔽 SEO 工具或全部屏蔽——或直接编辑分组。
  2. 2在每个分组中列出它适用的用户代理(* 表示所有爬虫),并添加 Disallow 和 Allow 路径,例如 /admin/ 或 /*.pdf$。
  3. 3添加 XML 站点地图的绝对网址,查看输出下方的警告,然后复制或下载 robots.txt。
  4. 4切换到测试,输入爬虫名称并每行填写一个网址,即可看到每个网址的判定结果以及决定它的规则和分组。也可以把任何线上的 robots.txt 粘贴进去进行检查。
  5. 5把文件上传到主机的根目录,使其可通过 https://yourdomain.com/robots.txt 访问。

robots.txt 的工作原理

在抓取网站之前,守规矩的爬虫会从主机根目录获取 /robots.txt,并查找针对自己的规则。这个文件由若干分组组成:一行或多行 User-agent,后面跟着 Allow 和 Disallow 规则。Sitemap 行独立于分组之外,对所有爬虫都有效。

每个协议、主机和端口都有自己的 robots.txt:https://example.com/robots.txt 中的规则不覆盖 https://shop.example.com 或 http://example.com。文件不存在(404)意味着一切都可以抓取;服务器错误则会让 Google 暂停抓取该网站。

匹配规则详解

选择分组
爬虫只遵守 user-agent 对它指名最具体的那个分组,匹配不区分大小写——Googlebot-Image 若有 Googlebot-Image 分组就用它,否则用 Googlebot 分组,再否则用 *。指名同一代理的多个分组会被合并。* 分组中的规则不会叠加到具名分组上。
最长匹配优先
在分组内,路径与网址路径匹配字符最多的规则起决定作用。Disallow: /shop 加上 Allow: /shop/sale 会允许 /shop/sale/shoes。
长度相同时 Allow 优先
如果一条 Allow 规则和一条 Disallow 规则以相同长度匹配,则该网址被允许。
* 与 $
* 匹配任意字符序列,结尾的 $ 把模式锚定到网址末尾:Disallow: /*.pdf$ 会屏蔽 /files/report.pdf,但不会屏蔽 /report.pdf?download=1。
路径是前缀
Disallow: /admin 会屏蔽 /admin、/admin/ 和 /administrator。末尾加斜杠则只屏蔽该文件夹。规则匹配路径和查询字符串,并区分大小写。
空的 Disallow
不带路径的 Disallow: 允许一切;这是编写一个什么都不屏蔽的分组的惯用写法。

屏蔽 AI 爬虫

AI 公司会公布其爬虫的 user-agent 标识,方便网站所有者选择退出。屏蔽 AI 爬虫预设会禁止 GPTBot、ChatGPT-User 和 OAI-SearchBot(OpenAI),ClaudeBot、Claude-User、Claude-SearchBot 和 anthropic-ai(Anthropic),Google-Extended(Gemini 训练),Applebot-Extended,CCBot(Common Crawl),PerplexityBot,Bytespider(ByteDance),meta-externalagent(Meta),Amazonbot 等,同时让普通搜索引擎照常抓取。

Google-Extended 和 Applebot-Extended 是控制标识,而不是独立的爬虫:屏蔽它们可以让你的内容不被用于 Gemini 和 Apple Intelligence 的训练,而不影响 Google 搜索或 Applebot 的搜索抓取。请注意,OAI-SearchBot 和 Claude-SearchBot 等搜索类机器人为 AI 搜索答案中的引用提供支持;如果你希望出现在那里,请把它们从列表中删除。遵守与否全凭自愿,对于无视 robots.txt 的爬虫,请使用服务器或防火墙规则。

robots.txt 做不到的事

robots.txt 控制的是抓取,而不是索引。被禁止抓取的网址如果有其他页面链接到它,仍可能出现在 Google 搜索结果中——只是没有描述。要让页面不出现在搜索结果中,应允许抓取并添加 noindex robots meta 标签或 X-Robots-Tag 响应头;自 2019 年起,Google 会忽略 robots.txt 中的 Noindex: 行。可以用 meta 标签生成器生成该标签。

不要用 robots.txt 隐藏私密区域:这个文件是公开的,恰恰列出了你最不想让人发现的路径。请用身份验证来保护它们。也不要屏蔽页面渲染所需的 CSS 和 JavaScript 文件,否则 Google 无法像访客那样看到页面。

Crawl-delay、Host 及其他指令

Crawl-delay 要求爬虫在两次请求之间等待若干秒。Bing 和 Yandex 遵守它;Google 会忽略它,并根据服务器的响应自动调整抓取频率。Host 曾是 Yandex 专用的首选镜像指令,现已废弃。Google 最多读取 robots.txt 文件的前 500 KiB。

用一行或多行使用绝对网址的 Sitemap: 把爬虫引向你的 XML 站点地图;这些行可以放在文件中的任何位置。站点地图本身可以用站点地图生成器创建。

常见问题

robots.txt 应该放在哪里?
放在主机根目录,使其可通过 https://example.com/robots.txt 访问。放在子文件夹中的 robots.txt 会被忽略,每个子域名都需要自己的文件。
如何屏蔽所有爬虫?
使用 User-agent: *,后面加上 Disallow: /。遵守 robots.txt 的爬虫会停止抓取页面,但已知的网址可能还会在搜索结果中保留一段时间。
如何屏蔽 GPTBot 和其他 AI 爬虫?
添加一个列出它们的用户代理的分组——GPTBot、ClaudeBot、CCBot、Google-Extended、PerplexityBot 等——并设置 Disallow: /。“屏蔽 AI 爬虫”预设会为你写好这个分组,同时保持搜索引擎可以抓取。
Disallow 会把页面从 Google 中删除吗?
不会。它只会停止抓取,但网址仍可能通过链接被索引。要让页面不出现在结果中,请在可抓取的页面上使用 noindex meta 标签,或通过 Search Console 删除。
Allow 和 Disallow 同时匹配时,哪条规则生效?
路径更长的那条。如果两者长度相同,则 Allow 生效。测试工具会显示每个网址由哪一行决定。
robots.txt 区分大小写吗?
指令名称和 user-agent 值不区分,但路径区分:Disallow: /Admin 不会屏蔽 /admin。文件名本身必须是小写的 robots.txt。
Google 支持 Crawl-delay 吗?
不支持。Google 会忽略 Crawl-delay,并根据服务器的响应情况设置抓取频率。Bing 和 Yandex 则会遵守它。
我的 robots.txt 会被上传到任何地方吗?
不会。生成、解析和测试都在你的浏览器中完成。