Robots.txt 核心语法与应用技巧全解析

📍 WDQWDWQD987AAAAA:216.73.217.7
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /a1536f95d7cd.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. 典型场景与细节规避

编写该文件虽然不复杂,但细节失误常导致预期落空。以下是几个高频场景及相应的操作建议:

4. 验证与更新要点

文件修改后需严格验证,避免因语法错误导致整站被误伤。建议每次调整后执行以下检查流程:

  1. 使用搜索引擎的站长工具(如 Search Console)中的 robots 测试功能,核对关键路径的抓取状态。
  2. 确认文件编码为 UTF-8,且仅包含 ASCII 字符。路径中若含中文或特殊符号,建议使用 URL 编码形式。
  3. 检查 Sitemap 声明中的网址是否可正常访问,且协议头与域名书写无误。
  4. 变更涉及全站屏蔽时,先小范围测试(例如仅对测试目录生效),确认无误后再全局应用。

5. 常见问题

5.1 Robots.txt 能否阻止搜索引擎收录页面?

可以阻止爬虫抓取页面,但页面若已被其他外部链接索引,搜索结果中仍可能显示标题与摘要信息(即使无法抓取正文)。若需彻底移除已收录内容,应结合 noindex 标签或站长工具中的移除请求功能。

5.2 Allow 与 Disallow 发生冲突时如何处理?

当两条规则匹配同一路径且前缀长度相同时,Allow 指令优先于 Disallow。利用这一点,可在屏蔽某个大目录时精细放行其中的指定文件或子路径。

5.3 Robots.txt 文件可以放在子目录中吗?

不可以。爬虫仅会请求站点根目录下的该文件,子目录中的同名文件不会被读取。文件必须命名为 robots.txt,并放置于域名根目录。

6. 总结

合理配置 Robots.txt 是站点 SEO 的基础工作之一。建议管理思路简洁为上:只屏蔽确实需要封闭的目录,始终保留 Sitemap 声明,每次修改后进行实际验证。同时牢记它只是协作协议,切勿将其作为敏感数据的保护屏障,重要内容务必配合登录验证或服务器权限控制。

图1 图2

nginx