网站根目录下的 robots.txt 文件,是搜索引擎爬虫访问站点时最先读取的规则文件。它通过简单的指令告诉爬虫哪些路径可以抓取、哪些需要避开。配置得当,能显著提升重要页面的抓取效率;一旦写错,轻则影响收录,重则导致整站从搜索结果中消失。接下来,我们从语法基础到实际避坑,一步步拆解这个关键文件。
robots.txt 必须放置在网站根目录,且文件名固定为小写,访问地址为 https://你的域名/robots.txt。它的核心作用是管理爬虫的抓取行为,但请务必记住一个关键区别:它控制的是“抓取”,而非“收录”。
如果希望某个页面彻底不出现在搜索结果中,应该在页面头部添加 noindex 标签,而不是试图通过 robots.txt 屏蔽。因为即使爬虫绕过了抓取限制,其他外部链接仍可能间接导致页面被收录。另外,robots.txt 对所有爬虫而言只是一种君子协定,正规搜索引擎会遵守,恶意脚本和采集工具则完全无视。因此,涉及后台管理、用户数据等敏感目录,必须设置登录验证或 IP 白名单,绝不能把安全希望寄托在这份纯文本文件上。
整个文件由多个“规则组”构成,每个规则组都以 User-agent 字段开始。每条指令的格式为“字段名: 值”。推荐统一使用小写字母书写字段名,这样可以避免部分爬虫因大小写敏感而产生误判。
该字段用来告诉搜索引擎,本组规则适用于哪类爬虫。例如 User-agent: Googlebot 表示仅对谷歌爬虫生效;User-agent: * 则代表适用于所有搜索引擎。需要注意的是,当同一爬虫匹配到多个规则组时,搜索引擎默认遵循“最长匹配优先”原则,即描述更具体的那一组规则会覆盖通用规则。
Disallow 用于声明禁止抓取的路径,而 Allow 则用于声明允许抓取的路径。如果写 Disallow: 且留空值,则代表没有任何限制,等同于允许爬虫访问全部内容。当两条规则的路径发生重叠时,遵循“更长的路径优先”原则。举个例子,同时存在 Disallow: /admin/ 和 Allow: /admin/public/,后者因为路径更长更具体,会被优先执行而放行。建议路径都以根目录斜杠开头,避免出现相对路径造成的解析混乱。
Sitemap 指令用于声明网站地图的完整 URL,通常放在文件末尾,能有效帮助爬虫快速发现新内容。至于 Crawl-delay 指令,用于设定抓取时间间隔,但谷歌已明确表示忽略此参数,如需控制抓取频率,应前往 Google Search Console 后台调整。对于 Bing 等仍支持该指令的搜索引擎,可以酌情保留该设置。
掌握原理后,来看几个高频场景的规范写法,实际操作时只需替换对应路径即可。
在书写上述规则时,建议每写完一组就换行空行,以区分不同的规则块。文件编码务必保存为 UTF-8 无 BOM 格式,否则可能出现中文注释乱码而影响解析。
很多网站在运营中因为 robots.txt 的细节疏忽而遭遇流量暴跌,下面三个坑需要重点防范。
最严重的错误是误将 Disallow: / 应用到线上环境。此规则会阻断所有爬虫的访问,包括首页在内。实际操作中,建议先在测试服务器上验证无误后,再同步到生产环境。可以通过浏览器直接访问 robots.txt 文件,检查返回内容是否符合预期。
这一点需要反复强调:robots.txt 无法提供可靠的安全防护。它只是告知爬虫“请勿访问”,但无法阻止不遵守规则的攻击者。对于带有用户个人信息、支付接口或管理后台的目录,必须依赖服务端层面的认证与授权机制,例如强制登录、双因子验证、IP 段限制等。切勿因配置了 Disallow 就以为万事大吉。
部分用户习惯在路径中使用 * 通配符或 $ 结束符来细化匹配,例如 Disallow: /*.pdf$。虽然谷歌等搜索引擎支持此类符号,但兼容性较差,部分小众爬虫可能无法正确解析,直接将其忽略。若非必要,尽量使用完整的目录路径或具体文件名来替代通配符,降低因爬虫解析差异带来的风险。
针对日常运维中问得最多的几个问题,这里给出明确解答。
搜索引擎会定期重新抓取该文件,通常在数小时到一天左右会自然生效。如果时间紧迫,可以在 Google Search Console 的“robots.txt 测试工具”中请求重新抓取,通常几分钟内即可完成更新。对于 Bing 站长工具,也有类似的重抓取功能可用。
两者属于不同层面的概念。Disallow 是“不允许爬虫抓取”,服务器仍然会正常返回 200 状态码;而 403 是服务器层面的访问拒绝。如果某个目录设置了 Disallow,爬虫不会发起请求,因此不会看到 403 状态码。反之,若目录返回 403,即使没有设置过 robots.txt 规则,爬虫也无法抓取该目录内容。
可以。robots.txt 中允许存在多行 Sitemap 指令,每个指令指向一个独立的 sitemap 文件。特别适合大型网站按频道或模块分别维护地图的情况。只需确保每个 URL 都是完整且可直接访问的地址即可。
robots.txt 配置文件虽然内容简洁,但影响范围极广。掌握 User-agent、Allow 和 Disallow 的组合用法,明确抓取与收录的边界,是管理好网站的基础。建议你在修改后,使用线上抓取工具检查返回头信息,并观察搜索控制台的抓取统计异常。从当下开始,定期审视这份文件,确保它始终为搜索引擎提供准确且安全的指引。另外,若站点启用了 CDN 或负载均衡,务必将 robots.txt 同步到所有源站节点,避免因边缘节点文件缺失而出现不同地区抓取结果不一致的问题。