robots.txt 配置指南:语法规则、实用范例与常见陷阱详解

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

搜索引擎爬虫访问一个站点时,通常会先读取根目录下的 robots.txt 文件。这份纯文本协议如同网站与爬虫间的约定,用于告知哪些路径允许被抓取、哪些路径应当屏蔽。配置得当的 robots.txt 能避免后台目录和临时文件被索引,同时引导爬虫将抓取配额优先用于核心内容。

1. robots.txt 语法基础:核心字段与规则优先级

robots.txt 必须存放于网站根目录,例如域名是 example.com,则文件路径为 example.com/robots.txt。文件需使用 UTF-8 编码,指令逐行书写,且路径区分大小写。

一份完整配置通常包含以下字段:

示例配置:

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

该配置表示允许所有爬虫访问,但 /admin/ 目录被屏蔽,仅 /admin/help/ 例外。需要特别留意:由于 Allow 指令的支持度有限,若某目录已被 Disallow 禁止,不要依赖 Allow 来解除限制,更严格的规则会优先执行。

2. 不同场景下的 robots.txt 配置思路

网站类型和业务阶段不同,对爬虫的开放策略也应有所区分。以下方案可覆盖大多数常见需求。

2.1 内容型网站:全站开放

对于新闻门户、博客或新品展示页,通常希望搜索引擎尽可能多地收录。可将 Disallow 留空:

User-agent: *
Disallow:

省略 Disallow 行亦可达到同样效果。此场景下最常见的失误是将值误写为 /,这会导致所有爬虫停止抓取,收录工作随即中断。

2.2 发与测试环境:完全屏蔽抓取

网站未上线或处于改版期间,不希望内容被搜索引擎收录。可设置:

User-agent: *
Disallow: /

此外,建议同时在响应头中设置 X-Robots-Tag: noindex,作为双重保险。线上环境务必检查 robots.txt,避免误留此配置。

2.3 屏蔽特定爬虫或资源

若需屏蔽某个具体的爬虫,将 User-agent 替换为对应的爬虫名称即可,例如屏蔽特定抓取工具:

User-agent: SomeBot
Disallow: /

若要禁止抓取图片或 PDF 等资源,可在 Disallow 中指明文件后缀路径,例如:

User-agent: *
Disallow: /*.pdf$

需要留意:不同爬虫对通配符的支持程度不一,正规搜索引擎(如 Google)支持 * 和 $ 符号,但部分小型爬虫可能忽略这些规则。

3. 避坑要点:配置中的高发错误与排查方法

以下问题在实际部署中较为常见,值得提前防范:

4. 验证与维护建议

配置完成后并非万事大吉,建议采用以下方式确认效果:

  1. 浏览器直接访问 /robots.txt,核对文件内容是否与预期一致。
  2. 使用搜索引擎站长工具中的抓取测试功能,模拟抓取指定页面,观察命中规则。
  3. 检查服务器日志,确认爬虫实际访问路径与配置规则是否吻合。

5. 常见问题

5.1 Disallow 留空与省略该行有什么区别?

两者在功能上等价,均表示允许所有爬虫抓取整个站点。留空的好处是让阅读者明确知道这是有意为之,而非遗漏。

5.2 robots.txt 能否阻止已收录页面被删除?

不能。robots.txt 只控制抓取行为,不影响已收录页面的展示。若需彻底移除,应配合使用 noindex 标签或通过站长工具提交删除请求。

5.3 Sitemap 字段是否必须添加?

非必须,但建议添加。它能为爬虫提供清晰的页面清单,尤其适合新站或页面层级较深的站点,能显著提升收录效率。

6. 总结

合理配置 robots.txt 是网站 SEO 的基础工作之一。建议先明确站点的开放策略,再按本章提供的语法规则编写配置,并优先考虑 Sitemap 声明。配置完成后,务必实测抓取效果,避免因细节疏漏导致整站无法被索引。

图1 图2

nginx