robots.txt 是放在网站根目录的一个纯文本文件,用来告诉爬虫哪些目录可以抓、哪些不要抓。它很小、很不起眼,却经常是整站掉收录的元凶:从测试环境带上线的一行 Disallow: /、把 /static/ 和 /js/ 一起屏蔽掉、规则写在所有 User-agent 之前、Sitemap 只写了相对路径——这些都不会报错,页面照常打开,只是搜索引擎悄悄不来了。
填一个网址,工具会读取该站点根目录的 robots.txt,按 RFC 9309 的口径(最长匹配优先、同样长时 Allow 优先、支持 * 与 $)判断你指定的路径能不能被抓,并告诉你是第几行的哪条规则起的作用。整个过程只对目标站发出一个请求,不爬页面、不试探路径、不下载 sitemap,检查自己的站也不会带来任何压力。
| 场景 | 要解决的事 | 建议设置 |
|---|---|---|
| 整站突然没收录 | 怀疑 robots.txt 里留着测试环境的「禁止全站」 | 爬虫选「全部爬虫」,路径填 / |
| 新站上线前自检 | 确认首页、栏目页、商品页都能被抓 | 路径一次填几个,空格隔开 |
| 页面明明存在却不收录 | 确认是 robots 拦了,还是另有别的原因 | 把那个页面的路径填进去 |
| 专门看百度 / 谷歌 | 站点给不同爬虫写了不同规则 | 爬虫切到 Baiduspider 或 Googlebot |
| AI 爬虫要不要拦 | GPTBot、ClaudeBot 这些会不会把内容抓走 | 爬虫切到对应的 AI 爬虫 |
| 找站点地图 | 不知道 sitemap 放哪、有没有声明 | 看页面最下面的「站点地图」 |
| 改完规则想验证 | 不确定 Allow 能不能盖住更宽的 Disallow | 填被屏蔽目录里的那个具体页面 |
不会。整个过程只发一个请求:GET /robots.txt,读到的内容限制在 256 KB 以内(站点把 http 跳到 https 时会跟着走一次跳转,读的还是同一个文件)。你填的路径是在服务器上按规则本地算出来的,不会去访问那些页面,也不会下载 sitemap、不会逐个试探目录——所以填 10 个路径和填 1 个路径,对方收到的请求数是一样的。
按 RFC 9309 的口径算:最长匹配优先,同样长时 Allow 优先,* 匹配任意字符、$ 锚定结尾,同名分组的多条规则合并。百度、谷歌、必应在这套优先级上是一致的。不过真实抓取还受 IP、账号、地区、缓存影响,工具给的是「按这份文件应该怎样」。
行。填 https://example.com/admin/ 会自动取成 /admin/,域名部分忽略——判定本来只看路径和查询串。相对写法 admin/ 会被补成 /admin/。
因为爬虫只遵守与自己最匹配的那一组,不是把所有组叠加起来。文件里写了 User-agent: Baiduspider 这一组,百度就完全按这一组走,* 组里那些 Disallow 对它无效——这也是最常见的配置误解之一。
不是。robots 只挡抓取,不挡收录:已经收录的页面不会因为这条规则立刻消失,别的页面链过来时它仍可能以「无摘要的链接」形式出现。想真正不让它进搜索结果,要允许抓取并给页面加 noindex。
站点根目录没有 robots.txt,按约定视为全站允许抓取。这时所有路径都会判为允许,页面会明确说明是「没找到文件」而不是「检测失败」。
403 多半是防火墙 / WAF 把爬虫拦了,真实爬虫同样拿不到文件;5xx 是服务器出错。这两种情况下爬虫会认为规则不可用,短期内按「全站允许」处理——但被挡本身就是要修的问题,页面会给出对应提醒。
对 Google 完全没用,它不认这条指令(想降速要到 Search Console 调);必应、Yandex 等少数爬虫会认。所以看到「声明了 crawl-delay」只会给一条提醒,不影响允许 / 禁止的结论。
不支持。为保护服务器,只允许访问公网 HTTP / HTTPS 地址,127.0.0.1、192.168.x.x、10.x.x.x 这类回环与内网地址会被直接拒绝。本地调试请把文件贴进文档里人工核对。
不会下载,只把文件里声明过的地址列出来——去下 sitemap 就又是一次请求了,和「只碰一次」的原则冲突。点地址可以在新标签自己打开查看。
不会。结果只存在于当前页面,刷新就没了;服务器不落库、不写日志里的网址内容。
用手机相机扫描二维码,即可继续使用该工具
遇到问题或有好建议?告诉我们。