robots.txt 写法全解:语法规则与常见配置误区

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

robots.txt 是部署在网站根目录的纯文本文件,用于向搜索引擎爬虫声明网站的抓取边界。一份配置合理的 robots.txt 能够保护隐私目录不被索引,引导爬虫聚焦核心内容;而配置不当则可能引发收录停滞甚至整站被屏蔽的严重后果。本文将从文件放置规则、指令语法到高频配置陷阱,系统梳理 robots.txt 的完整写法。

1. 文件部署位置与基础格式

robots.txt 必须以全小写字母命名,且只能存放在网站根目录下。访问路径通常形如 example.com/robots.txt。文件内容由多条独立记录构成,记录之间以空行分隔。每条记录的结构是:先声明 User-agent 指定目标爬虫,随后紧跟该爬虫适用的 DisallowAllow 指令。

指令行的标准格式为“字段名: 值”,例如 Disallow: /private/。字段名本身不区分大小写,但路径值通常是区分大小写的。注释以 # 符号开头,可独立成行,也可附在指令末尾,用于解释规则意图。

这里需要特别注意:一个 User-agent 声明之后可以接多条 DisallowAllow 指令,但这些指令仅对该声明的爬虫生效。虽然多数主流搜索引擎支持 Allow 覆盖更具体的 Disallow,但各家对优先级的具体处理细节略有差异,跨引擎配置时需逐一校验。

2. 常用指令写法与实战示例

2.1 屏蔽全站与屏蔽目录

最常见的需求是禁止所有爬虫抓取整个站点。这可以通过通配符星号实现:

User-agent: *
Disallow: /

如果只想屏蔽特定目录,例如管理后台和缓存目录,可以这样写:

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

这里有一个极易踩坑的细节:目录尾部斜杠必不可少。写 /admin/ 仅匹配 admin 目录及其子页面;若漏写斜杠变为 /admin,则会匹配所有以 admin 开头的路径,比如 /administrator/admin-panel 这类正常页面也会被一并屏蔽,造成不必要的收录损失。

2.2 助 Allow 放行特定子路径

当需要屏蔽整个目录但保留其中某个子路径时,必须同时运用 DisallowAllow。例如,仅放行博客下的专题专栏,其余博客页面全部禁止抓取:

User-agent: *
Disallow: /blog/
Allow: /blog/featured/

此规则的匹配遵循通用优先级:当两条规则匹配的路径长度一致时,Allow 优于 Disallow;若路径长度不同,则更长、更具体的路径规则优先。因此上述配置可确保 /blog/featured/ 被正常放行,而其他博客子页面保持屏蔽状态。

2.3 区分不同爬虫的行为控制

不同搜索引擎的爬虫可以被单独指定规则。Googlebot 使用 User-agent: Googlebot,而 Bingbot 则使用 User-agent: Bingbot。若想对某个特定的爬虫单独限制访问频率或抓取范围,可以单独为其建立一条记录,再通过 Crawl-delay 指令设置抓取延迟(单位通常为秒)。不过,该指令并非所有搜索引擎都支持,需要结合具体的官方文档加以确认。

3. 容易被忽视的常见配置误区

在实际操作中,很多人容易遗漏几个关键点。首先,通配符 * 和美元符号 $ 并非所有爬虫都支持,部分老旧的抓取工具会将其视为普通字符,导致规则失效。其次,Disallow: /Disallow:(空值)含义完全不同:前者屏蔽全站,后者表示不屏蔽任何路径。此外,Sitemap 指令虽然被广泛支持,但它并非标准的 robots.txt 指令,建议将其写在文件末尾,且不能替代站点地图的提交操作。

另一个常见误区是误以为 robots.txt 能阻止页面出现在搜索结果中。实际上,robots.txt 只是禁止抓取,页面仍有可能因外部链接而被搜索引擎收录索引。若想彻底阻止索引,应使用 noindex 元标签或 X-Robots-Tag HTTP 头。

4. 验证与维护建议

每次修改 robots.txt 后,都应通过搜索引擎官方的检查工具进行验证。例如,Google Search Console 中的 robots.txt 测试器可以模拟抓取,帮助排查语法错误和权限冲突。多数主流搜索引擎还支持查询实时抓取结果,确认规则实际生效。

建议将 robots.txt 纳入网站的版本管理,记录每一次变更。同时,为文件添加清晰的注释,说明每条规则的目的与添加日期,以便多人协作时能够快速理解。定期检查日志中的 404 错误和抓取异常,可以有效避免因规则误配导致的流量损失。

5. 常见问题

5.1 Q1: robots.txt 文件大小有限制吗?

有。Google 官方建议文件大小不超过 500 KiB(512 KB),超过该限制的部分可能被忽略。同时,单条 URL 路径的长度也应控制在合理范围内,过长的路径容易造成解析错误。

5.2 Q2: 使用通配符会降低规则的兼容性吗?

会。通配符 *$ 属于扩展语法,并非所有爬虫都支持。对于必须保证兼容性的场景,建议仅使用精确路径匹配;若必须使用通配符,请务必确认目标搜索引擎的文档说明。

5.3 Q3: 修改 robots.txt 后,多久能生效?

生效时间因引擎而异。多数搜索引擎会定期重新抓取该文件,通常需要数小时到数天不等。部分引擎提供手动提交或强制刷新接口,可以在修改后立即请求重新抓取,以加快规则更新速度。

6. 总结

合理的 robots.txt 配置是站点 SEO 的基础保障。建议从最小化的屏蔽规则开始,仅对确实需要保护的路径进行限制,减少误伤风险。每次改动后务必通过官方工具验证,并保留完整的历史记录。同时,不要将其作为控制索引的唯一手段,结合 noindex 标签和清晰的站点结构,才是更稳妥的做法。务必记住,robots.txt 的核心作用是引导爬虫高效抓取,而非过度封锁。

图1 图2

nginx