TapCub 正式上线:统计、分析、客服一个平台免费用
AI 搜索

robots.txt 禁止所有爬虫:能挡什么、挡不了什么,以及更稳妥的写法

robots.txt 里的两行就能要求所有爬虫别碰整个网站。它实际做了什么、没做什么(不会隐藏网址,也保护不了任何东西),常见变体和 Google 怎么处理冲突规则,以及怎么检查哪些爬虫真的遵守。

伊森·布鲁克斯 发布于 2026 年 11 月 3 日 5 分钟阅读 AI 搜索
示例数字。违规者要在服务器上拦,而不是靠 robots.txt。示例数据

用你自己的数据试一下

这篇文章里出现的报表免费版全都有。一段代码,网站和 App 都能接,最多 10 个站点。

免费开始

robots.txt 里的两行就能要求所有爬虫别碰你的网站。本文讲清它实际做了什么、没做什么,常见变体,Google 怎么处理冲突规则,以及怎么检查哪些爬虫真的遵守。

读完你会知道

  • Disallow: / 停止的是抓取,不是收录;网址仍可能出现
  • Disallow: 后面留空等于允许全部,注意斜杠
  • 具名的组会替换 * 组,而不是叠加

就这两行

要让所有爬虫都别抓整个网站,在主机根目录的 /robots.txt 里写两行就够了:User-agent: * 和 Disallow: /。下面的示例还演示了怎么给某一个爬虫放行。

* 组适用于所有没有专属组的爬虫,Disallow: / 覆盖所有路径。规则按主机和协议生效:www.example.com 和 shop.example.com 各自需要一份文件。格式标准见 RFC 9309。

一个字符就能把意思完全反过来:Disallow: 后面什么都不写,意思是允许全部。注意检查那个斜杠。

robots.txtrobots.txt
# 禁止所有爬虫抓取整个网站
User-agent: *
Disallow: /

# ……Googlebot 除外,它只遵循自己的那一组
User-agent: Googlebot
Allow: /

它做不到的事

  • 不会把页面从搜索结果里移除。 Google 说,被 robots.txt 屏蔽的网址如果有其他页面链接,仍可能出现在结果里,只是没有描述。要让页面不出现,用 noindex(并允许抓取,才能看到这个标记)或密码保护(见 robots.txt 简介)。
  • 不保护任何东西。 这个文件是公开的,只是礼貌地请求。无视它的爬虫和普通人仍然能打开每个页面。
  • 不会立即生效。 Google 一般会把 robots.txt 缓存最长 24 小时。
  • 管不到别的主机。 每个子域名读自己的文件。

几种变体

表里列出人们说「禁止所有」时通常想要的几种写法,以及要注意的地方。只屏蔽 AI 爬虫,需要为每个代理名各写一组,而每家厂商都有好几个用途不同的代理;当前的名称见 GPTBot 和 ClaudeBot。

目标规则注意
屏蔽全部User-agent: * · Disallow: /网址仍可能不带描述地出现
允许全部User-agent: * · Disallow:(留空)少一个斜杠,意思就反了
只放行一个爬虫* 组 Disallow: / · 具名组 Allow: /具名爬虫会忽略 * 组
屏蔽一个目录Disallow: /private/不是访问控制;文件是公开的
只屏蔽 AI 爬虫每个代理一组,写 Disallow: /厂商有多个代理,以官方文档为准
测试站Disallow: / 加密码不要把这份文件带到正式站

优先级以 Google robots.txt 规范为准。

Google 怎么处理冲突的规则

Google 的 robots.txt 规范定了三条值得记住的规则:

  1. 每个爬虫只认一组。 爬虫只遵循用户代理匹配得更具体的那一组,其余忽略。Googlebot 组对 Googlebot 来说是替换 * 组,而不是叠加。
  2. 路径长的规则优先。 同一组里,匹配路径更长的规则生效,所以对 /blog/post 来说,Allow: /blog 压过 Disallow: /。
  3. 打平时按允许处理。 两条规则同样具体时,Google 采用限制更少的那条。

文件本身的状态码也有影响。返回 4xx(429 除外)时按没有 robots.txt 处理,所有内容都可能被抓。返回 5xx 时,Google 在头 12 小时停止抓取整个网站,之后最长 30 天沿用上一份能读到的版本。

测试站事故

Disallow: / 常见的伤害方式,是测试站的文件被带到了正式站。接下来的几天到几周,页面不再被刷新,排名随之下滑。防范办法:

  • 测试站用密码保护,不要只靠 robots.txt。
  • 在构建时按环境生成 robots.txt,不要复制。
  • 加一道发布检查:如果正式站 robots.txt 的 User-agent: * 下有 Disallow: /,就让发布失败。
  • 搜索引擎抓取量突然下降时提醒。

检查谁真的遵守

robots.txt 只是请求。把它和爬虫的实际抓取对比:全站屏蔽后,守规矩的爬虫应该只请求 /robots.txt。其他还在抓页面的,要么无视规则,要么是冒充别的爬虫。示例里三个经过验证的爬虫都遵守了,有两个客户端没有,其中一个自称 Googlebot,地址却不属于 Google。这类要在服务器或防火墙上拦,而不是靠 robots.txt。

如果屏蔽是因为爬虫给服务器带来负载,先想想问题是不是出在抓取预算和服务器报错上;全站屏蔽还会让搜索引擎无法抓取新页面。

app.tapcub.com/monitoring/crawler-compliance

看到的爬虫

5

遵守

3

违规

2

屏蔽后仍抓取

Disallow: / 之后的爬虫合规 · 7 天

示例
爬虫可信度页面抓取robots.txt 抓取状态
Googlebot已验证014遵守
Bingbot已验证09遵守
GPTBot已验证07遵守
自称 Googlebot可疑8600屏蔽后仍抓取
未知脚本客户端未知1,2400屏蔽后仍抓取
示例数据
示例数字。违规者要在服务器上拦,而不是靠 robots.txt。

在 TapCub 里核查 robots.txt 合规

有了日志导入或服务端事件提供的服务端记录,爬虫合规会抓取你的规则文件,并和实际抓取对比。它标出三类违规:全站屏蔽时仍然抓取、抓取了禁止的路径、抓取间隔短于声明的延迟。可以重新抓取并重新扫描,打开违规行可以复制一段用于服务器的屏蔽代码。生成器可以按「屏蔽训练爬虫」「屏蔽答案引擎」「只允许主流搜索引擎」起草规则,由你发布到网站上。

正如页面上说明的,文件本身挡不住抓取,报表才是证据。抓取异常提醒能发现某个引擎的抓取量突然下降,这是误屏蔽的典型信号(见文档抓取健康与爬虫合规)。更多见 AI 爬虫和 llms.txt。

常见问题

robots.txt 怎么禁止所有爬虫?

在每个主机根目录的 robots.txt 里写 User-agent: *,下一行写 Disallow: /。

Disallow: / 会把网站从 Google 移除吗?

单靠它不会。页面不再被抓取,但网址仍可能不带描述地出现。要让页面不出现,用 noindex 或身份验证。

Disallow: / 和 Disallow: 后面留空有什么区别?

Disallow: / 屏蔽所有路径;空的 Disallow: 什么都不屏蔽。

怎么屏蔽除 Google 之外的所有爬虫?

写一个 User-agent: * 组配 Disallow: /,再写一个 User-agent: Googlebot 组配 Allow: /。Googlebot 只遵循自己的那一组。

所有爬虫都遵守 robots.txt 吗?

不是。主流搜索引擎和公开声明的 AI 爬虫表示会遵守;采集脚本和伪造的用户代理往往不会。查看日志,必要时在服务器上拦截。

这篇文章对你有帮助吗?

我们会根据反馈修改和补充这篇内容。

伊森·布鲁克斯

解决方案工程师

围绕 SDK、接口集成与数据接入编写实践指南,关注实施验证、系统协作和技术排障。

看哪些爬虫遵守你的 robots.txt

爬虫合规把规则和实际抓取对比,标出三类违规,并可起草屏蔽训练爬虫、答案引擎或只放行搜索引擎的规则。

看清数据,找到增长。

每一次点击,都有数据依据。装好一行代码,1 分钟看到第一批数据。

无需信用卡 · 统计与客服都有免费版 · 统计无 Cookie