运营网站的人几乎都会接触 robots.txt 这个文件。它就放在站点根目录下,用简短指令指引搜索引擎爬虫,哪些路径可以访问,哪些需要避开。配置得当,能帮爬虫把精力集中在关键页面上,新内容也能更快被收录;可一旦路径写错或语法有误,重则整站权重下滑,轻则部分页面长期不被抓取。接下来就把这份文件的核心语法和容易出错的细节一次说清。
robots.txt 面向的是各类爬虫程序,直接在浏览器地址栏输入“域名/robots.txt”就能看到它的内容。它承担的角色是引导者,提示爬虫哪些路径可以访问,但某个 URL 最终是否能进入搜索索引,决定权并不在这份文件手上。若想彻底让某个页面从搜索结果中消失,正确手段是添加 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 指令用于声明站点地图的完整 URL 地址,能帮爬虫更快定位全站内容,习惯放在文件尾部。Crawl-delay 指令设置爬虫两次访问之间的间隔秒数。这里特别提醒,谷歌的爬虫不承认这个指令,官方推荐的做法是在 Search Console 后台调整抓取频率,而非依赖该字段。
第一个常见问题在于路径理解。Disallow 后面的值对应站内根目录下的相对路径,而非完整网址。比如想屏蔽 example.com/admin 这一目录,正确写法是 Disallow: /admin,而不是写成完整的 URL,后者会被爬虫当作不匹配的路径而忽略,导致屏蔽失效。
第二个坑与通配符有关。虽然标准协议中未明确支持通配符,但主流搜索引擎普遍接受 * 和 $ 这两个符号,* 代表任意字符序列,$ 代表匹配 URL 结尾。例如 Disallow: /*?utm_ 可拦截带指定参数的链接,Allow: /public/ 则放行对应目录。使用这些符号前,最好确认目标搜索引擎的文档是否支持,不要盲目套用。
第三个问题集中在大小写敏感性上。路径匹配对大小写是敏感的,例如 Disallow: /Photo 不会屏蔽 /photo 目录。为了避免漏挡,写路径时尽量保持与站点实际目录大小写一致,或者在规则中同时写出不同的写法。
动手配置时,别一上来就写一大堆规则。先梳理站点结构,明确哪些目录必须对爬虫开放(如文章页、产品页),哪些区域需要隐藏(如后台、购物车、重复参数页),再写下对应的规则。官方文档中提供了几个可参考的写法示例,但最稳妥的方式是结合自己站点的实际 URL 结构来定制。
配置完成后,需要验证规则是否真正生效。主流搜索引擎都提供了测试工具,例如谷歌的 robots.txt 测试器,可以输入具体的 URL 来查看哪条规则约束了它,以及最终的抓取状态。验证时建议重点确认三点:关键页面未被误拦、敏感路径已成功屏蔽、Sitemap 文件能正常被访问。每次修改文件后,记得重新运行测试,避免旧的缓存结果影响判断。
如果规则中误屏蔽了整站路径(如 Disallow: /),爬虫将无法抓取任何页面,站点收录量会迅速下降,影响非常明显。一旦发现此类问题,立即纠正文件内容并提交给搜索引擎重新抓取,通常在数天内流量会逐步恢复。建议修改后用测试工具预览效果再上线,降低误操作的概率。
协议本身是纯文本格式,但 URL 中的中文路径在传输中会被转码为百分号编码形式,直接在规则中写中文很可能导致匹配不上。更稳妥的做法是对中文目录进行 URL 编码后再写入规则,或者尽量在站点建设阶段使用英文或拼音命名目录,从根源上减少这类麻烦。
不存在固定的优先字段,关键看匹配的精确程度。当多条规则同时命中时,搜索引擎采用最长匹配原则,也就是路径更具体的规则生效。例如 Disallow: /shop 与 Allow: /shop/hot,后者更精确,所以 /shop/hot 会被放行。理解并善用这一逻辑,可以写出更灵活的控制组合。
robots.txt 不是一个写完就能一劳永逸的配置。每次调整网站结构或上线新功能前,都应审视现有规则是否仍然适用,同时借助测试工具做好验证,再根据实际抓取报告微调策略。始终记住两点:靠这份协议保护安全并不可靠,敏感内容要叠加认证手段;它的核心价值在于引导高效抓取,而不是控制收录结果。理清这两条,你的配置文件就能真正为站点收录效率服务。