对于任何网站运营者来说,robots.txt 都是一份绕不开的基础配置文件。它存放在网站根目录,通过几行简洁的指令,向搜索引擎的爬虫说明站点范围内哪些路径允许访问、哪些区域禁止进入。配置得当,爬虫会集中精力抓取核心页面,新内容的收录效率随之提升;配置失误,则可能导致整站权重下滑,甚至从搜索结果中消失。本文将系统梳理这份文件的语法基础与配置陷阱,帮助你避开常见的坑。
robots.txt 的服务对象是爬虫,在浏览器地址栏输入“域名/robots.txt”即可直接查看其内容。它扮演的是向导角色,为爬虫指明可通行的路径,但页面能否被搜索引擎索引,并不由它掌控。若要彻底阻止一个页面出现在搜索结果中,应当使用 noindex 元标签。这套协议仅影响爬虫是否发起抓取,对已抓取内容是否被收录并无决定力。一个典型的例子是,某个页面虽然被 robots.txt 屏蔽,但若其外部链接众多,搜索引擎仍可能将其收录,只是抓取到的快照内容可能来自其他来源。
此外,需要认识到这份协议依赖爬虫的自愿遵守。主流搜索引擎的蜘蛛通常都会遵循规则,但大量恶意采集脚本和第三方抓取工具对此视而不见。因此,涉及用户隐私、交易记录、后台管理等敏感目录,必须附加登录验证、IP 白名单或防火墙等安全手段,切勿将站点安全完全寄托于这份“君子协定”。
robots.txt 由若干规则组构成,每组必须以 User-agent 字段开头。所有字段统一采用“名称: 值”的格式,冒号须为英文半角,规范写法建议在冒号后保留一个空格。多数爬虫具备较好的格式容错能力,但严谨的书写能避免日后遇到难以预料的解析问题。
该字段声明当前规则组约束哪种爬虫。若只想限定 Google 的搜索蜘蛛,应写为 User-agent: Googlebot;若所有搜索引擎的爬虫都需统一执行,则使用通配符 User-agent: *。你可以创建多组规则,对不同的爬虫实施差异化策略,例如对谷歌开放更多权限,而对必应收紧限制。
Disallow 用于禁止访问的路径声明,Allow 则允许访问指定路径,两者常搭配使用。一个重要细节是,当 Disallow 后留空(即 Disallow: 且无值),表示清除全部限制,爬虫可抓取全站任意内容。当一个 URL 同时命中多条规则时,搜索引擎遵循“最长匹配优先”的原则——路径越精确,优先级越高。举例来说,同时设置 Disallow: /api/ 与 Allow: /api/public/ 时,后者更具体,因此 public 子目录下的资源会被放行。
Sitemap 指令用于声明站点地图的完整 URL,帮助爬虫快速定位全部内容,通常置于文件末尾。Crawl-delay 用于设定爬虫抓取间隔的秒数。这里需特别指出,Google 的爬虫不认可该指令,它更推荐用户在 Search Console 后台调整抓取频率,而非依赖此字段。
首个常见误区在于路径理解。Disallow 后的值对应的是根目录下的路径,而不是带域名的完整 URL。例如 Disallow: /admin/ 即表示禁止爬虫访问 www.example.com/admin/ 下的一切内容。若误把完整地址写进去,规则可能无法生效。
第二个坑是通配符的使用。标准中官方支持的符号为星号 * 和美元符 $。星号匹配零个或多个字符,美元符匹配路径的结尾。例如 Disallow: /*.pdf$ 可屏蔽所有 .pdf 后缀文件。但不同的搜索引擎对通配符的支持程度存在差异,兼容性方面 Google 支持较好,而 Yandex 等搜索引擎的支持则更完整。对于大多数常规场景,建议优先使用明确的路径前缀,仅在确有必要时借助通配符,并做好不同爬虫的兼容性考量。
第三个问题是大小写敏感。robots.txt 的匹配是区分大小写的,路径 /Product/ 与 /product/ 被视为不同地址。因此编写规则前,应核对站点实际目录的大小写规范,避免因字母大小写不匹配导致规则失效。另外,建议每一条规则单独占一行,并进行严格的语法校验,可借助 Google Search Console 或第三方校验工具检查文件格式,发现问题及时修正,避免影响全站抓取。
网站结构不是一成不变的,随着栏目调整、程序升级,原有目录可能变更或废弃。定期检视 robots.txt 文件,确保其中的路径与实际站点结构相符,是日常维护的重要一环。建议每隔两到三个月检查一次,若网站上线过新栏目,应及时补充对应规则。
同时要注意规则的顺序与分组逻辑。通常将最重要的站点级规则放在文件前部,并保持每组规则的完整性。修改 robots.txt 后,利用在线工具或爬虫模拟器测试结果,确认规则对核心路径的抓取未产生意外负面影响。若站点规模较大,可分站配置并分配专人维护,避免多人随意改动造成混乱。
还有一个易被忽视的细节:文件的编码格式应为 UTF-8 无 BOM,保存与上传时注意避免特殊字符混入。对于临时性调整,如活动页上线或临时封禁某路径,完成后应及时移除对应规则,防止其长期影响抓取预算的分配。
不能。robots.txt 只能控制爬虫是否抓取,无法禁止收录。只要该页面被其他途径引用,或搜索引擎已通过其他渠道获得内容,仍可能将其收录。希望页面彻底从搜索结果中消失,应使用 noindex 元标签,同时配合 robots.txt 阻止抓取,才能达到预期效果。
这可能是由多种原因造成的。比如规则中的路径与实际文件路径大小写不一致,或者通配符使用方式未被目标搜索引擎完全支持;也可能是网页存在明显的站外链接,爬虫通过其他路径发现了内容。建议逐一检查语法正确性,并在 Search Console 中查看测试结果,确认规则是否生效。
爬虫会选择与自身名称匹配的规则组执行。具体来说,若不包含针对该爬虫的专属分组,则会使用 User-agent: * 的通配组规则。如果存在多个通配组,通常以第一个出现的为准。因此,合理的组织方式是先放置针对特定爬虫的精准规则,再放置通用规则,确保预期覆盖。
robots.txt 的配置看似简单,却直接影响网站资源的抓取效率与收录表现。准确理解每个字段的意义与匹配逻辑,定期检查并维护文件内容,是每一个网站负责人应当养成的习惯。上手时,先从小范围规则开始测试,验证无误后再逐步扩展;对于敏感目录,始终叠加额外的访问控制手段。按这份指南逐条核对你的配置文件,相信你能让爬虫沿着预期路径高效工作。