Robots.txt是站方与搜索引擎爬虫之间的一纸通行约定,明确划定了抓取边界。它既不负责网站安全,也不强制爬虫执行命令,本质更像一份“建议书”。合理利用能帮搜索引擎把有限的抓取预算花在刀刃上,用错则可能让重要页面悄悄从搜索结果中消失。这篇文章把规则讲透,再带你绕开那些高频踩坑点。
文件必须放在网站根目录,内容为纯文本,由若干“组”构成。每一组以User-agent行开头,后续跟若干指令,直到下一个User-agent出现为止。基础指令不多,但含义有讲究:
路径匹配支持两个通配符:*代表任意长度字符串,$锚定行尾。例如Disallow: /*?sort=可拦截所有带sort参数的URL,Disallow: /print/$仅屏蔽/print/这一层目录。匹配遵循最长前缀优先原则,即具体规则会覆盖宽泛规则。
实际项目中,需求往往集中在几类情况。下面给出可直接套用的示例,注意每组配置之间留一个空行。
新站或内容全部公开的站点,可写:
User-agent: *
Disallow:
这里的Disallow留空,语义是“不限制任何路径”,与Disallow: /(禁止全站)完全不同,首次配置时最容易混淆。
后台、缓存、临时文件等无需被索引的目录,建议如下写法:
User-agent: *
Disallow: /admin/
Disallow: /cache/
Disallow: /tmp/
同时可单独为Sitemap留一行声明,避免爬虫找不着入口。
比如仅允许Bing抓取,其余一律拒绝:
User-agent: *
Disallow: /
User-agent: bingbot
Disallow:
注意爬虫名要写官方标识(如Googlebot、Baiduspider),不要使用网站名或自定义昵称。
电商站常被带跟踪参数的URL消耗抓取额度,可用通配符过滤:
User-agent: *
Disallow: /*?ref=
Disallow: /*&utm_
配置失误往往比不配置危害更大。以下几个坑位,是运维和SEO人员反复栽跟头的地方。
写完文件并不算结束,上线前和上线后都需要验证。
建议在本地建一个临时页面,用工具模拟不同爬虫的抓取行为,能直观发现匹配上的偏差。
不统一。*和$属于谷歌扩展语法,对Googlebot、Bingbot通常有效,但百度、Yandex等引擎支持程度不一。若不确定目标爬虫的兼容性,优先使用完整目录前缀写法,避免通配符。
没有固定时限。爬虫会周期性重新抓取该文件,从数小时到数天不等。想加快进度,可在站长工具中主动提交更新后的文件,或等待自然抓取周期。
Modern爬虫遵循“最短匹配优先,若长度相同则Allow优先”的原则。例如Disallow: /forum/和Allow: /forum/topic/同时存在时,后者长度更长,因此该子目录会被放行。但尽量让规则逻辑简单,避免相互嵌套造成混乱。
润色robots.txt本身是件细致活。动手前先梳理站内URL结构,标出必须屏蔽的目录和必须保留的资源;配置时逐行核对大小写和路径前缀;上线后依据日志反馈持续微调。记住一条底线:该文件永远不是安全机制。把它当成引导爬虫分工的工具,而非保护数据的锁,就能避免绝大多数功能性和安全性事故。每次大版本更新,顺手留下一条新注释记录改动日期,长期维护会省心很多。