Robots.txt 是一个存放在网站根目录的纯文本文件,它通过简单的指令告诉搜索引擎爬虫哪些页面可以抓取、哪些应当略过。需要注意的是,它并非强制性的访问控制工具,更像一份供爬虫参考的抓取指南。只要配置得当,就能让爬虫聚焦在真正有价值的页面上,同时减轻服务器负担。
搜索引擎的爬虫在访问一个站点前,会首先请求该网站根目录下的 /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 后,都应该验证规则是否按预期生效,而不要盲信本地写法。推荐的做法是:
一个实用的判断标准是:修改生效后,站点日志中对于被屏蔽路径的爬虫请求应明显减少,而正常页面的抓取频率应保持稳定。若发现重要页面抓取量骤降,请立即检查是否误用了 Disallow: / 或路径写错。
不能。robots.txt 是一个非强制协议,只约束遵守规则的爬虫。恶意采集程序可以完全不理会文件内容。若要保护敏感数据,应使用服务器级的访问控制(如密码保护或 IP 白名单)来真正阻止未授权访问。
在同一个 User-agent 记录中,Allow 指令的优先级高于 Disallow。即便某个路径被 Disallow 规则屏蔽,只要符合 Allow 规则就会优先放行。这一机制常用于在屏蔽整个目录的前提下,单独放行某个具体文件。
没有固定时间。爬虫通常会在每次抓取时重新请求该文件,有的爬虫会缓存文件内容,短则几小时、长则数天才会重新读取。若希望加快生效速度,可通过搜索引擎的站长工具主动推送更新。
robots.txt 是站点与搜索引擎爬虫之间最基础且高效的沟通方式。配置时要始终明确具体目标:是引导抓取、屏蔽低质量页面,还是节约服务器资源。每次修改后务必验证规则正确性,并重点关注路径写法、大小写及编码这三个易错点。记住它的定位是引导而非防护,重要的数据保护应当依赖服务器层面的访问控制来实现。