robots.txt 是网站根目录下一个基础但重要的纯文本文件,它决定搜索引擎爬虫能否访问站内特定路径。这份文件配置正确,能引导爬虫把有限的抓取预算花在最关键的页面上;配置失误,轻则后台目录被收录,重则整站从搜索结果中消失。下文直接梳理它的配置语法与常见坑点。
这个文件的访问地址是固定的,即 https://你的域名/robots.txt,必须存放在网站根目录,且文件名区分大小写。它只负责管理爬虫的"抓取"行为,并不控制页面能否被"收录"。想让某页面从搜索结果彻底消失,正确做法是给该页面加上 noindex 标签,而不是依赖 robots.txt 屏蔽,因为爬虫可能从外部链接或其他途径间接发现并收录它。
同时要注意,robots.txt 对爬虫是"君子协定",只约束遵守规则的正规搜索引擎爬虫。恶意采集程序、特定攻击脚本不会读取或遵守此文件。因此包含用户隐私或商业数据的目录,必须增加登录鉴权、IP 白名单或访问密钥等硬性防护。此外,建议每次部署后手动访问一次该文件,确认没有因失误而把敏感目录路径暴露在文件中。
整个文件由多个规则组构成,每一组以 User-agent 字段开始,后续跟若干条指令。所有字段均采用"字段名: 值"的格式,冒号后建议空一格。字段名不区分大小写,但统一小写更利于维护和兼容。
该字段声明规则对哪个爬虫生效。例如 User-agent: Googlebot 只作用于谷歌爬虫,User-agent: Baiduspider 只作用于百度爬虫,而 User-agent: * 代表所有尚未被更具体规则覆盖的爬虫。文件里允许多个规则组分别限制不同爬虫。当某个爬虫同时匹配多个规则组时,主流搜索引擎按"最长匹配优先"的原则,采用路径最具体的那个组的规则。
Disallow 声明禁止抓取的路径,Allow 声明允许抓取的路径。两条规则发生冲突时,以匹配路径更长的规则为准。举例说明,如果同时设置 Disallow: /api/ 和 Allow: /api/public/,那么 /api/public/ 下的内容会被放行抓取。若写 Disallow: 且冒号后留空,则表示允许爬虫抓取整站。书写路径时建议以 / 开头,写清目录层级,避免歧义或误伤。
Sitemap 指令用来声明网站地图的完整 URL,方便爬虫在解析该文件时一并发现内容清单,通常置于文件末尾,且不影响任何规则组。Crawl-delay 用于设定抓取间隔时间,但 Google 官方已宣布忽略此指令,如需控制抓取频率请到 Google Search Console 后台调整;Bing、Yandex 等搜索引擎仍部分支持,可根据主要流量来源决定是否保留。
以下列举几种常见需求的配置样例,可直接复制后按实际路径修改。
配置完成后,可借助搜索平台的 robots 测试工具验证每条规则是否正确命中目标路径,避免上线后才发现问题。
实际运维中,很多问题源于一些隐蔽的书写或逻辑失误。以下几点需要重点核查:
它本身不会直接导致降权,但如果误屏蔽了整站或重要内容路径,爬虫无法抓取页面,该页面就会逐渐从索引中消失,间接影响整体权重的积累。发现配置错误后及时修正并提交抓取,收录通常可以恢复。
主流搜索引擎会合并处理这些规则组,并在规则冲突时依据最长路径匹配优先的原则进行判断。也就是路径写得更具体的那条规则,在冲突时拥有更高优先级。
可以。以 # 号开头的行会被当作注释内容,爬虫会直接忽略。建议在每一个规则组上方用注释说明该组的作用对象和意图,方便后续维护时快速理解。
robots.txt 虽然只有几行文本,却直接影响搜索引擎对网站的抓取效率与索引完整性。配置时务必明确区分"抓取控制"与"索引控制"的边界,敏感内容配合鉴权手段而非仅靠该文件防护。上线前后对照上述避坑清单逐一检查,再配合搜索引擎后台的测试工具验证,即可避免绝大多数由该文件引发的收录问题。