robots.txt 是网站根目录下的一个文本文件,通过简单的规则告知搜索引擎爬虫哪些目录可以访问、哪些应当跳过。设置得当,能让蜘蛛将有限的抓取预算集中于高价值页面,促进新内容更快被收录;设置失误,则可能造成重要页面迟迟不被索引,影响整站的自然流量。理解其语法细节并避开常见陷阱,是网站运营者必备的基本功。
robots.txt 文件通常通过 https://example.com/robots.txt 访问,其核心作用是引导爬虫在站内探索时遵循既定路线。不过,许多初学者容易混淆"抓取"与"收录"这两个概念:该文件仅能限制爬虫是否发出抓取请求,却无法直接决定页面最终是否进入搜索引擎的索引库。若要确保某个页面彻底从搜索结果中消失,应该在页面的 head 区域添加 noindex 标签,那才是控制索引状态的关键工具。
此外,robots.txt 建立在爬虫自愿遵循协议的前提之上,对于恶意的数据采集程序或非法抓取工具毫无约束力。凡涉及用户隐私、支付流程或核心业务数据的接口,务必依靠登录身份验证、服务器 IP 白名单等安全手段进行防护,切勿把 robots.txt 视作唯一的保护屏障。
robots.txt 由多个规则组构成,每组以 User-agent 行开始,界定该组规则所针对的爬虫类型。每条记录遵循"字段: 值"的格式,冒号后保留一个空格,字段名统一采用小写字母,这是兼容性最佳的写法。
User-agent 决定整组规则的生效对象。例如,User-agent: Googlebot 仅对谷歌爬虫生效,而 User-agent: * 则对所有搜索引擎的爬虫生效。同一文件中可以并存多个规则组,针对不同蜘蛛定制策略,比如对 Googlebot 开放更多路径资源,同时为 Bingbot 设置额外限制,以此灵活管理抓取调度。
Disallow 用于禁止爬取指定路径,Allow 则用于放行特定路径。当两者同时匹配同一 URL 时,搜索引擎遵循"最长匹配优先"的通用准则,即路径更长、描述更精确的规则会胜出。举例来说,如果同时配置了 Disallow: /api/ 与 Allow: /api/public/,由于后者路径更长,因此该子目录下的内容依旧可以被正常抓取。另外需留意,若 Disallow 后留空未填写路径,则代表取消所有限制,允许爬虫抓取整站内容。
Sitemap 指令用于向爬虫声明站点地图文件的准确地址,有助于蜘蛛尽快发现新发布的页面,缩短新链接被发现的时间。Crawl-delay 用于定义两次请求之间的最小间隔秒数,适用于服务器性能有限的小型站点。但必须注意,并非所有搜索引擎都支持该字段,部分爬虫会直接忽略此设定,因此不能完全依赖它来控制抓取频率。
根据不同业务类型,以下几种配置方案可以直接参考使用:
在实际维护过程中,以下问题发生频率较高,应当特别留意:
是的,搜索引擎只会主动请求站点根目录下的 robots.txt 文件,例如 https://example.com/robots.txt。若要为不同子域名分别配置规则,那么每个子域名都需要在各自根目录放置独立的文件。
最可靠的方法是使用搜索引擎站长平台提供的 robots 测试工具,输入待检测的 URL,工具会模拟爬虫解析规则并给出被允许或禁止的结论。也可以直接查看服务器访问日志,确认爬虫是否对相关路径发起了请求来判断实际效果。
不能。robots.txt 仅约束遵守协议的搜索引擎爬虫,对其他网站的引用行为没有控制力。若希望保护图片版权或防盗链,需要从服务器配置入手,比如通过 Referer 验证或 CDN 的防盗链功能来实现。
配置 robots.txt 并非一劳永逸的工作,它需要随着站点结构变化与搜索表现反馈持续调整。建议先为正式站点创建清晰的测试环境,用探测工具反复验证规则解析后再上线;同时养成定期审视抓取统计数据的习惯,及时删除失效规则。将这份文件当作日常 SEO 维护中的一项例行检查,而非临时补救措施,才能让爬虫始终高效地为你的内容服务。