Robots.txt 是网站根目录下一个约定俗成的文本文件,用于向搜索引擎爬虫说明哪些页面允许抓取、哪些路径需要避开。它本质上依赖爬虫的自律,并非强制性的安全屏障,但配置得当可以显著提高抓取效率、节省服务器带宽,是每位站点管理者都应掌握的基础技能。
爬虫访问站点时,第一步就是检查根目录下的 robots.txt 文件,以此决定后续的抓取范围。如果该文件不存在,爬虫会默认站内所有公开链接都可以被抓取,这往往是造成资源浪费的常见原因。
在日常运营中,robots.txt 主要用于隐藏管理后台、屏蔽低价值页面(如站内搜索页、参数繁多的筛选页)、控制抓取频次等方面。需要特别提醒的是,正规搜索引擎会遵守协议,但恶意爬虫不会理会这份文件,所以它绝对不能替代防火墙或访问认证等安全措施。
Robots.txt 由多个记录块组成,每块必须先声明 User-agent 指明适用的爬虫,随后逐行列出指令。掌握下面几个核心指令,就掌握了 90% 的配置场景:
下面是一个结构清晰、注释完整的实例,可作参考模板:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/readme.html
Sitemap: https://www.example.com/sitemap.xml
这段配置表达的逻辑是:所有爬虫禁止访问 tmp 和 private 目录,但 private 中的 readme.html 被显式放行,同时告知爬虫站点地图地址。
配置看似简单,但实操中有几个场景非常容易出错,这里重点说明:
写完 robots.txt 并不代表工作结束,至少还需要完成两件事:一是通过搜索引擎官方的抓取测试工具(如 Google Search Console 的 robots 测试器)验证语法和路径匹配是否正确;二是将文件纳入日常运维清单,在改版、新增目录或迁移域名后及时复查。
一个常见的误区是认为 robots.txt 里写的内容越多越安全。实际上,文件行数过多、规则复杂反而容易出错,建议保持精简,只屏蔽真正需要屏蔽的路径,并定期清理失效的指令。
能阻止抓取,但不等同于阻止收录。如果其他网站链接了该页面,搜索引擎仍可能基于链接信息将 URL 收录(只是不抓取内容)。若希望彻底从索引中移除,应配合使用 noindex 标签或 Search Console 的移除工具。
最严重的情况是误写成 Disallow: /,导致全站无法被抓取,新内容长时间不收录。另外,路径前缀写错会导致该屏蔽的没屏蔽、不该屏蔽的反被禁止,建议每次修改后用测试工具逐条验证。
不是必须的。可以通过 Search Console 或 Bing Webmaster 后台提交站点地图,效果与在 robots.txt 中声明一致。不过,在文件中保留 Sitemap 指令对所有爬虫都是开放的,属于低成本的双保险。
Robots.txt 是一门精细活,核心思路是"明确告知、避免误伤"。从一份简洁的规则开始,配合测试工具验证,并养成修改后复查的习惯,就能避免绝大多数配置事故。建议每季度审视一次现有规则,移除不再需要的屏蔽项,让爬虫的访问路径始终保持清晰高效。