robots.txt配置详解:语法规则与常见错误避坑指南

📍 WDQWDWQD987AAAAA:216.73.216.53
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /7941a7a18ecd.html
📄

robots.txt 是网站根目录下的一个文本文件,作用是指引搜索引擎爬虫该抓取哪些页面、忽略哪些区域。配置得当能提升抓取效率、保护敏感目录,配置失误则可能导致页面无法被索引甚至整站被屏蔽。

1. robots.txt 的工作原理与适用边界

它本质上是一份“抓取许可协议”,主流搜索引擎会按惯例遵守,但并非强制法律。对于不守规矩的爬虫或恶意脚本,它没有约束力。

在站点运营中,它常用于三个场景:屏蔽不需要展示的后台或测试路径;限制爬虫访问携带大量参数的动态地址以节省资源;提供 Sitemap 地址以加速页面发现。

需特别留意,文件内容完全公开,任何用户输入网址即可查看,因此涉及隐私、数据接口或机密信息的资源绝不能仅靠robots.txt遮蔽,必须借助登录鉴权和防火墙。

2. 语法结构与核心字段解析

文件按“字段: 值”组织,每行一条规则。字段名不区分大小写,路径则区分大小写,掌握以下五个字段即可应对绝大多数场景。

2.1 各字段具体用途

2.2 组合配置示例

User-agent: *
Disallow: /private/
Allow: /private/readme.html
Sitemap: https://www.example.com/sitemap.xml

上述配置表达:拒绝所有爬虫访问 private 目录,仅放行其中的 readme.html,同时指明地图文件路径。规则匹配时优先采用最精确的路径匹配方式。

3. 常见配置误区与避雷清单

3.1 误用通配符或路径大小写

Disallow: /*.php$ 这类正则写法在许多搜索引擎中不生效,多数爬虫仅支持 * 匹配。路径大小写敏感,若实际文件为 /About.html,写成 /about.html 会导致规则失效。

3.2 空格和注释格式错误

字段名与冒号之间不应有空格,值前无需多余符号,注释行需用 # 开头。写错常见于习惯性加空格,例如 “Disallow : /temp/” 会被判定为无效规则。

3.3 用 Disallow 隐藏敏感内容

即使规则写对,公开信息和受密码保护的文件仍可能通过其他渠道被引用。只要链接被抓取,页面标题和片段仍可能被展示,保密必须依靠服务器端权限控制。

4. 配置校验与抓取测试方法

上线前务必验证规则是否生效,直接用浏览器访问域名加 /robots.txt 可检查文件能否正常读取。对于改动后的验证,推荐使用搜索引擎站长工具中的“抓取测试”功能,可以模拟访问并查看实际返回状态。

调整配置后建议观察数天抓取日志,确认重要页面是否仍在索引中,同时留意服务器请求量变化以判断规则是否过于宽松或激进。

5. 常见问题

5.1 Allow 和 Disallow 冲突时以哪个为准?

以最长匹配路径为准。若长度相同,则 Allow 优先于 Disallow,因此能实现“屏蔽目录但放行单文件”的效果。

5.2 全站禁止抓取后还能恢复吗?

可以。移除或更正 Disallow: / 规则并等待爬虫重新访问即可,恢复速度取决于站点权重与抓取频率,通常需要数天到两周。

5.3 为什么设置了 robots.txt 页面仍被收录?

有可能外部网站直接链接了该页面,爬虫仍可能抓取 URL 并展示标题片段,只是不索引正文内容。若需彻底移除,应配合 noindex 标签或登录访问限制。

6. 总结

正确使用 robots.txt 需要理解其边界:它是指引而非强制,是公开的文本而非安全工具。建议先明确屏蔽目标,再逐条配置并测试,避免全站屏蔽和大小写错误,敏感数据务必依赖服务器端保护;每次修改后利用站长工具验证,确保核心页面抓取正常。

图1 图2

nginx