Robots.txt 完整配置教学:语法解析与常见错误规避

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

Robots.txt 是一个放在网站根目录下的纯文本文件,用于向搜索引擎爬虫说明哪些页面可以抓取、哪些需要回避。它更多是一份君子协定,而非强制的安全屏障。妥善配置它,可以让爬虫将精力集中在高质量内容上,同时降低服务器压力。

1. 爬虫如何访问与解读该文件

每当搜索引擎爬虫准备抓取网站时,第一步会请求域名根目录下的 /robots.txt。如果文件存在且爬虫遵循协议,它会依据文件内容规划抓取范围;如果文件不存在,则默认允许抓取所有可公开访问的页面。

在实际运营中,这份文件常被用来:屏蔽后台管理页面、过滤低价值的标签页或搜索参数页、调整抓取频率以节省带宽。需要清楚的是,虽然主流搜索引擎会遵守约定,但某些恶意程序并不会理会这些规则,所以切勿将它当作安全防护工具。

2. 核心语法与常用指令

文件内容由若干条记录组成,每条记录都以 User-agent 行开头,后面跟随不同的指令规则。掌握以下五个基础指令,基本就能应对绝大多数场景:

2.1 个清晰明了的配置示例

参考下面这个写法,逻辑清晰且便于日后维护:

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

这段规则的效果是:所有爬虫无法访问 tmp 和 private 两个目录,但 private 目录下的 special.html 被单独特赦放行,同时向爬虫提供了站点地图的位置。

3. 典型应用场景与避坑经验

配置过程看似简单,但细节疏漏常常会让预期效果落空。以下几个场景值得特别留意:

避坑提示:路径匹配属于前缀匹配,Disallow: /news 会连同 /newsletter 页面一起屏蔽,确需屏蔽时建议写成 /news/ 加斜杠结尾,以缩小影响范围。

4. 验证手段与其他细节

配置完成后,建议通过搜索引擎站长平台的测试工具核验规则是否生效,也可以在浏览器中直接访问域名根目录下的 robots.txt 文件,检查内容是否准确呈现。修改文件后通常会有一定延迟,爬虫需要时间重新抓取。

还需要注意:文件对大小写敏感,/Admin 与 /admin 是两个不同的路径。同时文件应使用 UTF-8 编码保存,避免中文字符出现乱码问题。

5. 常见问题

5.1 提交 robots.txt 后,已收录的页面会立刻被删除吗?

不会。robots.txt 主要用于阻止爬虫未来的抓取行为,但已经收录的页面不会因为文件的修改而马上从索引中消失。如果想尽快移除已有页面,需要配合使用 noindex 标签或通过搜索平台的删除工具来处理。

5.2 文件里是否可以写注释?

可以。以井号 # 开头的行会被视为注释内容,爬虫会忽略这些行。合理使用注释可以让文件结构更清晰,方便多人协作时理解每一条规则的用途。

5.3 Disallow 和 Allow 同时出现时,究竟听谁的?

当两者同时匹配同一路径时,规则长度更长的优先。也就是说,Allow 指令的路径长度如果大于对应的 Disallow,则 Allow 生效。利用这个特性,可以精准地在屏蔽目录时单独放行特定文件。

6. 总结

Robots.txt 的配置并不复杂,核心在于理解前缀匹配的逻辑和各个指令的功能边界。建议在配置完成后使用验证工具进行全面检查,并保持文件的简洁清晰,以免后续维护时产生困惑。不要依赖它保护敏感数据,真正的安全防护仍应依靠服务器层面的访问控制来实现。

图1 图2

nginx