robots.txt - 互联网的"禁止入内"标志
几乎每个网站的根目录下都有一个名为 robots.txt 的文本文件。这个文件是一种告诉搜索引擎爬虫 (机器人) "请不要抓取这个页面"的机制。它源自 Martijn Koster 在 1994 年提出的"机器人排除协议",长期以来一直是没有规范文档的惯例,直到 2022 年 9 月才成为 IETF 标准化进程 (Standards Track) 的文档 RFC 9309。该 RFC 的作者中也包括最初的提案者 Koster 本人。
然而,robots.txt 隐藏着一个令人惊讶的秘密:它是一个"请求",而不是"命令"。
robots.txt 没有法律约束力
robots.txt 是与爬虫之间的"君子协定"。Google、Bing、Yahoo 等主要搜索引擎会遵守 robots.txt,但从技术上讲,任何机器人都可以忽略它并继续抓取。恶意爬虫和垃圾邮件机器人自然会无视 robots.txt。
换句话说,robots.txt 是"对守规矩的机器人的礼貌请求",而不是安全措施。这一点是标准文档自己明确写下的:RFC 9309 的"安全考虑"一节指出,机器人排除协议不能替代妥当的内容保护措施,如果需要控制对某些路径的访问,就应该使用 HTTP 认证这类由提供文件的应用层实现的手段。通过 robots.txt "隐藏"包含敏感信息的页面,就像在前门贴上"禁止盗贼"的标志一样。真正的安全措施离不开HTTP 安全标头的正确配置。
robots.txt 实际上会泄露信息
讽刺的是,robots.txt 公开了一份"你想隐藏的东西"的清单。RFC 9309 的同一节也提醒:在 robots.txt 中列出路径,等于把这些路径公开并使其可被发现。攻击者会首先检查 robots.txt,利用 Disallow 路径推断管理面板、测试环境、内部 API、备份文件等的存在。
User-agent: *Disallow: /admin/Disallow: /staging/Disallow: /api/internal/Disallow: /backup/
这个 robots.txt 本质上是在告诉攻击者"路径 /admin/、/staging/、/api/internal/ 和 /backup/ 是存在的"。如果掌握了正确解读 URL 结构的方法,就能更深入地理解这些路径的含义。
窥探知名网站的 robots.txt
由于 robots.txt 是公开文件,任何人都可以通过访问 https://example.com/robots.txt 来阅读任何网站的 robots.txt。
- YouTube:出人意料地短,整个文件只有 30 行左右,其中排列着 20 多条
Disallow。开头还放着一句玩笑注释,说这个文件是"在 90 年代中期的机器人起义灭绝了全人类之后,于遥远的未来 (2000 年) 创建的" - 维基百科:按名称专门屏蔽了某些机器人。
MJ12bot那一条旁边用注释写明了理由:它持续大量抓取页面,并且无视 429 (请求过多) 的响应 - CIA (cia.gov):列出了 30 多个机器人名称,其中大部分都用
Disallow: /全面拒绝。它还要求所有爬虫遵守Crawl-delay: 10(间隔 10 秒),可见政府机构的网站也依靠同样的机制运作 - Amazon:允许抓取产品页面,同时排除购物车、账户和内部搜索结果
robots.txt 与对抗 AI 爬虫的新战役
2023 年以来,围绕生成式 AI 的训练数据收集,robots.txt 的作用再次受到关注。以 OpenAI 公布训练用爬虫 GPTBot 的名称和拒绝方法的 2023 年为界,许多新闻网站和出版商开始在 robots.txt 中加入面向 AI 的条目。下面代码示例中的 CCBot 是 Common Crawl 的抓取机器人,它在生成式 AI 热潮之前就已经在运行,但由于其公开归档会被用于训练,因此也越来越多地被一并列入拒绝对象。
容易让人混淆的是 Google-Extended。它常常和上面几个并列提及,但它并不是一个独立的爬虫。它没有专用的用户代理,只是一个用于在 robots.txt 中指定"是否允许把已经收集到的内容用于 Gemini 等产品的训练和答案依据"的名称,对 Google 搜索的收录没有影响。
User-agent: GPTBotDisallow: /User-agent: CCBotDisallow: /
不过,即使已经作为 RFC 9309 完成标准化,robots.txt 是"请求"这一点也没有改变。无法保证所有 AI 爬虫都会遵守它,包括与版权法的关系在内,截至 2026 年 8 月,robots.txt 在 AI 时代的定位仍在讨论之中。如果你在意 AI 爬虫收集数据,也可以考虑使用注重隐私的搜索引擎。
总结
robots.txt 从 1994 年的提案走到 2022 年的标准化 (RFC 9309),至今仍作为互联网的"礼仪"被持续使用。它没有法律约束力,也不能作为安全措施,但它仍然是管理与搜索引擎关系的重要工具。IP 确认上的 robots.txt 也经过配置,既为了让搜索引擎正确抓取,也为了逐个写明面向 AI 的机器人是否允许访问。任何人都能读到这个文件,如果你有兴趣,不妨去看看实物。
相关术语
常见问题
什么是robots.txt?
放置在网站根目录的文本文件,用于告诉搜索引擎爬虫"请不要抓取这个页面"。它源自1994年的提案,并在2022年9月标准化为RFC 9309,但遵守与否交由爬虫自行决定,是没有法律约束力的君子协定。
robots.txt能作为安全措施吗?
不能。robots.txt只是对善意机器人的"请求",恶意机器人会忽略它。反而Disallow指定的路径可能向攻击者暴露管理后台或内部API的存在。
能用robots.txt阻止AI爬虫吗?
GPTBot和CCBot等主要AI爬虫声称遵守robots.txt,但无法保证所有AI爬虫都会遵守。常被一并提及的Google-Extended并不是独立的爬虫,而是用于表明是否允许把已收集的内容用于训练和答案依据的名称。截至2026年8月,其法律地位仍在讨论之中。