网站站长在打理站点时,总是绕不开 robots.txt 这个文件。它躺在网站根目录下,是一份纯粹的文本协议,作用相当于递给搜索引擎爬虫的一张“参观指南”,清楚地标出哪些区域可以自由走动,哪些房间谢绝入内。设定得当,爬虫的预算会被高效使用,核心页面能更快被收录;可一旦写错,网站从搜索结果里彻底消失的例子并不少见。接下来,我们就把这份文件的语法细则和常见误区一次性讲清楚。
这个文件的访问入口是固定的,即你的域名后面直接加上 /robots.txt,比如 https://example.com/robots.txt。它在整个抓取体系中扮演的是“交通指挥”,而不是“法官”。如果某个页面你不想出现在搜索结果里,正确做法是使用 noindex 标签;robots.txt 只能阻止爬虫去抓取,却无法阻止已被抓取的页面被索引,这两者的区别一定要牢记在心。
另一个必须正视的事实是:robots.txt 的合作基础是爬虫自觉遵守。主流搜索引擎的爬虫会按规矩办事,但对于那些盗取数据的内容采集工具或者恶意程序,这份文件毫无约束力。凡是涉及用户密码、支付通道、后台管理的目录,请务必搭配登录验证、IP 防火墙等硬性保护,切勿把安全底线寄托在一份 txt 文件上。
robots.txt 的内容由多个规则块组成,每个规则块的起手式都必须是 User-agent 字段。书写时遵循“字段名: 值”的格式,建议全部使用小写字母,并且在冒号后面保留一个空格,这样能最大程度兼容不同解析器。
这个字段决定了当前规则块对谁生效。例如写上 User-agent: Googlebot,就表示只约束谷歌的爬虫;如果想对所有搜索引擎的爬虫一视同仁,就使用通配符 User-agent: *。你完全可以在一个文件里写多个规则块,为不同的爬虫定制差异化的访问策略。
Disallow 用来声明禁止访问的路径,Allow 则正好相反,表示网开一面。这里有一个容易看漏的细节:当 Disallow 后面什么都不写(即 Disallow:),含义是解除全部限制,允许爬虫抓取整站。当 Allow 和 Disallow 同时命中同一个网址时,搜索引擎执行的是“最长匹配优先”原则——也就是路径写得越具体,优先级就越高。举例来说,网站同时存在 Disallow: /api/ 和 Allow: /api/public/ 两条规则,那么后者会被放行抓取。
Sitemap 指令是用来声明站点地图完整地址的,能帮爬虫更快发现网站的所有内容清单,一般放在文件末行。而 Crawl-delay 虽然字面意思是设定抓取间隔,但请特别注意:谷歌官方早已明确表示会彻底忽略这个指令。如果你确实想要降低抓取频率,应该去 Google Search Console 的后台进行设置,而不是在这份文件里做无用功。
下面整理了几个最常见的配置需求,你可以根据自己网站的目录结构直接套用替换。
许多站长在配置过程中会无意间犯下一些看起来不起眼、后果却很严重的错误。下面几个是出现频率最高的雷区。
robots.txt 的路径匹配是区分大小写的。假如你的实际目录是 /Product/,却在文件里写了 Disallow: /product/,规则将完全失效,失手让爬虫抓走了本应隐藏的内容。此外,Disallow: /private 和 Disallow: /private/ 的含义并不相同,前者会屏蔽所有以 /private 开头的路径,后者只屏蔽该目录本身及其子目录,书写时务必确认清楚。
常见的灾难现场是把 Disallow: / 当成了正常配置,这会让爬虫完全无法进入站点,导致页面全部掉出索引。另一种情况是在修改规则时删除了原有内容,却忘记了保留 User-agent 字段,导致整个规则块无法被识别。每次改动后,建议去搜索引擎的站长工具里使用“robots.txt 测试”功能验证一遍,避免上线后才发现问题。
robots.txt 必须存放在网站的根目录,放在子目录里是无效的。同时文件编码需要是 UTF-8,如果里面含有中文字符或使用了错误的编码格式,解析时可能产生乱码,导致规则失效。另外,这个文件也不支持用相对路径来标记 Sitemap,必须填写完整的带有 https:// 的地址。
搜索引擎抓取 robots.txt 文件是有缓存机制的,通常几分钟到几小时内会更新一次,但有些搜索引擎可能会延迟 24 小时以上。为了加快更新速度,你可以在站长工具中手动提交该文件,触发重新抓取。
可以。搜索引擎会采用最长匹配优先原则,也就是两者中路径字符串更长的那一条规则拥有最终解释权。当路径长度相同时,Allow 通常拥有更高的优先级。
不会直接影响权重。但它的间接作用不可小觑——如果屏蔽了关键资源或页面,爬虫无法获取页面内容,会导致页面无法被收录,进而失去获得排名的机会。被屏蔽的页面并不会处罚整站,但会白白浪费抓取配额。
配置 robots.txt 是一项细致活,务必遵循以下几点:规则块写完后,第一时间用浏览器访问 /robots.txt 确认文件内容正常返回;每次修改后,在站长工具里跑一遍语法测试;切勿把安全防护的希望完全寄托在此文件上,敏感目录必须配合身份验证;最后,牢记 robots.txt 只管抓取,不管索引,真正的收录控制请交给 noindex 标签。按这些原则执行,你就能避免绝大多数由配置失误引发的收录灾难。