robots.txt配置教程与高频错误规避指南

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

网站通过 robots.txt 文件告诉搜索引擎爬虫哪些内容可以抓取、哪些区域应当回避。配置合理时,它能避免服务器资源浪费,防止后台或隐私页面泄露;配置失误时,轻则规则失效,重则导致整站无法收录。掌握正确的书写方式和匹配逻辑,是每位站点管理者必须完成的基础功课。

1. 文件位置与命名细节

爬虫默认在域名根目录查找该文件,因此文件必须命名为小写的 robots.txt 并放置于根目录,如 example.com/robots.txt。如果文件名大小写有误,或文件被放在子目录下,爬虫会视其为不存在,所有屏蔽规则随之失效,站点将会被完整开放抓取。

文件内容按“规则组”组织,每组以 User-agent 开头,紧随其后的是若干规则行,组与组之间留一空行,便于后期维护。字段名不区分大小写,但路径部分按大小写敏感处理,书写时保持统一。注释行以 # 开头,可独立成行或附在规则末尾,仅供人工阅读,不影响爬虫判断。

2. 基本规则的正确写法

三条核心指令构成规则主体:User-agent 指定爬虫对象,Disallow 声明禁止路径,Allow 用于在禁止范围内开放指定入口。

若需全站禁止收录,配置如下:

User-agent: *
Disallow: /

只屏蔽后台目录的写法:

User-agent: *
Disallow: /admin/

斜杠的有无直接影响匹配范围。/admin/ 仅限制 admin 目录及其子页面;漏写末尾斜杠变成 /admin 后,凡是路径前缀为 admin 的地址都会被拦截,例如 /administrator 或 /admin-panel,容易误伤无关内容。书写时仔细核对每个路径的结尾符号。

3. 匹配优先级与冲突处理

当 Allow 与 Disallow 同时作用于某个路径时,结果不由书写顺序决定,而是依据规则长度判断:路径长度相同则以 Allow 为准,长度不同则最具体、最长的规则生效。

例如,隔离整个博客目录但单独放行一个专题页面:

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

上述配置可使专题页正常被爬取,其余博客内容维持拦截状态。实施之前,建议先罗列所有需限制的路径,逐一推演是否存在交互匹配,防止个别链接意外放行或误屏蔽。

4. Sitemap 声明与常见误区

在文件末尾追加一行 Sitemap: https://yourdomain.com/sitemap.xml,能够主动向爬虫提供站点地图地址,加快新内容的发现速度。此声明使用绝对完整网址,且不区分大小写。

配置过程中需要注意:规则并不是越多越好。冗长且冗余的规则组会增加维护成本,更容易引起匹配冲突。同时,robots.txt 对已收录页面不具备删除作用——若要移除已有索引,应借助搜索平台的删除工具或 meta robots 标签,仅删除该文件不会立即清除搜索结果。

5. 常见问题

5.1 为什么加了规则后蜘蛛依然抓取被屏蔽的目录?

先确认文件是否位于正确的域名根目录且可公开访问;其次检查是否同时存在 Allow 与 Disallow 冲突,导致更具体的规则优先放行。部分搜索引擎处理方式存在差异,建议用各平台官方工具测试实际生效规则。

5.2 Disallow 与 Allow 的优先级是固定的吗?

优先级判定取决于匹配路径的长度对比,若长度相同则按 Allow 优先处理。掌握这一规则才能准确控制局部放行效果,而不是依靠书写顺序来判断。

5.3 修改文件后多久能生效?

生效时间取决于各搜索引擎的抓取频率,短则数小时,长则数天。可以主动通过管理后台的站点验证工具提交更新,加快爬虫重新读取的速度。

6. 总结

正确配置 robots.txt 的关键在于:文件放对位置、路径写对格式、冲突规则按具体程度判断。配置完成后建议通过官方检测工具测试每条规则的实际效果。定期复查文件内容,及时清理不再需要的规则组,既能保证站点隐私安全,也有助于搜索引擎更高效地收录核心内容。

图1 图2

nginx