Robots.txt 配置入门:语法规则与易错点盘点

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

Robots.txt 是放置在网站根目录的纯文本协议文件,用来与搜索引擎爬虫约定可访问的路径范围。它并非强制防火墙,更像一份君子协定。正确配置有助于引导爬虫抓取高价值内容,同时节省服务器资源。本文将梳理核心语法与高频踩坑场景,帮助你快速写出实用配置。

1. 爬虫的访问逻辑与文件价值

主流爬虫抓取站点前,默认会先请求根目录的 robots.txt。若文件存在且爬虫遵守协议,抓取范围将严格依据指令执行;若文件缺失,爬虫通常默认全站可抓。这一机制常被用来屏蔽后台入口、拦截低质标签页,或通过降低请求频率保护源站压力。

需特别明确:正规搜索引擎会尊重规则,但恶意程序或非标准爬虫常常无视该文件。因此,切勿将其作为安全屏障。任何敏感数据都应配合密码或 IP 白名单做额外保护,协议文件只能起到流量引导作用。

2. 必备指令与语法解析

一份完整的 robots.txt 由若干记录组成,每条记录以 User-agent 开头。以下几个指令在实际配置中高频出现:

注意指令大小写敏感,路径书写要精确。比如 Disallow: /api 会同时屏蔽 /api 和 /apiary,若只想拦截该目录,应写成 /api/。

3. 个可靠的配置范本

参考下方写法,结构清晰且便于后续维护:

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

该规则的实际效果是:禁止所有爬虫访问 tmp 与 private 两个目录,但单独放行 private 下的 special.html;同时告知爬虫站点地图的位置。这里体现了 Allow 的局部豁免能力,也说明 Disallow 的屏蔽是目录级别的。

建议在修改文件后,利用搜索引擎站长工具里的测试功能,直观验证每条规则的匹配结果,避免凭猜测上线。

4. 高频场景优化与避坑指南

实际执行中,以下典型场景往往最容易出问题:

另一个常见误区是误用正则表达式。robots.txt 仅支持通配符 *(匹配任意字符序列)和 $(匹配行尾),不遵循完整的正则语法。若规则写错,可能造成误屏蔽或失效,建议逐一检查每个路径的末尾斜杠。

5. 常见问题

5.1 robots.txt 不生效可能是什么原因

首先确认文件是否放在网站根目录且文件名完全正确。其次检查是否有语法错误,如缺少冒号或路径写错。若使用了 CDN 或缓存,也可能影响爬虫读取最新版本,建议清缓存后测试。最后确认爬虫是否遵守协议,部分自定义爬虫会忽略该文件。

5.2 robots.txt 会影响已被收录的页面吗

已收录页面的去留不完全取决于该文件。屏蔽之后,搜索引擎可能逐渐降低其抓取频率,但已索引的页面在更新前仍可能展示。若希望彻底移除内容,需要结合 noindex 标签或通过搜索平台的删除工具处理。

5.3 Allow 和 Disallow 冲突时如何判断结果

当路径长度相同且规则优先级相近时,Allow 优先于 Disallow。若路径长度不同,则以更具体、更长的那条匹配为准。例如 Disallow: /folder 与 Allow: /folder/page.html 同时存在时,后者因更精确而生效。

6. 总结

合理配置 robots.txt 的意义在于引导爬虫资源,而非封锁内容。建议先规划好站点结构,再用简洁的规则做局部限制,并定期通过站长工具验证规则效果。务必牢记它只是君子协定,核心数据仍需其他安全手段保护。

图1 图2

nginx