每当搜索引擎的爬虫准备抓取你的网站时,它都会先到根目录下查找 robots.txt 文件。这份文件如同网站的"门禁规则",清晰告知搜索引擎哪些页面可以访问、哪些需要避开。如果配置得当,重要网页会获得更高效的抓取和收录;一旦配置有误,轻则新页面长期未被收录,重则整个站点在搜索结果中消失,影响不容小觑。
robots.txt 本质上是一种公开的行业约定。正常情况下,蜘蛛每次访问站点前都会先读取该文件。倘若文件不存在或内容为空,蜘蛛便会假设所有链接均可抓取,除非页面本身设有登录验证,否则都可能被索引。因此,若想限制特定目录的抓取,必须通过规则主动声明。
需要注意的是,这份约定仅对遵守规范的搜索引擎有效。对于恶意采集脚本或伪装身份的程序,它并无实际约束力。涉及后台管理、用户隐私等敏感区域,仍需依靠登录认证、IP白名单这类服务端措施进行强制防护,不宜过度依赖 robots.txt。
核心语法由两条主要指令构成:User-agent 用于指定规则适用的爬虫名称,Disallow 用于声明禁止抓取的路径。辅助指令中,Allow 可在被禁目录内放行某个子路径,Sitemap 则直接告知蜘蛛网站地图地址,有助于加快新链接发现。
对于公开内容的站点,可以设置不拦截任何路径的规则。注意 Disallow 后面留空才是完全放开,若误写为 Disallow: /,则等同全网封锁,搜索收录会全面停滞。这种写法仅在网站维护或测试阶段使用。
当某些陌生爬虫频繁消耗服务器资源却不能带来有效流量时,可以单独设定规则予以屏蔽。爬虫名称须准确无误,谷歌为 Googlebot,百度为 Baiduspider。该协议只能根据名称匹配,无法基于 IP 识别,对于频繁更换标识的恶意程序依然难以完全阻断。
若期望搜索引擎仅收录特定频道,可组合使用"全局禁抓 + 局部放行"策略。在此方案中,Allow 的优先级要高于 Disallow,规则支持多次设置。建议将 Allow 规则统一置于 Disallow 规则之后,路径一律以正斜杠开头,并与服务器实际目录保持一致。
语法完全正确的规则文件,同样可能引发难以排查的收录问题。以下几类情况在运维过程中较为常见。
路径大小写不一致:爬虫对路径大小写十分敏感。若网站实际目录为 /Public/,而规则中写成了 /public/,Disallow 将不产生作用,本欲屏蔽的内容仍会被抓取。配置前,务必在线上环境逐一核对真实路径。
多个 User-agent 规则相互干扰:当文件包含多个针对不同爬虫的规则块时,每只蜘蛛只会寻找与自己名称匹配的块,其余内容不生效。若各块指令互相矛盾,不同搜索引擎的收录结果会有明显差异。建议将通用规则放置在最前,特定爬虫的规则独立放置在后,减少覆盖交叉。
配置完成后并非万事大吉。测试 robots.txt 是否生效,可以在浏览器中访问该文件地址,检查规则是否按预期呈现。多数搜索引擎还提供了抓取测试工具,管理员可以模拟抓取特定 URL,以确认规则是否产生预期效果。
另外,随着网站改版,旧目录结构可能发生变化,原先设好的屏蔽规则可能已不再适用。应定期检查 robots.txt 内容,删除不再需要的规则,确保其与实际目录结构始终保持一致。若发现重要页面收录量突然下降,优先排查是否因规则变更引起。
robots.txt 必须置于网站根目录下,例如 www.example.com/robots.txt。放置在其他位置或子目录不会被搜索引擎识别。
当同一爬虫的规则中同时存在 Allow 和 Disallow 时,Allow 优先级更高。即使某个路径被 Disallow 屏蔽,只要该路径匹配 Allow 的规则,仍会被放行。因此可用这一组合实现"大部禁止、局部开放"的效果。
不一定。删除文件并不意味着收录一定会变快,对于内容公开的站点,留空文件或配置 Sitemap 指令通常更有助于蜘蛛发现新链接。若之前已有误屏蔽规则,建议先修正规则再关注收录变化。
合理配置 robots.txt 是保障搜索引擎收录质量的基础工作。配置时注意路径拼写准确、规则块权限清晰,并定期验证文件是否仍然适用。对于敏感数据区域的保护,仍须依托服务端鉴权手段,不能指望 robots.txt 一劳永逸。建议每次修改后及时检测,确保规则真正发挥预期作用。