robots.txt 配置指南:语法规则与常见场景写法

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

搜索引擎的爬虫并不是网站里所有内容都该被收录,后台目录、临时页面或敏感数据如果被抓取并索引,既可能泄露信息,也会占用服务器带宽。robots.txt 就是用来告诉爬虫哪些路径可以抓取、哪些路径应当绕行的配置文件。掌握它的语法和常见写法,能让你在控制爬取范围时更得心应手。下面从放置位置和基础指令开始,逐步拆解实际配置中的关键点。

1. 文件存放位置与核心指令

robots.txt 必须放在网站根目录,也就是通过域名直接访问到的位置。比如你的站点是 example.com,那么文件地址就是 https://example.com/robots.txt。文件内容由多个规则块组成,每个块都必须先声明 User-agent,指定这条规则适用的爬虫。

一个最基本的开放示例,允许所有爬虫访问并提交地图文件:

User-agent: *
Disallow:
Sitemap: https://example.com/sitemap.xml

编写时每条指令独占一行,冒号后保留一个空格,行尾不要有多余字符。

2. 不同场景下的配置方法

不同网站的抓取需求差异较大,以下几个是日常使用频率较高的配置组合,可以直接参考调整。

2.1 发期间屏蔽全站

网站还在测试或未正式上线时,用 Disallow: / 可以阻止所有爬虫进入。相比单独屏蔽某个目录,这种方式更彻底,也能避免测试环境被意外收录到搜索结果中。

User-agent: *
Disallow: /

2.2 排除特定目录

大多数情况下,只需要屏蔽一小部分区域,比如后台管理页面或用户订单记录。想禁止爬虫访问 /admin/ 和 /private/,写法如下:

User-agent: *
Disallow: /admin/
Disallow: /private/

需要注意,Allow 指令并非所有爬虫都支持。如果不确定,只列出 Disallow 即可,因为没有被 Disallow 声明的路径默认是允许抓取的,不需要额外写 Allow。

2.3 对不同爬虫分开设置

较大的站点可能需要区别对待不同搜索引擎。例如允许 Googlebot 抓取全站,同时限制其他爬虫访问下载资源目录:

User-agent: Googlebot
Allow: /

User-agent: *
Disallow: /downloads/

这种分段写法在同一个文件里可以重复多次,按从上到下的顺序匹配,优先级会取最具体的 User-agent 声明。

3. 实际配置中的常见误区

很多站点在配置时容易忽略一些细节,导致规则没有按预期生效。以下是几个常见的避坑点:

4. 测试与验证方法

配置完成后,不能直接认为爬虫就会按你的想法行动。建议按照以下步骤检查一遍:

  1. 在浏览器地址栏直接访问 https://example.com/robots.txt,确认文件能正常打开且格式无误。
  2. 使用搜索引擎官方提供的开发者工具,如 Google Search Console 的 robots.txt 测试器,模拟抓取某个具体路径,查看页面是否被允许访问。
  3. 提交站点地图,确保 Sitemap 指令中的 URL 可以正常访问,没有返回 404。
  4. 观察抓取日志,确认爬虫访问行为与预期一致。如果发现某个页面频繁出现在日志中但并未被索引,检查该路径是否被意外屏蔽。

建议在修改规则后的 24-48 小时内持续关注日志变化,避免因误配置导致整站从索引中消失。

5. 常见问题

5.1 robots.txt 能完全保证敏感页面不被收录吗?

不能。robots.txt 只是给爬虫的请求,屏蔽了抓取,但如果其他网站通过外链指向了你的敏感页面,搜索引擎仍可能根据链接内容生成摘要并展示。真正敏感的数据不应当只依赖 robots.txt,还需要设置登录验证或服务器层面的访问限制。

5.2 如果文件里没有任何规则,爬虫会怎么处理?

如果 robots.txt 文件存在但内容为空,或者文件不存在,爬虫会默认抓取网站所有公开可访问的内容。如果你想保持全站开放,直接使用 User-agent: * 加 Disallow: 留空的写法即可,这样既声明了规则又不会误屏蔽任何路径。

5.3 Allow 和 Disallow 同时出现时,优先级怎么判断?

规则按文件中的顺序从上到下匹配,以最先匹配到的规则为准。Googlebot 支持 Allow,且更长的路径会优先匹配。但为了减少歧义,建议同一组规则的编写顺序保持 Disallow 在前、Allow 在后,并且不要混合多个相同层级的路径声明。

6. 总结

robots.txt 的核心作用是用最少的规则控制爬虫的抓取范围,配置时遵循两个原则即可:一是只写必要的 Disallow 声明,二是每个修改都通过测试工具验证效果。先根据现有网站结构列出需要屏蔽的路径,再针对不同搜索引擎设置权限,最后提交站点地图完成闭环。保持文件简洁、注释清晰,后续维护时就能省去很多排查时间。

图1 图2

nginx