Robots.txt 配置全攻略:必备指令与常见误区解析

📍 WDQWDWQD987AAAAA:216.73.216.41
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /907e5600bf99.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. 典型应用场景与避坑经验

配置 robots.txt 看起来只是写几行字,但细节上的疏漏经常会让预期效果落空。以下几个场景是大家最容易遇到问题的:

这里再强调一个高频坑:路径匹配是前缀规则。写 Disallow: /news 会同时把 /newsletter 这样的路径也屏蔽掉,如果你的目标只是屏蔽某个目录,最好在末尾加上斜杠写成 /news/,确保匹配范围精确可控。

4. 易错点清单与实用建议

除了路径写错,还有几个细节值得你特别留意。首先,robots.txt 的文件名必须完全小写,文件必须放在域名根目录下,并且通过服务器配置确保它返回的是 200 状态码,而不是 404。其次,每行指令后面不能有意外空格或多余符号,空行用来分隔不同爬虫的规则块,不要随意乱用。最后,文件修改后建议用各类站点管理工具里的抓取测试功能验证一下,眼见为实。

如果你拿不准某个配置是否合理,一个稳妥的思路是:先从简单方案入手,确认爬虫行为符合预期后再逐步增加限制。另外提醒一句,检查是否有测试域名或者 IP 规则误伤正式站点。

5. 常见问题

5.1 修改 robots.txt 后搜索引擎多久会重新抓取?

没有固定的统一时间表。有的爬虫几分钟内就会重新读取这个文件,有些则可能隔几天甚至更长时间。如果你希望加速生效,可以在搜索引擎的站长后台手动提交加急抓取,但不能保证一定立刻生效。

5.2 Disallow 和 noindex 有什么区别?

Disallow 是阻止爬虫抓取某个页面的内容,但页面上若已有外部链接,它仍可能被索引收录;noindex 则是告诉搜索引擎不要把这个页面放进索引库。如果想要页面从搜索结果中彻底消失,建议在页面上使用 noindex 标签,而不是仅仅依赖 robots.txt。

5.3 网站有多个域名,robots.txt 需要分开设置吗?

是的,robots.txt 是针对域名独立生效的。如果 www 版和裸域名版都解析到同一个服务器,并且都希望生效,就需要在响应这两个域名的根目录下分别放置对应的 robots.txt 文件,或者通过服务器配置统一返回相同内容。

6. 总结

写好 robots.txt 的核心是思路清晰、路径准确、验证到位。建议你在动手修改前先梳理一遍网站需要屏蔽的目录清单,写完后用站长工具实测抓取效果,并把配置版本留好备份。记住它不是安全工具,只是一份君子协定,长期维护时保持规则的简洁与明确,远比追求复杂的配置更有价值。

图1 图2

nginx