Robots.txt 是一个放在网站根目录下的纯文本协议文件,通过固定格式的指令告诉搜索引擎爬虫哪些页面可以抓取、哪些路径建议跳过。它依靠爬虫自觉遵守,并非强制性的访问控制,配置得当能帮助爬虫更高效地收录站点,同时减少无效请求对服务器造成的压力。
爬虫每次来访时,都会先尝试读取根目录下的 robots.txt 来决定后续抓取范围。如果文件缺失,爬虫通常会默认可抓取所有公开页面。
实际工作中,它多用于隐藏后台入口、屏蔽低价值页面(比如站内搜索结果页、自动生成的标签聚合页),或是降低请求频率以保护服务器稳定。需要明确的是,守规矩的搜索引擎会尊重这些指令,但恶意采集程序根本不看这个文件,所以机器人协议绝不能代替安全防护。
文件内容由若干条记录组成,每条记录先以 User-agent 声明适用对象,再列出具体指令。想写对配置,先吃透下面这几个指令:
下面是一份结构规范的参考写法:
User-agent: *
Disallow: /cache/
Disallow: /internal/
Allow: /internal/key.html
Sitemap: https://www.example.com/sitemap.xml
它的含义是:所有爬虫不得访问 cache 目录和 internal 目录,但 internal 下的 key.html 页面被独立放行,同时附上了站点地图地址。
配置看起来不复杂,但实操中稍不留神就会适得其反。下面这些细节建议特别留意:
另外,调试时可用搜索引擎站长后台的 Robots 检测工具,输入路径查看实际拦截结果。修改文件后,抓取更新通常需要一点缓冲时间,不要频繁改动。
配置完成后,如何判断是否真的生效?可以从行为和日志两个维度观察。
首先是行为层面:在无痕窗口搜索 site:域名/希望屏蔽的页面地址,如果该页面在搜索中逐步消失,说明拦截起作用了;相反,如果页面依然可见或被重新收录,就需要检查规则书写是否正确。
其次是日志层面:查看服务器访问日志中搜索引擎爬虫的抓取记录,若请求频率明显下降,说明指令被正确接收。如果请求量始终居高不下,就要考虑是否写错了 User-agent 名称,或者爬虫根本不识别这些指令。
不能完全依赖它来实现。正规搜索引擎会遵守 robots.txt 的声明,可一旦内容被其他网站转载或收录了外链快照,仍有可能通过别的途径被发现。如果确实需要彻底隐藏内容,应借助页面级的 noindex 标签配合权限认证来确保。
两者效果相同,都是允许抓取所有内容。Disallow: 后面不跟任何字符时,表示无禁止路径;删掉这行同样代表不限制。更常见的误操作是写上 Disallow: /,这会拦截全站,务必区分清楚。
不同搜索引擎的刷新周期差异较大,短则几小时,长则几天。网站内容较多时,爬虫重新抓取整个文件需要更长间隔。不必反复修改文件,等待数天后通过站长工具的抓取测试即可确认效果。
配置 robots.txt 前先想清楚目标:是屏蔽低质页面还是限定抓取频率。写规则时注意大小写、路径符号、Allow 与 Disallow 的优先级,以及不要把文件当作安全屏障。配置完成后用检测工具验证,并以实际抓取日志为准调整,才能让这份协议真正为站点服务。