Robots.txt 配置详解:核心语法与常见陷阱指南

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

Robots.txt 是放在网站根目录下的一个纯文本约定文件,用来和搜索引擎爬虫沟通哪些页面可以访问、哪些路径应该避开。它依靠爬虫自觉遵守,不是强制访问控制,配置得当能提升抓取效率并节省服务器资源。

1. Robots.txt 的职责范围与适用边界

爬虫访问站点时,通常先读取根目录下的 robots.txt,据此决定抓取范围。如果文件缺失,默认情况下所有公开内容都可被抓取。

实际操作中,该文件常用于这些目的:隐藏后台入口、屏蔽低价值页面(如站内搜索结果页、自动标签页)、通过限制抓取频率降低服务器负载。需要明确的是,正规搜索引擎会遵循协议指令,但恶意爬虫完全不理会它,所以不能把它当成安全防护手段。

2. 语法规则详解与指令说明

Robots.txt 由多条记录组成,每条记录先用 User-agent 声明适用的爬虫对象,再列出具体指令。掌握下面几个核心指令是正确配置的基础:

2.1 结构清晰的配置示例

下面是一份规范且易于理解的配置写法:

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

这段配置的含义是:所有爬虫不能访问 cache 目录和 private 目录,但 private 目录下的 note.html 被单独放行;同时向爬虫提供了站点地图地址。

3. 典型场景与避错要点

配置过程看似简单,但细节把握不当会带来意外后果。以下场景值得特别留意:

3.1 关于大小写与空行的细节

Robots.txt 的匹配是区分大小写的,/Admin 和 /admin 被视为不同路径。另外,每条记录用空行分隔,不同 User-agent 的规则组之间必须留空行,否则会被当成同一条记录,导致解析混乱。

4. 文件存放位置与常见注意事项

文件必须命名为 robots.txt,并且存放在域名根目录下,例如 https://example.com/robots.txt。放在子目录里不会生效,大小写也需保持一致,R 必须小写。

修改文件后,可以通过搜索引擎的抓取测试工具验证规则是否生效。注意观察实际抓取日志,确认爬虫是否真的按要求绕过被屏蔽的路径,避免因格式问题导致规则被忽略。

5. 常见问题

5.1 Robots.txt 能阻止网页被搜索到吗

不能完全保证。它能阻止爬虫抓取页面,但已收录的 URL 可能仍以标题或摘要形式出现在搜索结果中,只是无法访问正文内容。想彻底从索引移除,需配合其他手段。

5.2 Disallow 后面可以不写内容吗

可以。Disallow 后留空表示允许抓取所有路径,等同于不写该指令。它和无值的 Allow 效果相同,适合用来表示完全开放。

5.3 个域名可以放多个 Robots.txt 文件吗

不可以。每个域名只能有一个位于根目录的 robots.txt。子域名需要单独配置自己的文件,互不影响。

6. 总结

Robots.txt 是网站运营中低价高效的抓取管理工具。核心在于理解前缀匹配规则、区分大小写、正确使用 Allow 与 Disallow 的优先级关系,以及严格将文件放在根目录。建议配置后及时用测试工具验证,并定期查看爬虫日志,确认规则真正发挥着预期作用,避免因细节疏忽影响搜索引擎对网站的收录情况。

图1 图2

nginx