在网站根目录下的 robots.txt 文件,常常被忽视,但它实际上掌控着搜索引擎爬虫的访问范围。一份正确的配置能引导蜘蛛高效抓取关键页面,提升收录效率,同时保护后台等敏感区域。相反,一个错误的规则可能导致整站被搜索引擎拒之门外,或者让爬虫将资源浪费在无价值的动态链接上。
robots.txt 本质上是一个供爬虫参考的规则说明,它告诉搜索引擎“你可以看这里,不要碰那里”。这项协议并非强制性的,更像是一种行业共识,目前主流搜索平台如 Google、必应和百度都会依据它来决定抓取的内容。
它在日常运营中的作用主要体现在三个方面:第一,屏蔽内网或敏感路径,降低被索引的风险;第二,阻止爬虫访问会生成大量重复参数的链接,节约站点的抓取配额;第三,提供 Sitemap 的地址,帮助爬虫快速定位网站地图。
需要明确的是,robots.txt 并不是安全工具。文件内容是完全公开的,任何人在浏览器中都能查看。因此,涉及账号数据、支付接口或后台登录页等真正敏感的信息,必须借助密码验证或 IP 限制等手段来保护,不能只依靠 robots.txt 进行隐藏。
robots.txt 的语法由“指令: 参数”构成,每一行设置一条规则。指令名的大小写不影响识别,但参数部分的路径是区分大小写的。掌握下面几个常用指令,基本就能应对绝大多数需求。
假设你要禁止所有爬虫访问 /admin/ 目录,但仍希望其中的 /admin/login-info.html 公开可访问,并向爬虫索引入口。配置如下:
User-agent: *
Disallow: /admin/
Allow: /admin/login-info.html
Sitemap: https://www.example.com/sitemap.xml
这段规则表示:所有未被单独限定的爬虫不允许访问 admin 目录;admin 目录里的 login-info.html 页面除外;全站地图位置已经告知。
针对复杂的站点结构,机械地罗列规则并不高效。理解 Google 等搜索引擎对路径解析的机制,能帮助你写出更简洁有效的配置。
最具体的规则永远优先。搜索引擎会比较所有匹配到的规则路径长度,路径越长且匹配字符越多,其规则优先于较短的规则。例如 Disallow: /a/ 的优先级高于 Disallow: /。
基于前缀的匹配。规则依据字符串前缀进行匹配,而非字符首尾的通配符正则。例如 Disallow: /wp- 将匹配到所有以 wp- 开头的文件路径。
通配符的支持。Google 允许使用 * 表示任意字符序列,以及 $ 表示匹配到行尾。虽然部分标准未被全部引擎支持,但这却是简化规则的常用方法。
即便理解语法,配置失误仍时有发生。这些误区可能会引发严重的不良影响,值得特别警惕。
正确的做法是保持规则简洁,避免使用大量无用的正则。每次修改前备份原文件,修改后最好能通过抓取测试页面快速验证结果。
通常搜索引擎需要重新抓取该文件后才会应用新规则,周期一般在 1 至 3 天不等。若修改紧急,可以向搜索引擎提交读取请求以加快处理。
不需要。对于不存在的链接页面,搜索引擎通过状态码(如 404)就能判断并自然淘汰。无需在 robots.txt 中添加规则,且 Disallow 此类链接并不会改变服务器返回的标头状态。
可以,但作用有限。部分搜索引擎支持在子目录内再配置一个 robots.txt 文件来限制其该目录内的抓取,但这并未通用标准,仅适用于局部验证,主要仍然建议在域名根目录下进行统一管理。
想让 robots.txt 真正为你所用,核心在于先构思清楚规则边界,再动笔配置验证。
建议从梳理站点目录结构开始,在配置时始终先去想清楚“网站最不希望被搜索到哪部分”,用上述语法允许清单限制爬虫行为。同时,要意识到该文件的可见性与非强制性,对真实敏感数据,务必添加上文件目录保护逻辑,防止意外信息泄露。