robots.txt 检测

获取网站的 robots.txt 并解析语法,判断某个路径能否被百度蜘蛛、Googlebot 等搜索引擎爬虫抓取。

功能

  • 输入网址即可获取 robots.txt,按 User-agent 分组以表格列出 Allow 和 Disallow 规则
  • 输入任意路径,判断百度蜘蛛、搜狗、360、Bytespider、Googlebot、Bingbot 和其他爬虫(*)能否抓取
  • 与真实爬虫相同的判断逻辑:最长匹配优先,支持通配符 * 和结尾匹配 $
  • 提取 Sitemap 声明和 Crawl-delay,并提示 404、空文件和语法错误的行

适用场景

查找页面不被收录的原因

先确认这个页面的路径有没有被 robots.txt 屏蔽。

修改 robots.txt 之前先验证

检查新加的 Disallow 有没有误伤本该被抓取的页面。

参考其他网站的写法

查看公开的 robots.txt,了解别人屏蔽了哪些目录。

确认 Sitemap 声明

检查网站地图的网址是否已在 robots.txt 中正确声明。

隐私说明

你输入的网址会以 POST 方式发送到本站服务器,仅用于获取一次该网站的 robots.txt。获取到的内容全部在浏览器中解析,网址和文件内容都不会被保存。检测对象不会出现在网址参数里,所以分享本页链接时不会透露你查过哪个网站(能分享的只有工具本身的网址)。获取仅限 http/https,并限制为 5 秒、64KB、最多 3 次重定向,不会连接 localhost 或内网 IP 地址。

常见问题

用 robots.txt 屏蔽页面后,它会从搜索结果中消失吗?

不一定。robots.txt 只能阻止抓取,并不能阻止收录。如果有其他网站链接到这个页面,搜索引擎可能在没读到内容的情况下仍然收录这个网址。想把页面从搜索结果中彻底移除,应该允许抓取,再在页面上加 noindex(meta 标签或 X-Robots-Tag 响应头)。如果用 robots.txt 屏蔽了,爬虫反而读不到 noindex,页面会一直留在结果里。

Allow 和 Disallow 同时命中时,以哪个为准?

按 Google、Bing 遵循的 RFC 9309,路径匹配最长的规则优先。例如同时有 Disallow: /private/ 和 Allow: /private/ok 时,/private/ok 与 Allow(11 个字符)匹配得更长,所以允许抓取;/private/x 只命中 Disallow(9 个字符),所以禁止抓取。长度完全相同时,以更宽松的 Allow 为准。这与规则在文件中的先后顺序无关。

* 和 $ 怎么用?

* 匹配任意长度的字符。Disallow: /*? 表示“所有包含 ? 的网址”,Disallow: /*.pdf 表示“包含 .pdf 的网址”。$ 只有放在规则末尾时才有特殊含义,表示匹配到网址结尾:Disallow: /*.pdf$ 只屏蔽以 .pdf 结尾的网址,/a.pdf?x=1 不受影响。这两个都是早期规范之外的扩展写法,百度、Google、Bing 等主流搜索引擎都支持。

robots.txt 返回 404 会怎样?

返回 404(不存在)时,爬虫会视为“没有限制”,抓取整个网站。没有 robots.txt 本身并不是问题。但如果持续返回 5xx(服务器错误),Google 可能会保守处理,暂时当作整个网站都禁止抓取。所以不打算放 robots.txt 时,请确保它正常返回 404,而不是报服务器错误或陷入重定向循环。

相关工具

获取 robots.txt

也可以直接粘贴网站内任意页面的网址,只会获取该网站根目录下的 /robots.txt,且只请求一次。

这个路径能被抓取吗?

输入站内路径(以 / 开头的部分),按主流搜索引擎爬虫逐个判断。

百度 Baiduspider
-
Googlebot
-
必应 Bingbot
-
搜狗 Sogou web spider
-
360搜索 360Spider
-
字节跳动 Bytespider
-
*(其他爬虫)
-

判断方式与 Google、Bing 遵循的 RFC 9309 一致:路径匹配最长的规则优先,长度相同时 Allow 优先。* 匹配任意字符,结尾的 $ 表示匹配到网址末尾。百度、搜狗、360 等国内爬虫没有完整公开匹配细节,结果仅供参考,最终请以各搜索引擎站长平台的检测为准(如百度搜索资源平台的 robots 工具)。

User-agent 分组

没有 User-agent 分组

Sitemap

没有声明 Sitemap

需要留意的行

没有发现语法问题

robots.txt 原文