robots.txt 是存放于网站根目录的纯文本协议文件,旨在告诉搜索引擎爬虫哪些资源可以抓取,哪些路径应当绕行。正确设置能够优化爬虫的抓取预算、防止后台页面泄露;一旦配置失误,也可能直接导致整站内容从搜索结果中消失。接下来就系统梳理它的语法细节、匹配优先级以及容易踩中的陷阱。
它本质上是一份供搜索引擎参考的访问准则,相当于站主与爬虫之间的公开约定,并不具备强制执行的效力。主流搜索引擎(如 Google、Bing、百度)一般会选择遵守,但恶意程序或非主流爬虫完全可能无视它。
合理利用这份文件,通常可以带来三项实际收益:第一,隔离后台管理界面、临时测试页面或重复性高的目录;第二,禁止爬虫抓取带大量追踪参数的动态链接,降低无效请求对服务器资源的消耗;第三,通过在其中声明 Sitemap 地址,帮助爬虫更快发现新发布或更新的内容。
要注意的是,robots.txt 对所有人可见,任何人都能直接通过浏览器查看。凡是涉及用户隐私数据、后台登录接口或数据库文件的路径,绝不能仅仅依靠它来隐藏,必须配合密码验证、IP 限制等更严格的安全措施。
该文件的格式遵循“字段名: 值”的规范,一行对应一条指令。字段名不区分大小写,但其中的路径部分必须注意大小写敏感。掌握以下五个基础字段,就足以覆盖绝大多数常规需求。
假设站点内存在一个 /private/ 目录,其中有一个 /private/sample.html 希望被收录,同时需要告知爬虫地图文件的位置,写法如下:
User-agent: *
Disallow: /private/
Allow: /private/sample.html
Sitemap: https://www.example.com/sitemap.xml
以上规则所表达的含义是:默认阻止所有爬虫访问 private 目录,但单独例外放行其中名为 sample.html 的页面,并提供 Sitemap 的完整地址供爬虫参考。
写出一份有效的 robots.txt 并不复杂,但为了尽量避免因规则重叠导致页面被抓取异常,正确理解匹配顺序至关重要。
在单条规则内部,字符匹配的规则很简单;关键点在于不同指令之间的冲突解决。搜索引擎普遍遵循“最具体优先”原则,即匹配到更长路径前缀的规则拥有更高优先级。具体来说:当 Disallow 与 Allow 同时命中一个 URL 时,路径长度更长的那条指令将被优先采纳。在实际使用中,如果某条 URL 同时匹配了多条规则,最终结果以被采纳的那条指令为准,而不是看条目在文件中的先后位置。
此外,务必避免一个常见错误:不要把“禁止整个目录”与“允许其中某个子集”的顺序颠倒。如果先写 Allow 后写 Disallow,只要整体禁止规则在匹配长度上覆盖更广,子集仍然不会被抓取。
配置不当造成的后果往往超出预期,尤其是以下两类情况,值得反复检查。
最严重的错误便是误用了“User-agent: *”加“Disallow: /”的组合。这相当于把整站大门关闭,不出几天,已有的收录结果就会被搜索引擎逐步清除。未避免此问题,在正式发布前务必确认规则的针对性,并善用测试工具进行验证。
由于路径部分区分大小写且必须与真实文件位置完全吻合,任何字符大小写不一致都会导致爬虫找不到对应路径,产生无意义的抓取错误。严谨的做法是打开服务器日志,核对爬虫实际请求的地址格式,以保证规则与真实路径对齐。另外,不要在文件空白处随意添加注释,或混入不规范字符,这有可能导致部分爬虫无法正确解析。
robots.txt 的作用是禁止抓取,而非阻止索引。如果页面之前在别的站点被外部链接引用过,或者已被搜索引擎收录,即便后来禁止抓取,索引记录也不会立即消失。Google 这类搜索引擎甚至可能仅根据链接信息、未抓取内容来索引 URL。要想彻底移除已有结果,还需要配合 META 标签或移除工具另外处理。
在文件中直接写入以下两行即可:
User-agent: *
Disallow: /
同时需要重申,这仅对遵守规则的搜索引擎生效,不排除某些爬虫会无视该声明。对于极端敏感的内容,仍建议增加密码保护或者真正的防火墙拦截。
需要。目录结构、路径命名或页面地址发生变更后,旧规则可能指向无意义的位置,导致爬虫浪费抓取预算。通常建议在改动之后检查一遍现有规则,配合日志分析,确认爬虫抓取行为是否符合预期;同时确保 Sitemap 中列出的地址与规则是匹配的。
robots.txt 并不是一劳永逸的配置,它需要随着站点结构和运营需求的变化不断微调。建议在完成基础配置后,定期观察站点日志和搜索引擎抓取报告;如果新发布的内容迟迟未被抓取,不妨检查是否有过严格的历史规则残留。此外,规则写完后不要直接全量发布,最好先在测试环境中使用对应搜索引擎的抓取测试工具验证一遍,确认没有意外阻断。平时保持规则简洁、明确,并留意安全层面的弥补措施,才能让这份“君子协定”真正为网站的收录与性能服务。