站点的根目录中往往存放着一个名为 robots.txt 的纯文本文件,它的职责是向搜索引擎的爬虫说明哪些路径可以访问、哪些需要回避。这个文件直接影响爬虫对站点的抓取分配,进而左右页面的收录效率。规则书写得当,重要内容能获得更充分的抓取;一旦出现疏漏,整站表现都可能受影响。掌握它的语法细节和常见误区,是网站运营者应当具备的能力。
robots.txt 扮演的是“指路牌”的角色,通过访问“域名/robots.txt”就能看到其全部内容。它的核心职能是规划爬虫的访问路径,但不能直接决定某个页面是否出现在搜索结果中。如果目标是彻底移除某页面的索引,正确做法是使用 noindex 标签。即便你在 robots.txt 中屏蔽了某个页面,只要外部链接持续指向它,搜索引擎依然可能将其收录,只是展示的快照内容可能源自其他渠道。
同时要明白,该协议本质上依赖爬虫的自觉配合。主流搜索引擎的蜘蛛大多会遵守约定,但不少恶意采集程序和第三方工具不会理会这些规则。涉及后台入口、用户隐私、支付记录等敏感区域,必须额外启用登录验证、IP 白名单或防火墙拦截,绝不能把安全期望全压在 robots.txt 上。
文件由若干规则组构成,每一组须以 User-agent 字段开头。字段写法固定为“名称: 值”的格式,使用英文半角冒号,冒号后跟上空格是推荐写法。虽然多数爬虫对格式的宽容度较高,但保持规范书写可以避免后续解析时出现意外偏差。
该字段指明当前规则组适用于哪类爬虫对象。若要单独约束谷歌蜘蛛,可写 User-agent: Googlebot;若想统一约束所有搜索引擎的爬虫,则使用通配符 User-agent: *。允许建立多组规则,针对不同爬虫实施差异化策略,例如对谷歌放宽抓取限制,同时对必应施加更严格的约束。
Disallow 用于声明禁止访问的路径,Allow 则用于声明允许访问的路径,两者经常配合使用。一个容易被忽略的细节是:若 Disallow 后面没有任何内容(即 Disallow: 且无值),意味着解除全部限制,允许爬虫自由抓取全站。当某 URL 同时命中多条规则时,搜索引擎遵循“最长匹配优先”原则——路径越长越具体,其优先级越高。例如同时配置 Disallow: /api/ 与 Allow: /api/public/,由于后者路径更为具体,public 子目录最终会被正常放行。
Sitemap 字段用于声明站点地图的完整地址,帮助爬虫快速掌握网站结构,通常放在文件结尾处。Crawl-delay 字段用于设定爬虫抓取的时间间隔(以秒为单位)。需要特别提醒,谷歌爬虫并不支持该指令,官方推荐通过 Search Console 后台调整抓取速率。
许多人在路径理解上栽过跟头。Disallow 后面的值对应的是根目录下的相对路径,而非完整的 URL 地址。比如要屏蔽 /private/ 目录,只需写 Disallow: /private/,完全不需要带上域名部分。
通配符的兼容性也是易错点。标准语法中允许使用 * 匹配任意字符序列,用 $ 匹配路径结尾,但不同搜索引擎对通配符的支持程度并不一致。依赖复杂的通配符重写规则可能带来难以预料的后果,建议尽量保持配置简洁,不要过度依赖高级匹配技巧。
在配置规则之前,先梳理站点目录结构,明确哪些路径需要保护、哪些需要被优先抓取。以下是一些实用建议:
完成配置后,务必主动检查。通过浏览器直接访问“域名/robots.txt”查看文件是否正确渲染,也可以借助各搜索引擎站长后台提供的机器人抓取测试工具,模拟蜘蛛访问特定 URL,验证规则是否生效。
可以。使用 # 符号开头即可添加注释内容,搜索引擎爬虫会忽略该行之后的文本。合理使用注释能提升文件的可读性,方便日后维护。
没有固定的时间表。爬虫通常按各自的抓取周期重新获取该文件,短则几分钟,长则数天。若想加速更新,可在搜索引擎站长平台中手动提交该文件。
在实践层面,主流搜索引擎对 robots.txt 的文件大小设有上限(例如约 500 KiB),且规则组的数量也不宜过多。超出限制的内容会被部分或全部忽略,因此保持文件精简非常重要。
配置 robots.txt 的关键在于理解它的边界:它负责引导抓取,而非决定收录;它依赖爬虫自觉,无法替代安全防护。从清晰的路径规划出发,合理运用 Allow 与 Disallow 的组合,避免过度依赖通配符,并定期检查文件状态,即可有效保障核心页面的抓取效率。每次调整后都建议用测试工具验证一遍,确保配置符合预期。