使用指南发布日期 阅读时间约 8 分钟

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. 1

    复制 robots.txt 的内容并粘贴

    打开 https://域名/robots.txt,全部复制,粘贴到测试工具的“robots.txt 内容”中。如果有修改方案,也可以粘贴公开前的方案。

  2. 2

    每行输入一个要确认的网址

    无论是“https://example.com/blog/”这样的网址,还是“/blog/”这样只有路径,都可以判定。把首页、文章、分类、搜索结果、图片、PDF 等不同类型的网址排在一起,更容易发现遗漏。

  3. 3

    选择要判定的爬虫

    先选 Googlebot 和 Bingbot。在意图片搜索就加上 Googlebot-Image,投放广告就加上 AdsBot-Google 和 Mediapartners-Google,要决定如何对待 AI 就加上 GPTBot 或 ClaudeBot。

  4. 4

    查看结果表和起决定作用的规则

    每个网址 × 爬虫都会显示“允许”或“屏蔽”。展开网址,就能看到起决定作用的规则的行号,以及所使用的组(User-agent)。结果与预想不同时,就检查那一行。

  5. 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 里不会被使用。请在各个子域名的最顶层分别放置。

本文介绍的工具

相关文章

使用指南约 7 分钟

robots.txt 中 User-agent 的写法:同时写 * 和 Googlebot 会怎样

如果 robots.txt 里同时有“User-agent: *”组和“User-agent: Googlebot”组,Googlebot 就不再使用“*”下的规则。很多人不知道这一点,加了 Googlebot 专用的组之后,原本屏蔽的网页反而被抓取了。本文说明爬虫如何决定使用哪一组、Googlebot-Image 和 AdsBot-Google 等的特殊处理,以及组的合并方法和容易写错的地方。

阅读文章 →
使用指南约 8 分钟

用 robots.txt 屏蔽 AI 爬虫:GPTBot、ClaudeBot 等

越来越多的站长不希望自己网站的文字和图片被拿去训练 AI。只要在 robots.txt 中写上 AI 爬虫的名称,就能要求各公司的爬虫停止抓取。不过 AI 爬虫分为“训练用”“AI 搜索用”“按用户指令访问”三类,屏蔽哪一类,影响差别很大。本文整理主要 AI 爬虫的名称与用途、按目的划分的 robots.txt 写法,以及屏蔽时的注意事项。

阅读文章 →
使用指南约 8 分钟

robots.txt 与 noindex 的区别:从搜索结果中删除网页的正确方法

“已经用 robots.txt 屏蔽了,搜索结果里还是有”“Search Console 提示‘已编入索引,尽管遭到 robots.txt 屏蔽’”。这类问题大多源于没分清 robots.txt 和 noindex 的作用。本文说明抓取和编入索引的区别、想从搜索结果中删除网页时的正确步骤、robots.txt 里的 Noindex 和 Crawl-delay 为什么无效,以及 Search Console 常见提示和常见写法错误的改法。

阅读文章 →