🎉 我们上线了 Product Hunt!支持我们并给我们反馈
返回

robots.txt 验证工具

粘贴一份 robots.txt,或直接从网址抓取。查看解析后的规则、检查语法,并测试某个路径对指定爬虫是否被屏蔽。

robots.txt 能做什么、不能做什么

robots.txt 用来告诉守规矩的爬虫哪些路径不要去请求。它是抓取指令,既不是访问控制,也不是索引指令。被屏蔽的网址如果有其他页面链接过去,依然可能出现在搜索结果中 — 只是 Google 没有读过该页的内容。要让某些内容不进入索引,应该让页面可被抓取并加上 noindex meta 标签,或者用登录验证把它妥善保护起来。

路径匹配的规则

匹配基于前缀,并且区分大小写。系统支持两个通配符:* 匹配任意长度的字符,$ 用来锚定网址的结尾。

模式匹配不匹配
/fish/fish, /fish.html, /fish/salmon.html, /fishheads/Fish.asp, /catfish
/fish//fish/, /fish/salmon.htm, /fish/?id=1/fish, /fish.html
/*.php/index.php, /folder/any.php/ , /windows.PHP
/*.php$/filename.php, /folder/filename.php/filename.php?p=1, /filename.php5

哪条规则优先

当多条规则同时命中时,最具体的一条胜出,也就是路径模式最长的那一条。如果 Allow 和 Disallow 的长度相同,则 Allow 胜出。这就是为什么对其下层的网址而言,Allow: /folder/public 会覆盖 Disallow: /folder/。

User-agent: *
Disallow: /folder/
Allow: /folder/public

假设有 Disallow: /folder/ 和 Allow: /folder/public,路径 /folder/public/page 是允许的,因为 Allow 的模式更长。

分组是怎么工作的

连续的 User-agent 行共用同一组规则。爬虫只会采用 user-agent 名称与它匹配得最精确的那一个分组,并忽略其他所有分组 — 包括 * 分组。这正是 robots.txt 最常见的错误:加了一个 Googlebot 分组,却以为 Googlebot 仍然会遵守 * 下面的规则。

User-agent: *
Disallow: /private

User-agent: Googlebot
Disallow: /admin

常见错误

从预发布环境遗留下来的 Disallow: /

这会屏蔽整个网站,也是站点上线后从搜索结果中消失的头号原因。

以为指定名称的爬虫也会遵守 * 的规则

并不会。所有共用的规则都要在指定名称的分组里再写一遍。

用 Disallow 把页面从搜索结果中移除

被屏蔽的页面仍可能通过外部链接被索引。应该允许抓取,改为输出 noindex 标签。

屏蔽 /css/ 或 /js/

Google 会先渲染页面再对它排名。屏蔽这些资源会让页面在爬虫眼里像是坏掉了。

使用相对路径的 Sitemap

Sitemap 必须是绝对网址,并且包含 https://。

Rocks Dev Dock 发布了 🥳

在工具内按 '+' 将您喜欢的工具添加到您的 dock。

使用我们的工具时不会收集数据,只是工具。