robots.txt 是放在网站根目录的一个纯文本文件,虽不起眼,却能协调搜索引擎爬虫的抓取路径。它告诉爬虫哪些内容可以访问、哪些应绕开。设置得当,可以提升抓取效率,帮助新内容更快被发现;设置不当,则可能让页面无法被收录,甚至牵连整站权重。以下内容将说明其语法结构,并梳理容易踩中的坑。
robots.txt 一般放置在站点根目录,通过域名加上 /robots.txt 即可查看,例如 https://example.com/robots.txt。它的角色更像向导,为爬虫指明可访问的范围。但它无法决定页面是否出现在搜索结果中。如果真想阻止某个页面被索引,应该在页面代码中加入 noindex 标签。robots.txt 管理的是抓取动作,而 noindex 控制的是索引结果,将两者混为一谈是常见误区。
同时要清楚,这份文件只对遵守规则的搜索引擎爬虫有效。对恶意采集脚本或不规范的网络程序,它没有任何约束力。涉及用户隐私、支付功能或核心数据的目录,必须依赖登录验证、IP 白名单等更严格的手段,不能指望靠 robots.txt 提供保护。
robots.txt 由若干规则组构成,每组以一条 User-agent 开头。书写格式为“字段: 值”,建议冒号后加一个空格,字段名统一使用小写,可减少不同解析器之间的兼容问题。
User-agent 用于标明该组规则适用的对象。例如 User-agent: Googlebot 表示该规则只对谷歌爬虫生效;User-agent: * 则表示适用于所有搜索引擎爬虫。一个文件中可以有多组规则,分别针对不同爬虫设定抓取策略,灵活性较强。
Disallow 用于声明禁止抓取的路径,Allow 则声明允许抓取的路径。需要留意的是,若 Disallow 后不填任何路径,代表解除所有限制,允许爬虫访问全站。当某条链接同时命中 Allow 和 Disallow 规则时,搜索引擎遵循“最长匹配优先”的逻辑,路径更长的那条规则生效。例如同时存在 Disallow: /api/ 和 Allow: /api/public/,后者的路径更长,因此 /api/public/ 下的内容可以被抓取。
Sitemap 指令用于告诉爬虫站点地图的具体地址,从而加快新链接的发现速度,减少爬虫自行探测的时间。
Crawl-delay 字段用来设定两次抓取请求之间的等待时间,单位为秒,适合服务器性能有限的站点。但并非所有搜索引擎都会读取这一字段,部分爬虫会直接忽略,因此不能完全依赖此参数来调节压力。
根据不同的网站类型和实际需求,可参考以下几种配置方式:
配置 robots.txt 的常见问题多集中在细节上,掌握以下几点可避免踩坑:
不能。它的作用是阻止爬虫抓取,但不等于阻止索引。若页面已被其他来源引用,仍可能出现在搜索结果中。彻底屏蔽索引需配合 noindex 标签使用。
可以借助搜索引擎站长工具中的 robots.txt 测试功能,查看各条规则对指定链接的实际匹配结果,同时留意是否出现语法报错提示。
使用 Disallow: / 即可禁止所有爬虫访问整站。这种写法适用于开发测试环境,不建议直接用于正式线上站点。
robots.txt 是网站与搜索引擎沟通的基础手段,重视语法细节和优先级规则,能有效避免抓取异常。建议在每次修改后主动检查文件内容,并结合抓取日志观察实际效果,在必要时再将抓取策略与 noindex 等索引层手段配合使用,才能真正做好站点治理。