对任何站点而言,robots.txt 都是日常运营中绕不开的技术细节。这个存放于网站根目录的纯文本文件,充当着与搜索引擎爬虫沟通的"抓取说明书",明确告知哪些路径应当被访问、哪些路径需要绕行。规则设置得当,爬虫能更集中地抓取核心内容,加快重要页面的收录速度;反之,一次失误的配置则可能导致整站权重下跌甚至索引量骤降。本文将从基础定位讲到实战写法,帮你理清这套规则体系中的关键逻辑与高频陷阱。
robots.txt 的固定访问地址为域名后加 /robots.txt,例如 https://example.com/robots.txt。它的本质是对爬虫抓取行为的一种调度与引导,但需要清醒地认识到:这份文件并不能决定某个页面是否被搜索引擎收录。假如你希望某个链接彻底从搜索结果中消失,应当依赖 noindex 标签来阻止索引,而 robots.txt 仅能阻止爬虫抓取的动作本身,二者职责完全不同。
同时要留意的是,robots.txt 对爬虫而言仅是一份"君子协定"。主流搜索引擎的蜘蛛会遵循其中的约定,但恶意采集脚本或部分第三方工具并不会理会这些规则。因此,凡涉及用户隐私、支付接口或核心业务数据的目录,绝不能仅依赖此文件进行保护,必须配合登录验证、IP 白名单或防火墙等更硬性的防护措施。
robots.txt 由若干独立的规则组构成,每一组的首行必须是 User-agent 字段。书写时遵循"字段名: 值"的格式,建议统一使用小写字母,并在冒号后保留一个空格,以此规避潜在兼容性差异。
该字段指定规则组作用于哪个爬虫。例如写入 User-agent: Googlebot 即仅对谷歌爬虫生效;若要覆盖所有搜索引擎的抓取工具,则使用通配符 User-agent: *。一个文件中可同时存在多个规则组,分别面向不同爬虫设定差异化权限。请注意,规则组的顺序也会影响执行效果,通常将特定爬虫的规则写在通用规则之前。
Disallow 用于声明禁止访问的路径,Allow 则相反,表示允许爬虫访问。有一个容易忽略的细节:当 Disallow 后不填写任何内容,即写作 Disallow: 时,代表解除全部限制,允许抓取整个站点。当 Allow 与 Disallow 同时命中同一 URL 时,搜索引擎遵循"最长匹配优先"原则——路径更为具体的那条规则胜出。例如,同时存在 Disallow: /admin/ 和 Allow: /admin/public/,则 /admin/public/ 目录下的链接依然会被正常抓取。
Sitemap 指令用于声明网站地图的完整 URL,帮助爬虫更迅速地获取站点内容清单,通常置于文件末尾。Crawl-delay 从字面看是用来设定抓取请求的时间间隔,但需要注意的是,谷歌官方早已声明会忽略此指令。若确实需要调整抓取频率,应前往 Google Search Console 后台进行设置,而不是依赖此字段。
以下列举几个常用配置需求,你可以直接参考并根据自己的目录结构替换路径。
在部署配置文件时,务必先检查规则是否会影响首页的访问权限,因为一个误写的 Disallow: / 会直接导致整站失去抓取入口。建议在配置变更后使用搜索引擎提供的检测工具进行验证。
以下几条是实践中最高发的失误,值得重点留意:
正常情况下,搜索引擎爬虫会定期重新抓取该文件,通常在一到数天内即可感知更新。若情况紧急,可通过 Google Search Console 的"网址检查"工具主动请求重新抓取,以加速恢复过程。
不可以。一个域名(或子域名)下只能存在一份位于根目录的 robots.txt 文件。如需为不同站点(如移动站与 PC 站)设置不同规则,应分别部署在各自的域名根目录下。
使用井号(#)进行注释。井号后的内容直至行末都会被忽略,常用于解释某条规则的用途或标注日期,便于后期维护。
妥善配置 robots.txt 是网站技术优化的基本功。建议你定期审视这份文件,结合站点结构调整及时更新规则,并始终牢记它的边界——它只负责调度抓取,不承担索引控制与安全防护的职责。每次修改后,务必利用爬虫模拟工具验证效果,确保核心页面始终向搜索引擎敞开大门。