Robots.txt 是一个存放在网站根目录的纯文本文件,用于告知搜索引擎爬虫哪些路径可以抓取,哪些需要绕开。它本质上是行业间的君子协定,并不具备强制力,更不是安全工具。合理制定规则,能让爬虫把抓取预算花在关键页面上,也能减轻服务器不必要的负载。
当爬虫访问一个站点时,会优先查找根目录下的 robots.txt 文件。如果文件存在且能被正确解读,爬虫便遵照其中的指令行动;如果文件缺失,通常默认允许爬取所有公开内容。
它最适合用来隐藏后台地址、过滤站内搜索结果页以及标签聚合页等低价值内容,有时也能通过设置抓取间隔来缓解服务器的瞬时压力。但要牢记一点:愿意遵守这份协议的只有规范运营的搜索引擎,恶意爬虫和采集脚本根本不会按照规则行事,涉及隐私或机密的数据必须依靠访问控制等真实安全手段来保护。
规则文件是一组组以 User-agent 开头的配置块。实际项目中把握以下几个指令,就能覆盖绝大部分需求:
下面这份配置清晰且常见:
User-agent: *
Disallow: /upload/
Disallow: /private/
Allow: /private/index.html
Sitemap: https://www.example.com/sitemap.xml
这份规则的含义是:禁止所有爬虫访问 upload 和 private 目录,但 private 下的 index.html 属于例外,允许抓取,同时向爬虫公布站点地图位置。注意同一组规则中 Allow 对具体文件的放行优先于 Disallow 的目录级拦截。
语法本身并不难,但配置结果与预期不符的情况多源于细节疏忽。下面几种情形尤其容易出错:
维护 robots.txt 并不要求一劳永逸,它更像一个需要随站点结构调整而更新的配置项。建议遵循如下做法:
没有该文件时,搜索引擎会默认允许抓取所有公开可访问的页面。如果你的站点没有特殊需求,不添加文件通常没有问题;但如果存在不想被收录的低质量目录,就需要及时创建并配置规则。
在同一组规则里,Allow 的优先级高于 Disallow,这也是部分站点用 Allow 在屏蔽目录中放行个别页面能够成功的原因。不过不同搜索引擎对匹配长度的处理略有差异,稳妥起见应通过各自的工具验证实际效果。
只能阻止爬虫抓取,但无法阻止它从其他来源发现链接并展示 URL。若希望某页面彻底不被索引,更可靠的方式是结合 noindex 标签使用,同时避免从外部站点公布指向该页面的链接。
配置 robots.txt 时,先设好整站规则,再细化例外路径;规则文本要简单清晰,避免依赖复杂语法。改动后立刻用第三方工具复核实际抓取效果,持续跟踪收录数据,才能让这份文件真正服务于站点的内容管理目标。