搜索引擎的爬虫在进入你的网站前,通常做的第一件事就是检查根目录下的 Robots.txt 文件。这份纯文本文件相当于一份抓取许可清单,告诉爬虫哪些页面可以访问、哪些区域应当回避。配置得当的 Robots.txt 不仅能防止后台和隐私内容进入搜索结果,还能指导爬虫优先抓取高价值页面,避免网站抓取配额被无效链接浪费。
Robots.txt 本身是纯文本,存放在网站根目录,通常由若干组规则组成。每组规则先声明适用于哪类爬虫,再给出具体的访问指令。理解几个核心字段是上手的第一步。
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
上面这段规则的意思是:对所有爬虫开放全站抓取,并附带地图地址供参考。注意这里 Allow: / 等价于 Disallow 留空,是明确对所有路径放行的写法。
语法本身简单,难点在于针对实际需求组合合适的规则。以下列出几种最常见的使用场景及对应的配置写法。
站点正在开发、测试或紧急维护时,通常不希望任何内容进入搜索引擎索引。此时最直接的方式是禁止所有爬虫访问任何路径:
User-agent: *
Disallow: /
需要注意两点:第一,这条规则不影响站内正常访问,只对搜索引擎爬虫生效;第二,已收录的历史页面不会立刻从搜索中消失,只有等爬虫再次抓取并判断该页不可访问后,才会慢慢被降权或移除。
多数网站需要屏蔽的是后台管理、用户中心、搜索结果页或内部测试目录,而不是全站。假如需要拦截 /admin/ 和 /search/ 两个路径:
User-agent: *
Disallow: /admin/
Disallow: /search/
这里不需要额外加一行 Allow: /,因为 Robots 协议的默认行为就是允许抓取未在 Disallow 中声明的路径。主动添加 Allow 指令可能让某些不支持它的爬虫产生误判,反而适得其反。
不同的搜索引擎爬虫对服务器资源的消耗差异很大,有时需要差别对待。例如希望 Googlebot 抓取全站图片,但限制其他爬虫访问资源目录和图库:
User-agent: Googlebot
Allow: /images/
Disallow: /private/
User-agent: *
Disallow: /images/
Disallow: /private/
规则从上到下匹配,爬虫会选取最具体、最匹配自身名称的那一组规则。Googlebot 会先命中第一组,因此可以访问 /images/;其他未具名爬虫则命中第二组,对图片目录保持禁止。
在实际运维中,Robots.txt 的错误往往难以被及时发现,因为它的影响是缓慢而隐蔽的。以下几种错误值得特别警惕。
建议每次修改 Robots.txt 后,使用搜索引擎官方的测试工具(如 Google Search Console 的 Robots 测试器)验证规则是否按预期生效,避免线上事故。
完成一份 Robots.txt 后,不应直接上线就完事,系统性检查可以避免绝大多数隐性错误。以下是一份常用的校验清单:
若条件允许,建议每次上线后观察一周抓取统计,对比改动前后爬虫实际抓取量变化,以此确认规则的最终效果。
不是必须的。如果网站没有特殊屏蔽需求,完全可以不放置该文件,爬虫会默认抓取全站所有页面。但建议仍放置一份基础文件,原因是便于在需要时随时快速修改,同时也能利用 Sitemap 字段引导爬虫高效爬行。
可以同时使用,用于实现精细化控制。例如先声明 Disallow: /private/,再声明 Allow: /private/public/,即可只放行该目录下的特定子目录。要注意的是,并非所有搜索引擎都完全支持 Allow 指令,对不支持它的爬虫,Allow 会被忽略,规则按 Disallow 执行。
生效时间没有固定标准,取决于各爬虫重新抓取 Robots.txt 的频率。通常 Googlebot 会在数小时内获取更新,而其他爬虫可能间隔数天。若需加速,可主动在搜索引擎站长工具中提交抓取请求,触发一次立即检查。
Robots.txt 配置的关键在于理解默认允许原则、熟练区分 Disallow 和 Allow 的语义,以及根据真实抓取需求组合规则。建议从最小规则开始:先仅屏蔽明确不需要收录的目录,再逐步添加例外路径。每次修改后必须实际测试,切忌依赖印象或旧文档。一套正确且精简的 Robots.txt,能让网站抓取效率明显提升,也为后续 SEO 工作打下可靠基础。