robots.txt 的检查方法:测试工具下线后检查屏蔽情况的步骤
Google Search Console 里的 robots.txt 测试工具已于 2023 年 12 月停止提供,现在换成了“robots.txt 报告”。报告无法“输入网址测试是否被屏蔽”,因此很多人不知道该去哪里检查。本文整理 robots.txt 的存放位置和打开方法、Search Console 报告和网址检查工具能看出与看不出的内容、用测试工具逐个网址确认判定的步骤,以及修改后到生效的过程。
robots.txt 测试工具没了,换成“robots.txt 报告”
以前的 Search Console 里有 robots.txt 测试工具,可以一边修改 robots.txt 的内容,一边测试“这个网址会不会被 Googlebot 屏蔽”。Google 于 2023 年 11 月宣布停用,12 月停止提供。取而代之的是“设置”中的“robots.txt 报告”。
| 想确认的事 | robots.txt 报告 | 网址检查工具 | robots.txt 测试工具(本站) |
|---|---|---|---|
| Google 能否获取 robots.txt | 能看出 | — | — |
| 最后获取的时间和内容 | 能看出 | — | — |
| 语法错误、警告的行 | 能看出(Google 读不了的行) | — | 能看出(还包括全角符号、网址、Noindex 等) |
| 某个网址是否被屏蔽 | 看不出 | 已公开的网址能看出 | 能看出(公开前的修改方案也可以) |
| 起决定作用的规则所在行 | 看不出 | 看不出 | 能看出 |
| Googlebot 以外的爬虫 | 看不出 | 看不出 | Bingbot、GPTBot 等 23 种 |
报告是用来了解“Google 现在读的是哪个 robots.txt”的页面,无法测试修改前的方案。网址检查工具会告诉你已公开的网址是否“被 robots.txt 屏蔽”,但不会显示是哪一行造成的。想在修改前确认影响时,最快的方法是把方案粘贴到测试工具里判定。
robots.txt 的存放位置与打开方法
robots.txt 要以“robots.txt”为文件名,放在网站的最顶层。在浏览器中打开“https://域名/robots.txt”,就能看到当前公开的内容。
- 存放位置只有一个:https://example.com/robots.txt 会被读取,而放在下层的文件,如 https://example.com/blog/robots.txt,不会被读取。
- 每个域名各自独立:www.example.com 和 example.com,以及 shop.example.com 这样的子域名,各自都需要 robots.txt。
- http 和 https、端口号也各自独立:http://example.com/robots.txt 的内容不会用于 https:// 的网页。
- 文件名用小写:Robots.txt 或 ROBOTS.TXT 可能不会被读取。
- 编码用 UTF-8:如果要写中文等非 ASCII 的路径或注释,请以 UTF-8 保存。
用测试工具逐个网址确认屏蔽情况的步骤
- 1
复制 robots.txt 的内容并粘贴
打开 https://域名/robots.txt,全部复制,粘贴到测试工具的“robots.txt 内容”中。如果有修改方案,也可以粘贴公开前的方案。
- 2
每行输入一个要确认的网址
无论是“https://example.com/blog/”这样的网址,还是“/blog/”这样只有路径,都可以判定。把首页、文章、分类、搜索结果、图片、PDF 等不同类型的网址排在一起,更容易发现遗漏。
- 3
选择要判定的爬虫
先选 Googlebot 和 Bingbot。在意图片搜索就加上 Googlebot-Image,投放广告就加上 AdsBot-Google 和 Mediapartners-Google,要决定如何对待 AI 就加上 GPTBot 或 ClaudeBot。
- 4
查看结果表和起决定作用的规则
每个网址 × 爬虫都会显示“允许”或“屏蔽”。展开网址,就能看到起决定作用的规则的行号,以及所使用的组(User-agent)。结果与预想不同时,就检查那一行。
- 5
修正“写法检查”后再判定一次
全角“:”、在 Disallow 中写了网址的行等 Google 不会按预期读取的写法,会带行号提示。修正后用同样的网址再判定一次,确认结果后再公开。
判定规则的详细内容请参阅Allow 与 Disallow 的优先顺序,添加 Googlebot 专用组时的注意事项请参阅User-agent 的写法。
修改后到 Google 生效的过程
修改了 robots.txt,Google 也不会马上使用新内容。Google 通常会把获取到的 robots.txt 缓存 24 小时左右,在此期间仍按旧内容抓取。
- 着急时:可以在 Search Console 的 robots.txt 报告中,从对应 robots.txt 的“︙”菜单请求重新抓取。
- 确认是否生效:报告中的“上次抓取时间”晚于修改时间,且显示的内容已是新的,就说明已经生效。
- 对搜索结果的影响更慢:即使停止抓取,已在搜索结果中的网址也不会马上消失。反过来,解除屏蔽后,也要等重新抓取、评价恢复,需要一段时间。
还要注意,访问 robots.txt 时服务器返回错误,Google 的处理方式会变化。404 等“找不到”会被当作“没有限制(全部允许)”,但如果 5xx 错误或超时持续出现,Google 会暂时停止抓取整个网站。维护期间是否只有 robots.txt 报错,可以在报告的获取状态中确认。
检查时容易忽略的要点
- 正式环境与开发环境搞混:上线前为网站写的“Disallow: /”,有没有原样带到正式环境。这是整个网站逐渐从搜索结果中消失的典型原因。
- 屏蔽了 CSS、JavaScript:屏蔽 /assets/ 或 /wp-includes/,Google 可能无法正确渲染网页,影响移动设备适配等方面的评价。
- 大小写:“Disallow: /Admin/”不会屏蔽 /admin/。请确认与网址的实际写法一致。
- 文件大小:Google 只读取开头的 500KiB。自动生成、多达几千行的 robots.txt,后面的规则可能被忽略了。
- 与 noindex 的搭配:用 robots.txt 屏蔽了想从搜索结果中删除的网页,noindex 就读不到,网页会一直留着。详情请参阅robots.txt 与 noindex 的区别。
常见问题
- Search Console 的 robots.txt 测试工具在哪里?
- 已于 2023 年 12 月停止提供,现在没有了。取而代之的是“设置”→“robots.txt”报告,可以查看 Google 获取到的 robots.txt 内容、获取时间和错误。逐个网址判定是否被屏蔽,请用网址检查工具(仅限已公开的网址)或 robots.txt 测试工具确认。
- 修改 robots.txt 后会马上生效吗?
- Google 通常会把 robots.txt 缓存 24 小时左右,所以不会马上生效。着急时可以在 Search Console 的 robots.txt 报告中请求重新抓取。
- 没有 robots.txt 会怎样?
- 找不到 robots.txt(404)时,会被当作“没有限制”,所有网址都是抓取对象。如果没有想屏蔽的网页,不放 robots.txt 也没有问题。
- 子域名也需要 robots.txt 吗?
- 需要。robots.txt 是按主机分别读取的,把 blog.example.com 的规则写在 example.com/robots.txt 里不会被使用。请在各个子域名的最顶层分别放置。
本文介绍的工具
相关文章
robots.txt 中 User-agent 的写法:同时写 * 和 Googlebot 会怎样
如果 robots.txt 里同时有“User-agent: *”组和“User-agent: Googlebot”组,Googlebot 就不再使用“*”下的规则。很多人不知道这一点,加了 Googlebot 专用的组之后,原本屏蔽的网页反而被抓取了。本文说明爬虫如何决定使用哪一组、Googlebot-Image 和 AdsBot-Google 等的特殊处理,以及组的合并方法和容易写错的地方。
阅读文章 →用 robots.txt 屏蔽 AI 爬虫:GPTBot、ClaudeBot 等
越来越多的站长不希望自己网站的文字和图片被拿去训练 AI。只要在 robots.txt 中写上 AI 爬虫的名称,就能要求各公司的爬虫停止抓取。不过 AI 爬虫分为“训练用”“AI 搜索用”“按用户指令访问”三类,屏蔽哪一类,影响差别很大。本文整理主要 AI 爬虫的名称与用途、按目的划分的 robots.txt 写法,以及屏蔽时的注意事项。
阅读文章 →robots.txt 与 noindex 的区别:从搜索结果中删除网页的正确方法
“已经用 robots.txt 屏蔽了,搜索结果里还是有”“Search Console 提示‘已编入索引,尽管遭到 robots.txt 屏蔽’”。这类问题大多源于没分清 robots.txt 和 noindex 的作用。本文说明抓取和编入索引的区别、想从搜索结果中删除网页时的正确步骤、robots.txt 里的 Noindex 和 Crawl-delay 为什么无效,以及 Search Console 常见提示和常见写法错误的改法。
阅读文章 →