robots.txt 写法详解:基础语法与避坑完整指南

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

robots.txt 是网站根目录下一个纯文本文件,用于向搜索引擎爬虫声明抓取边界。合理设置能保护后台与敏感目录,集中爬虫资源到重要页面;而配置错误,轻则页面无法收录,重则整站搜索流量骤降。下文将从放置规则、指令细节到高频失误,完整梳理正确的配置方法。

1. 文件位置与基础结构

该文件名严格采用小写英文字母,且必须置于域名根目录,访问路径通常为 www.example.com/robots.txt。文件内按记录分组,组间以空行分隔。每条记录以 User-agent 定义目标爬虫,随后编写对应的 Disallow 或 Allow 条目。

指令行格式保持一致,即“字段名: 值”,例如 Disallow: /private/。字段名大小写不敏感,但路径值默认区分大小写,写入时需注意。可以用 # 添加注释,既能独立成行,也可附在指令行末尾,用于记录规则意图,方便后续排查。

关键点:一个 User-agent 后跟一组规则,这组内允许多条 Disallow 与 Allow 共存。尽管多数主流搜索引擎支持以更具体的 Allow 覆盖 Disallow,但各爬虫对优先级解释略有差异,跨平台配置需分别测试验证。

2. 核心指令写法示例

2.1 全局屏蔽与目录限定

需要禁止所有爬虫访问全站时,使用通配符星号即可:

User-agent: *
Disallow: /

若只想隔离后台或临时目录,可列出具体路径:

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

这里极易出错:目录末尾的斜杠包含语义差异。/admin/ 仅约束 admin 目录及其子路径;若遗漏斜杠写为 /admin,则会命中所有以 admin 开头的字符串,如 /administrator 或 /admin-panel,导致这些正常页面被意外遮蔽,直接影响索引结果。

2.2 使用 Allow 白名单子目录

当需要封锁整个目录,但保留其中某个特定分支时,要组合使用 Disallow 与 Allow。例如,仅开放博客下的专题栏目:

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

此规则遵循通用匹配逻辑:若两条规则匹配的路径长度一致,则 Allow 获胜;若长度不同,则更长、更具体的规则优先。所以上述配置能保证专题被顺利抓取,其余博客页面维持屏蔽状态。

2.3 按爬虫类型精细管控

针对不同搜索引擎,可设置独立规则。例如放开 Googlebot 全部内容,同时限制 Bingbot 的某一路径:

User-agent: Googlebot
Disallow:

User-agent: Bingbot
Disallow: /private/

注意 Disallow: 后留空表示完全放行。不同爬虫的用户代理字符串并不一致,建议提前从官方文档查实,避免写错名称导致规则失效。另外,未匹配到具体声明的爬虫会默认使用 User-agent: * 的规则。

2.4 限定文件类型与整站允许

利用星号通配符可以快速拦截指定后缀,比如禁止搜索引擎抓取 PDF 或图片:

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

当想开放整站时,仅留一条空的 Disallow 即可:

User-agent: *
Disallow:

3. 常见配置错误与规避思路

第一类失误是路径匹配过宽。如漏写斜杠或使用过多通配符,都有可能波及无关页面。建议每次修改后用搜索资源平台提供的抓取工具进行小范围验证。

第二类是把 Sitemap 声明错写在此文件之外。尽管搜索引擎支持在 robots.txt 中附加一行 Sitemap: 网址,但它仅是辅助提示,并非强制字段,主要判定依据仍来自站点地图独立提交入口。

第三类是项目上线后忽略复查。robots.txt 常在前端改版或迁移时被误改,建议写入版本管理流程,并在季度审核中检查文件当前内容是否与预期一致。

4. 抓取预算控制的实际影响

对于中大型网站,爬虫每日抓取额度有限。如果不加区分地放行全部资源,后台脚本或低质量标签页会消耗大量额度,导致核心文章延迟收录。通过恰当的屏蔽规则,能显著提升新内容被发现的频率。

但这并不意味着要屏蔽所有次要页面。例如筛选条件生成的 URL,若带 noindex 标签则无需再次拦截;相反,如果这些 URL 权重较高且能被正常收录,盲目屏蔽反而可能损失有价值的流量入口。

5. 调试与验证规范

配置完成后,先在浏览器直接访问根路径下 robots.txt,检查格式与内容输出。随后借助搜索引擎官方的 robots 测试工具排查语法异常。测试时需注意:部分工具仅模拟其自有爬虫的规则解析逻辑,跨搜索引擎结果可能不同,应选择目标平台工具分别确认。

常见判断标准包括:是否出现未配对的 User-agent 声明、Disallow 值是否包含非法字符、以及是否存在多余的空格或换行。清理这些细节可减少规则失效的概率。

6. 常见问题

6.1 为什么要避免用 robots.txt 屏蔽敏感数据?

robots.txt 仅是抓取协议,并非访问权限控制。若文件公开可见,任何人均能通过查看文件得知屏蔽清单,进而猜测敏感路径。真正的隐私页面应结合身份验证与服务器端访问策略来保护。

6.2 修改 robots.txt 后页面多久能恢复收录?

生效时间取决于搜索引擎的抓取频率,通常为几天到数周不等。文件本身更新后能在短时间被爬虫重新读取,但此前已抓取的页面状态,仍需等蜘蛛再次光顾时才会刷新。

6.3 是否所有搜索引擎都必须单独声明?

并非必须。若未为特定爬虫配置独立规则,它们会自动匹配 User-agent: * 的全局规则。不过对于百度、Google 等流量主力引擎,还是建议单独声明,以便做差异化调优。

7. 结语

配置 robots.txt 的本质,是给爬虫划定高效的干活边界。优先完成基础文件架设,在测试环境验证路径匹配逻辑,再逐步引入白名单或按爬虫区分规则。上线时务必复查斜杠与通配符用法,随后将文件纳入例行巡检。抓准这一套流程,站点收录质量通常会有肉眼可见的改善。

图1 图2

nginx