搜索引擎爬虫访站时,第一眼往往不是网页内容,而是根目录下的 robots.txt 文件。这份纯文本协议,是站长与爬虫之间的“君子协定”,它告诉搜索引擎哪些页面能看、哪些区域别碰。配置得当,它能保护后台数据、节约抓取预算;配置失误,则可能导致整站无法收录或关键页面被屏蔽。
robots.txt 必须存放在网站根目录,且严格遵循 UTF-8 编码、逐行书写,路径区分大小写。若你将文件放在子目录,爬虫根本不会读取,等于白写。
一份规范的文件通常由这些指令构成:
看一个典型例子:
User-agent: *
Disallow: /private/
Allow: /private/public/
这里意图是:全站可抓,但 private 目录禁止访问,唯有其中的 public 子目录开放。需要牢记的避坑点是:当 Allow 与 Disallow 冲突且爬虫不认 Allow 指令时,更严格的 Disallow 会优先生效。因此,想解锁一个被锁死的目录,别指望 Allow“解封”,直接修改 Disallow 更保险。
新建的博客、资讯站或产品页,巴不得搜索引擎多来收录。此时应留空 Disallow:
User-agent: *
Disallow:
省略 Disallow 行一样有效。这个场景下最常见的错误是把值误写成“/”,一行代码就让全站对爬虫关门,收录瞬间归零。动手配置前,请三遍确认 Disallow 的值不是“/”。
开放抓取时,建议配合 Sitemap 指令,让爬虫直接拿到页面清单,缩短新页面的收录时间。但对测试站或分阶段上线的功能页,需提前规划——把未完成的模块放至独立子目录,再用 Disallow 屏蔽,避免内容半成品被提前索引。
购物车页面、用户中心、内部统计报表等区域,理应拒绝爬虫访问。经典写法是精准屏蔽:
User-agent: *
Disallow: /cart/
Disallow: /user/
Disallow: /admin/
若网站使用 CDN 或第三方服务生成的临时文件,也建议一并屏蔽,比如 /temp/、/cache/。判断标准是:凡是无需公开检索的资源,都应列入 Disallow。但别过度拦截——将整个静态资源目录(如 /assets/)屏蔽,会让图片、CSS 无法被抓取,影响页面渲染质量。严格来说,robots.txt 只影响抓取,并非安全防线,敏感数据仍须依赖登录鉴权。
大型站点页面数以万计,爬虫每天抓取额度有限。合理利用 robots.txt 可以把预算集中在高价值页面。一个具体做法:将 /tag/、/?sort=、/filter/ 等低质或重复的内页列进 Disallow,同时用 Sitemap 明确列出应被优先收录的 URL。效果是官方博客、核心产品页的索引速度明显加快。
需要注意的差异是:robots.txt 禁止的页面,若被外部链接指向,搜索引擎仍会收录 URL 本身,只是不抓取内容。此时建议配合 noindex 标签彻底阻断索引。另外,通配符的使用要克制——只对特定爬虫开放某些规则(如指定 Googlebot 可访问,其他爬虫禁止),既能达成目的,又避免规则冲突引发误判。
配置错误往往不会立刻暴露,等到检索量下滑才后悔莫及。以下几类问题最常出现:
改完配置后,建议用各搜索引擎官方的 robots 测试工具(如 Google Search Console 的文件测试)自查语法,逐条模拟爬虫访问路径,确认无误再发布上线。
无需频繁改动。它属于基础协议,只有在新功能上线、目录结构调整或需要临时屏蔽页面时才需更新。每次修改后,用工具测试再上线,避免临时改错影响收录。
文件不存在完全正常,搜索引擎会默认允许抓取全站内容。缺少它不会带来惩罚,但遇到临时封闭区域或抓取预算紧张时,就会缺乏控制手段。建议按需创建,并非强制要求。
不一致。Disallow、Sitemap 是所有主流爬虫都支持的;Allow 的解析规则在不同引擎间略有差异。若面向国际化搜索,建议以测试工具逐一验证,优先采用最保守的写法,保证兼容性最差也正确无误。
robots.txt 虽小,却直接影响网站的抓取与收录节奏。日常维护中,建议每季度检查一次文件内容,确认与站内目录结构同步;上线新功能前,先评估是否需要临时屏蔽相关路径;同时保持 Sitemap 指令的更新。掌握基础语法、按场景配置、避开常见误区,你便能稳妥控制爬虫的每一步行动,让核心内容被搜索引擎纯净地收录。