robots.txt 配置全解析:语法要点与容易踩的坑

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

对任何想从搜索引擎获取自然流量的网站来说,robots.txt 都是绕不开的一个小文件。它虽然只有几行纯文本,却直接影响着搜索引擎爬虫如何抓取你的站点。配置得当,可以让爬虫集中精力抓取核心内容;配置失误,则可能让首页或关键页面在搜索结果中消失。这篇内容会拆解它的核心语法、实际用法和常见风险,帮你避开那些常见的坑。

1. robots.txt 是什么,它在做什么

robots.txt 是一个放在网站根目录的纯文本文件,本质上是给搜索引擎爬虫看的“抓取规则说明”。它告诉爬虫站内哪些路径可以访问、哪些不能碰。但这套指令并非强制性的安全工具,更多是基于行业默契的合作协议,主流搜索引擎都会默认遵守。

它在实际中主要解决三类问题:

这里有一个容易被忽略的点:robots.txt 对所有访问者都是公开的。也就是说,任何访客都能直接看到你屏蔽了哪些路径。像会员数据、订单接口这类敏感信息,绝不能只靠它来隐藏,而是要结合登录认证、IP 白名单等真正的访问控制手段。

2. 核心语法与字段逐个说清楚

robots.txt 的语法并不复杂,遵循“字段: 值”的格式,一行一条指令。字段名不区分大小写,但路径值区分大小写。熟悉下面这几个字段,基本就能应付绝大多数配置场景。

2.1 必须掌握的五个字段

2.2 组合配置的思路示例

假设网站存在一个内部使用的 /private/ 目录,但其中有单独希望被收录的公开说明页 public-info.html,同时还需要告知爬虫 Sitemap 位置。配置可以写成这样:

User-agent: *
Disallow: /private/
Allow: /private/public-info.html
Sitemap: https://www.yourdomain.com/sitemap.xml

这段配置的含义是:所有爬虫不得抓取 private 目录;但该目录下的 public-info.html 被标记为例外,允许抓取;最后附上了全站地图地址,方便爬虫获取全貌。

3. 匹配逻辑与常见的配置误区

理解匹配规则是避免踩坑的第一步。robots.txt 的匹配遵循按照路径前缀匹配的思路:路径值以站点根目录为起点,爬虫会对照当前抓取请求的 URL 路径,寻找最长匹配的规则来决定行为。顺序非常重要,文件里先出现的规则拥有更高优先级,这一点直接影响最终结果。

常见的误区有以下几种:

写完文件后,可以直接在主流搜索引擎的站长工具里测试规则的实际匹配结果,而不是凭感觉判断。另一个容易被忽略的点是,Robots 协议只约束正常的网络爬虫,对恶意程序或马甲爬虫并不具备法律效力,所以不能指望它替你完成安全防护工作。

4. 编写与上线的实用建议

实际动手编写 robots.txt 时,有几条经验值得参考。首要的原则是“能少写就少写”,只屏蔽明确不想被抓取的路径,尽量避免大范围禁用目录,以免误伤正常页面。

此外,建议定期复盘文件内容,尤其是站点改版或迁移后。比如更换了 CMS 或新增了目录结构,旧的规则可能已失效或误伤新内容。具体可以这样做:

  1. 打开网站根目录下的 robots.txt,确认文件可以被直接访问,响应状态码正常。
  2. 逐个检查每一条 Disallow 路径,确认对应目录确实不应该被收录,而不是遗漏了某部分重要内容。
  3. 在站长工具中提交更新的规则并执行测试,观察对历史排名页面是否有影响。
  4. 若网站有大版本更新,建议保留基础规则,只在新增目录上做增量修改,避免大幅度改写。

最后记住,robots.txt 是策略文件,不是安全屏障。它的价值在于优化抓取效率,真正敏感的页面还需配合其他技术手段来防护,这两者定位要清楚。

5. 常见问题

5.1 robots.txt 能阻止所有搜索引擎收录我的网站吗?

不能完全保证。它只约束服从 Robots 协议的合规爬虫,恶意抓取工具并不会理会这些规则。而且你屏蔽的只是抓取,网址仍可能通过外部链接被索引,只是快照会缓存受限信息。想彻底屏蔽收录,建议配合 meta noindex 标签或登录验证一起使用。

5.2 Disallow 和 Allow 同时写在一个路径上,哪个生效?

取决于顺序和匹配长度。robots.txt 采取先遇到先生效的机制,所以在同一爬虫规则范围内,写在前面的一行会优先被执行。为了便于理解和管理,建议将更精确的 Allow 规则放在大范围 Disallow 规则之前,避免歧义。

5.3 配置完成后多久生效?为什么收录还是掉得厉害?

配置修改后,爬虫不会立刻重新抓取该文件,通常会有数小时乃至数天的刷新周期。如果发现收录大幅减少,建议先测试文件内容是否被正确读取,再排查是否有写错路径,比如遗漏了斜杠或使用了通配符失配。多数时候,配置本身没问题,只是抓取的缓存周期尚未更新。

6. 总结

robots.txt 是一个值得精心维护的配置文件,掌握它的语法和匹配逻辑后,再结合定期的检查复盘,就能显著提升爬虫的抓取效率,避免误封带来的流量损失。记住三条底线:不要拿它当安全工具用、别轻易全站封禁、每次改动后都到站长平台测试确认。做到这几点,基本就能自由驾驭这份文件了。

图1 图2

nginx