robots.txt配置指南:核心语法与常见错误解析

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

网站的抓取效率与收录表现,往往藏在一份名为 robots.txt 的小文件里。它位于站点根目录,以指令形式告知搜索引擎爬虫哪些内容可抓取、哪些路径应屏蔽。配置得当,爬虫资源会集中在关键页面,新内容更快被收录;一旦写错,轻则目录被误封,重则整站收录异常。

1. 认识它的边界:控制抓取,而非决定收录

robots.txt 的作用对象是爬虫程序,通过地址栏访问“域名/robots.txt”即可看到内容。它相当于给爬虫指路,但页面最终能否进入搜索索引,并不由它决定。若想彻底移除某个页面的搜索结果,应当使用 noindex 元标记。这份文件仅约束抓取行为,对已抓取内容是否被收录没有任何话语权。

此外,遵守该协议完全依赖爬虫的自觉。主流搜索引擎的蜘蛛基本会遵循,但部分采集脚本和第三方抓取工具对此视而不见。涉及后台管理、用户资料、订单记录等敏感目录,务必叠加登录验证、IP 白名单或防火墙等安全手段,切勿将站点安全寄托于这份“君子协定”。

2. 语法结构拆解:字段含义与匹配规则

robots.txt 由多条规则组构成,每个规则组以 User-agent 字段起始。所有字段遵循“名称: 值”格式,冒号需为英文半角,规范写法在冒号后留一个空格。多数爬虫对格式有一定容错,但保持规范书写可避免后续解析的潜在麻烦。

2.1 User-agent:明确规则的适用对象

此字段声明该规则组约束哪种爬虫。仅针对谷歌搜索蜘蛛,写入 User-agent: Googlebot;希望所有搜索引擎统一执行,则用通配符 User-agent: *。可同时建立多个规则组,对不同爬虫实施差异化策略,例如对谷歌放宽、对必应收紧。

2.2 Allow 与 Disallow:相配合的权限开关

Disallow 声明禁抓路径,Allow 声明允许路径,两者常搭配使用。有个关键细节常被忽略:当 Disallow 后面为空(即 Disallow: 后无值),表示移除全部限制,爬虫可访问全站内容。同一 URL 命中多条规则时,搜索引擎遵循“最长匹配优先”——路径越具体,优先级越高。例如同时存在 Disallow: /api/ 与 Allow: /api/public/,后者更具体,因此 public 子目录会被放行。

2.3 辅助字段:Sitemap 与 Crawl-delay

Sitemap 字段声明站点地图的完整地址,帮助爬虫快速定位内容,一般置于文件末尾。Crawl-delay 字段设定抓取间隔(单位:秒)。需注意,Google 爬虫不识别该字段,官方建议在 Search Console 后台配置抓取频率,而非依赖此参数。

3. 典型错误盘点:路径、通配符与大小写

路径理解是故障高发区。Disallow 后的值对应根目录下的路径片段,而非完整 URL。比如 Disallow: /private/ 屏蔽的是域名下的私密目录,与其它子域名无关。判断时可用浏览器模拟测试,确认屏蔽范围是否达到预期。

通配符的使用也需谨慎。主流搜索引擎支持 $ 表示结尾、* 表示任意字符,例如 Disallow: /*.pdf$ 可屏蔽所有 PDF 文件。但并非所有爬虫都完整支持这些符号,兼容性测试不可省略。大小写同样影响匹配结果——/User 与 /user 被视为不同路径,配置时须与站点实际目录结构严格一致。

避坑提示:修改 robots.txt 后,务必通过搜索引擎的抓取测试工具验证效果,避免因路径写错导致首页或核心栏目被误屏蔽。

4. 实操建议:从零配置一份稳妥方案

初次配置建议遵循最小化原则,先只屏蔽确定无价值的目录,而非大面积封锁。一个基础且安全的 robots.txt 示例:允许所有抓取,同时声明站点地图。

  1. 先明确站点结构,列出需要屏蔽的目录(如后台、临时文件、脚本目录)与必须开放的核心路径。
  2. 使用 User-agent: * 开头,跟随对应 Disallow 行;确需放行特定子路径时,补充更具体的 Allow 行。
  3. 在文件末尾添加 Sitemap 行,填写完整地图 URL。修改保存后,进行线上测试并观察收录变化。

要警惕屏蔽过度的反效果。若 Disallow 规则覆盖了带有权重的外链页面或分享链接,可能导致整站抓取预算浪费,核心页面更新变慢。定期核查规则,及时移除已失效的屏蔽项。

5. 常见问题

5.1 为什么屏蔽了页面,它仍出现在搜索结果中?

robots.txt 只管是否抓取,不管是否收录。如果该页面已被其他来源抓取并建立索引,即便被屏蔽,搜索引擎仍可能保留快照并展示结果。彻底移除需使用 noindex 标记,或通过搜索引擎的删除工具提交请求。

5.2 更换域名后,旧 robots.txt 需要处理吗?

需要。旧域名若继续保留,应修改文件内容,通过 301 重定向将爬虫导向新地址,并在新域名根目录放置配套的配置。否则可能出现爬虫仍访问旧文件,导致新站收录延迟。

5.3 robots.txt 写错后如何快速恢复?

立即将文件内容重置为最简单的允许全部规则(如 User-agent: * 加 Disallow: 为空),保存后等待爬虫重新抓取。同时检查是否有缓存副本干扰,并通过抓取工具确认读取到的内容已更新。

6. 结语

配置 robots.txt 的首要原则是保持克制与清晰:只屏蔽必要的路径,确保核心内容畅通无阻。每次修改后都应在线上验证抓取效果,并留意收录数据的变化。与其追求复杂的通配符策略,不如用最小规则换取稳定表现,让爬虫把有限预算花在最有价值的页面上。

图1 图2

nginx