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 的单一文件被单独解除限制,同时向爬虫声明了站点地图的存放地址。
配置流程看似精简,现实执行中却常有一处疏漏导致全盘失效的情况。以下场景尤其值得多加留意:
写完规则并上传至根目录后,并不代表工作就此结束。为确保策略落地,建议按以下步骤执行检查与迭代:
不会。Robots.txt 的核心作用是阻止后续抓取,它并不会强制删除已在搜索引擎索引中的页面。若希望旧页面尽快消失,需同时配合 noindex 标签或通过 Search Console 提交删除请求,等待引擎再次抓取时才会生效。
是有约束的。按照一般实践标准,单个文件的体积建议控制在较小范围,且单条 URL 路径长度也应保持精简。过长的规则不仅增加解析时间,还可能因超过部分引擎设定的上限而被部分忽略,从而造成意外放行。
可以。只需为不同 User-agent 分别书写独立的规则块即可实现。例如先写 Googlebot(桌面端)与 Googlebot-Mobile(移动端)各自的 Disallow 规则,再以 User-agent: * 作为兜底设置,即可兼顾不同终端的抓取策略。
Robots.txt 是控制站点抓取行为和优化服务器负载的直接工具,但它的效力完全建立在搜索引擎的自愿合作之上。建议在每次改动后都进行实际抓取验证,并确保站点地图地址始终与规则同步。配置时遵循“最小必要”原则,只屏蔽确实无索引价值的内容,谨慎使用全站封锁,不让规则偏差反噬正常流量入口。