Robots.txt 是一个放在网站根目录下的纯文本文件,用于向搜索引擎爬虫说明哪些页面可以抓取、哪些需要回避。它更多是一份君子协定,而非强制的安全屏障。妥善配置它,可以让爬虫将精力集中在高质量内容上,同时降低服务器压力。
每当搜索引擎爬虫准备抓取网站时,第一步会请求域名根目录下的 /robots.txt。如果文件存在且爬虫遵循协议,它会依据文件内容规划抓取范围;如果文件不存在,则默认允许抓取所有可公开访问的页面。
在实际运营中,这份文件常被用来:屏蔽后台管理页面、过滤低价值的标签页或搜索参数页、调整抓取频率以节省带宽。需要清楚的是,虽然主流搜索引擎会遵守约定,但某些恶意程序并不会理会这些规则,所以切勿将它当作安全防护工具。
文件内容由若干条记录组成,每条记录都以 User-agent 行开头,后面跟随不同的指令规则。掌握以下五个基础指令,基本就能应对绝大多数场景:
参考下面这个写法,逻辑清晰且便于日后维护:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/special.html
Sitemap: https://www.example.com/sitemap.xml
这段规则的效果是:所有爬虫无法访问 tmp 和 private 两个目录,但 private 目录下的 special.html 被单独特赦放行,同时向爬虫提供了站点地图的位置。
配置过程看似简单,但细节疏漏常常会让预期效果落空。以下几个场景值得特别留意:
避坑提示:路径匹配属于前缀匹配,Disallow: /news 会连同 /newsletter 页面一起屏蔽,确需屏蔽时建议写成 /news/ 加斜杠结尾,以缩小影响范围。
配置完成后,建议通过搜索引擎站长平台的测试工具核验规则是否生效,也可以在浏览器中直接访问域名根目录下的 robots.txt 文件,检查内容是否准确呈现。修改文件后通常会有一定延迟,爬虫需要时间重新抓取。
还需要注意:文件对大小写敏感,/Admin 与 /admin 是两个不同的路径。同时文件应使用 UTF-8 编码保存,避免中文字符出现乱码问题。
不会。robots.txt 主要用于阻止爬虫未来的抓取行为,但已经收录的页面不会因为文件的修改而马上从索引中消失。如果想尽快移除已有页面,需要配合使用 noindex 标签或通过搜索平台的删除工具来处理。
可以。以井号 # 开头的行会被视为注释内容,爬虫会忽略这些行。合理使用注释可以让文件结构更清晰,方便多人协作时理解每一条规则的用途。
当两者同时匹配同一路径时,规则长度更长的优先。也就是说,Allow 指令的路径长度如果大于对应的 Disallow,则 Allow 生效。利用这个特性,可以精准地在屏蔽目录时单独放行特定文件。
Robots.txt 的配置并不复杂,核心在于理解前缀匹配的逻辑和各个指令的功能边界。建议在配置完成后使用验证工具进行全面检查,并保持文件的简洁清晰,以免后续维护时产生困惑。不要依赖它保护敏感数据,真正的安全防护仍应依靠服务器层面的访问控制来实现。