robots.txt 完整配置教程:语法要点与常见陷阱解析

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

robots.txt 是网站根目录下的一份纯文本文件,用简单的指令告知搜索爬虫哪些页面可以抓取、哪些页面应当回避。配置得当,它能让你的抓取预算集中于高价值内容,推动新页面加速被收录;反之,书写出错的规则或者含糊的路径,可能造成整站权重下滑甚至被踢出索引。要写出可靠稳定的配置,你需要深入理解其语法规则,并清楚那些容易被忽略的细节。

1. 认识限制:它管得住抓取,管不住收录

这份文件相当于站内给爬虫的路标,真正是否将页面纳入搜索库,由搜索引擎的算法说了算。如果某个页面被 robots.txt 屏蔽但外部链接极多,搜索引擎照样可能将其索引,只是展示的快照可能并不完整。想让页面彻底从搜索结果消失,正确的工具是 noindex 标签,而不是这份文件。

另一层关键认知是,这是一份依赖意愿的协议。主流搜索平台的蜘蛛大体守规矩,但各类采集工具、恶意脚本并不会自觉配合。涉及后台、订单、用户隐私等敏感域名,必须叠加登录校验、访问白名单或防火墙等多层屏障,不可将安全防线完全托付于此。

2. 语法全解:从字段到匹配逻辑

文件由若干个规则组构成,每组均须以 User-agent 字段起始。所有指令统一采用英文半角冒号加空格的形式,例如 “Disallow: /private/”。严格遵循格式规范,可显著减少未来解析上的隐患。

2.1 User-agent 指定规则作用对象

此行声明该组规则适用的爬虫范围。写 User-agent: Googlebot 仅约束谷歌搜索蜘蛛;写 User-agent: * 则覆盖所有遵守该协议的爬虫。可为不同引擎设置差异化的规则组,例如允许百度深抓,同时约束其他蜘蛛的访问频率。

2.2 Allow 与 Disallow 的配合运用

Disallow 定义禁止抓取的路径,Allow 则定义可访问的路径。注意一个常见盲点:Disallow 后不带任何值表示清空约束,即全站开放。特别重要的是匹配优先规则——当一条链接同时满足多条指令时,搜索引擎采纳路径较长者。如果你规定 Disallow: /wp-admin/ 同时又写 Allow: /wp-admin/css/,后者路径更具体,因此该子目录仍可被爬取。

2.3 Sitemap 与 Crawl-delay 的细节

Sitemap 指令给出站点地图的绝对地址,辅助爬虫快速掌握站点结构,一般放于文件尾部。Crawl-delay 用来设定抓取间隔,单位为秒。需要指出的是,谷歌蜘蛛并不采用此指令,它只认 Search Console 后台的频率调节选项。

3. 常见陷阱:路径、通配符与字符规范

路径认知是首要盲区。很多新手容易将域名地址写在 Disallow 后,其实这里只填路径部分,不支持完整网址。例如禁止根目录下 all 目录,只需写 Disallow: /all/,而非 https://域名/all/。

通配符的误用也相当普遍。robots.txt 支持 * 与 $ 两个特殊符号,前者匹配任意字符,后者只匹配路径结尾。还要特别注意大小写敏感问题,/Public 与 /public 被视为两个不同目录。注释行以 # 开头,可用来说明规则目的,方便后续维护。

规避这些细节比背熟语法更重要,建议上线前使用站长工具的 robots 检测功能模拟验证每一条规则的实际效果。

4. 生效与调试:为什么规则没有即时起效

爬虫并非实时重新读取 robots.txt,而是按自身频率定期获取该文件。刚修改的内容通常需要等待数小时乃至几天才能全面生效。排查问题时,首先确认文件是否位于根目录,文件名是否全小写,编码是否为 UTF-8 无 BOM 格式。

其次检查是否存在多个规则组的重叠。一个链接若同时被两处规则约束,以最长匹配的那条为准,而非后者覆盖前者。若在浏览器直接访问 域名/robots.txt 能看到正确输出的文本,则说明文件传输协议层面没有问题,此时应耐心等待引擎重新抓取。

5. 常见问题

5.1 修改 robots.txt 后,已收录的页面会立刻下线吗?

不会。该文件产生效果具有延迟,而且对于已抓取的存量页面不具直接移除作用。需要快速清理某类页面时,请使用 noindex 标签,或通过搜索引擎站长平台的删除链接工具提交申请。

5.2 份文件里写多个 User-agent 组是否冲突?

这是设计良好的用法而非冲突。每个规则组独立解析,针对不同爬虫生效。只需留意保持规则的清晰性,避免同一爬虫出现多组互相矛盾的指令,否则可能造成解析异常或策略不明。

5.3 全站 Disallow 会带来哪些后果?

这会让全部爬虫止步于首页之外,新内容完全无法被索引,外链带来的曝光也会随之消失。除非站点正在维护或希望隐藏整站,否则不建议采用。若仅需临时关闭抓取,最好同时关注恢复开放后的收录周期。

6. 总结

合理规划 robots.txt 的核心在于理解匹配优先级、路径格式和字段语义。建议先梳理站内重要目录的开放需求,再撰写规则,并借助在线检测工具逐一验证。上线后定期核对抓取日志,观察页面收录情况与实际策略是否一致,遇到异常随时微调,让规则始终贴合网站当前的发展阶段。

图1 图2

nginx