Robots.txt 是一个部署在站点根目录下的纯文本文件,用约定的指令告知搜索引擎爬虫哪些内容可以抓取、哪些路径需要跳过。它并非强制的访问控制机制,而是依赖爬虫自觉遵守的协作约定,合理配置能帮助爬虫更高效地抓取站点,同时减轻服务器负担。
爬虫访问一个网站时,第一件事就是读取根目录下的 robots.txt,以此决定后续的抓取策略。如果这个文件不存在,爬虫会默认站点内所有可公开访问的页面都可以被抓取。
实际应用中,这个文件通常用来处理以下几类需求:隐藏管理后台或登录入口、过滤掉低质量页面(如站内搜索结果页、标签聚合页)、通过限制抓取频率来保护服务器资源。需要特别提醒的是,正规搜索引擎会遵守文件中的指令,但恶意程序或采集工具完全无视它,所以不要把 robots.txt 当成安全防线。
Robots.txt 的内容由若干条记录组成,每条记录先通过 User-agent 声明适用的爬虫,再列出具体的指令。掌握下面这些核心指令,才能写出有效的配置:
下面是一条结构完整、含义明确的配置实例:
User-agent: *
Disallow: /cache/
Disallow: /internal/
Allow: /internal/important.html
Sitemap: https://www.example.com/sitemap.xml
这条配置的意思很直白:所有爬虫都不能访问 cache 目录和 internal 目录,但 internal 目录下的 important.html 页面被特别放行;同时把站点地图的位置告诉了爬虫。
写 robots.txt 看起来不复杂,但实际运维中经常因为忽略细节而弄巧成拙。以下几个场景需要格外留意:
修改完 robots.txt 之后,不能直接不管,建议通过以下步骤确认效果:
每次调整都建议留下变更记录,方便后续排查问题时回溯原因。
写错本身不会直接带来降权惩罚,但可能导致重要页面被禁止抓取,从而影响页面收录和排名。配置前务必谨慎确认每个路径,修改后及时验证。
不是。绝大多数正规搜索引擎都会遵循该文件,但一些商业爬虫、恶意采集工具或 SEO 工具并不会理会这些规则。因此 robots.txt 只适合做抓取范围管理,不能替代安全防护措施。
在同一个 User-agent 记录内,Allow 的优先级更高。也就是说,即使某个目录整体被 Disallow 屏蔽,只要其中某个具体文件被 Allow 明确放行,该文件依然可以被抓取。利用这个特性可以实现精细化的抓取控制。
Robots.txt 配置看似简单,却直接影响着搜索引擎对站点内容的抓取效率。建议从最小化的规则开始,先屏蔽确定无价值的目录,再逐步细化放行规则;每次修改后都通过官方工具验证,并关注实际的抓取日志变化。只有持续优化和检查,才能让这份文件真正发挥应有的作用。