robots.txt是放置在网站根目录的纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些路径需要避开。配置得当能提升抓取效率、保护后台隐私,但一旦语法出错或规则冲突,很可能导致整站页面从搜索结果中消失。本文帮你理清它的语法逻辑、字段用法以及最容易被忽视的配置陷阱。
它本质上是一份面向爬虫的建议性协议,而非强制执行的安全屏障。Googlebot、Baiduspider等主流爬虫会遵循文件指令,但这依靠的是行业惯例而非法律约束。恶意爬虫或脚本程序完全可以无视规则强行抓取。
实际项目中,合理利用robots.txt能实现三个目标:屏蔽后台目录(如/admin/)和测试页的抓取;阻止大量带跟踪参数的动态URL消耗抓取带宽;在文件中添加Sitemap绝对路径,加快新页面被发现的周期。
必须牢记:robots.txt完全公开透明。任何访问者都可通过输入域名+/robots.txt查看全部内容。因此涉及登录凭证、业务数据接口或敏感客户信息的路径,绝不能依赖robots.txt保护,需采用账号认证、IP白名单或Web应用防火墙等更强约束。
文件遵循"字段: 值"的逐行格式,每行一条指令。字段名大小写不敏感,但URL路径部分严格区分大小写。掌握以下五个字段,基本能覆盖绝大多数业务需求。
假设网站存在内部运营目录/ops/,需要阻止爬虫抓取该目录下大部分文件,但保留其中名为/ops/report.html的页面可被正常收录,同时向爬虫提供Sitemap入口。参考写法如下:
User-agent: *
Disallow: /ops/
Allow: /ops/report.html
Sitemap: https://www.example.com/sitemap.xml
该配置表达了四层含义:为所有未单独声明的爬虫设定默认规则;整体禁止访问ops目录;只针对其中一个具体文件做例外放行;最后告知站点地图位置。请注意顺序安排的一般习惯是Disallow在前,Allow在后,避免部分旧解析逻辑产生歧义。
一个看似正确的文件,可能在细节里埋下整站掉收录的隐患。以下问题在真实站点中反复出现,值得逐条核对。
完成编辑并非结束,上传前仍需完整走一遍验证流程,才算真正落到安全位置。推荐按如下顺序操作:
修改后若发现原本能被搜索到的页面突然全部消失,优先排查是否误写Disallow: /,或是Allow与Disallow的顺序搭配造成了整体屏蔽。另外,新配置通常需要两到七天的爬虫重新抓取周期才会稳定,短期观察不到变化实属正常,不必反复大改。
不能强制阻止。它只约束主动遵守协议的搜索引擎爬虫,而对于浏览器客户端、下载工具或恶意程序,robots.txt不会产生任何限制效果。真正需要防盗链,应改写服务器规则或配置CDN的Referer校验策略。
规则按爬虫分组独立生效。例如为Googlebot单独设置的分组不会影响Baiduspider的行为。但要注意一个常见混淆点:User-agent: *分组通常作为未单独声明爬虫的默认规则,不会覆盖任何特定爬虫组的指定内容。
对于支持Allow字段的搜索引擎(如Google),在匹配URL路径时,规则列表执行的是最具体的匹配优先原则;若长度相同则取最后一条规则。也就是说同一级路径下,书写的Allow会被当作更精确的匹配放行,这解释了为何Allow写在Disallow之后仍然有效。
配置robots.txt的关键在于清晰理解其非强制属性、掌握前缀匹配逻辑,并严格检查路径大小写和文件编码。建议每次修改后先在镜像环境或站长工具中模拟验证,再正式发布。把robots.txt视为爬虫交通疏导图,而不是内容安全锁,只有结合站点认证与网络安全机制,才能真正守护后台数据不被破坏或泄露。