搜索引擎爬虫在抓取任何网页之前,都会先查看网站根目录下的 robots.txt 文件。这份纯文本协议相当于网站的"访问守则",它既不直接提升排名,也不阻止所有爬虫进入,而是精确控制哪些路径可以被抓取、哪些必须跳过。合理编写这份文件,既能防止后台页面被索引,又能减轻服务器负荷,让爬虫将有限资源集中在高质量内容上。
robots.txt 固定存放在域名根目录,例如 https://example.com/robots.txt。文件使用 UTF-8 编码,每一行只允许一条指令,路径匹配严格执行大小写。理解以下三个核心指令,你就能读懂绝大多数配置:
文件末尾还可以增加一行 Sitemap 声明,用于提供站点地图的完整 URL。参考下面这个配置:
User-agent: *
Disallow: /admin/
Allow: /admin/preset/
Sitemap: https://example.com/sitemap.xml
该示例允许所有爬虫访问全站,但排除 /admin/ 目录,同时将 /admin/preset/ 子目录单独放行。然而,遇到不识别 Allow 的爬虫时,它依旧会遵守 Disallow 规则,导致原本想开放的子目录也被封锁。因此,在设计此类路径时,需要评估目标爬虫是否支持 Allow 指令,避免出现预期之外的屏蔽效果。
根据网站性质不同,robots.txt 的写法分化为几种常见模式。以下整理了三类典型需求,可直接参照编写。
对于新上线的内容型网站,目标是让所有页面都能被抓取。此时将 Disallow 留空即可:
User-agent: *
Disallow:
直接省略 Disallow 行也能达到相同效果。这个配置最容易出现的错误是误写成 Disallow: / ,一旦如此,所有爬虫将被完全隔离,网站收录立即停摆。每次编辑后,务必确认冒号后没有多余的斜杠。
在不影响其他搜索蜘蛛的前提下,单独拒绝某个爬虫,可以为其单独编写规则:
User-agent: Bingbot
Disallow: /
这种写法会让 Bingbot 无法访问任何页面,而 Googlebot、Sogou 等其他爬虫不受影响。为便于检查,许多站长会在文件末尾使用注释行(以 # 开头)标注每条规则的用途,但这行注释对爬虫无效。
网站需要临时促销页面时,可以将其置于一般屏蔽的目录下,并单独使用 Allow 命令放行:
User-agent: *
Disallow: /assets/temp/
Allow: /assets/temp/landing.html
同样的原则,该方式对不识别 Allow 的爬虫无效,需要保留对主流爬虫的兼容性。
规则匹配的顺位是一个常见误解。robots.txt 针对具体路径匹配最长前缀,当同一路径存在多条规则时,以最具体的一条为准。以下配置揭示了这一逻辑:
User-agent: *
Disallow: /docs/
Allow: /docs/guide/
请求 /docs/guide/intro.html 时,命中 /docs/guide/ 这一条更长路径,因而成功放行;但对 /docs/topics/ 的访问则被禁止。这体现了"具体优先"的原则,恰当地利用这一特性,可以实现目录级别的精细管控。
此外,文件末尾的 通配符 和 结尾符 $ 得到部分爬虫的支持,例如 Disallow: /*?print=1$ 可以拦截带有特定参数的 URL。不过,这类高级语法并不通用,在核心配置中不建议依赖。
即使语法正确,不少网站仍在使用过程中踩坑。以下五个问题最为常见:
部署完毕后,建议在各大搜索引擎站长平台(如 Google Search Console、百度搜索资源平台)的 robots 检测工具中验证,系统会明确提示当前规则是否可能抑制抓取。
不会导致页面被删除,但可能让爬虫停止抓取并降低索引量。尤其当错误地设置为 Disallow: / 时,几乎所有蜘蛛都会停止抓取。此时,已收录页面可能会在搜索结果中逐渐消失,排名会明显下降,但不会直接删除域名。
完全可以。如果没有编写该文件,爬虫会默认访问并获得 404 错误;此时绝大多数搜索引擎会按"允许抓取所有路径"来处理。对大多数站点来说,主动提供一份明确的 robots.txt 反而更有利于控制抓取策略。
不能。robots.txt 只能控制"是否抓取",无法控制"是否显示摘要"或"是否建立索引"。若需要控制页面在搜索结果中的展示方式,应使用 meta robots 标签(如 noindex、nofollow)或 HTTP 响应头,这些方法更精确也更具针对性。
robots.txt 是一个小文件,却直接影响抓取效率与索引质量。建议按以下流程优化:先列出网站目录结构,区分出必须公开、可选择性公开和绝不能被抓取的三类路径;接着参考本文模板撰写配置,并利用站长工具的检测功能进行实测;最后留意服务器日志中爬虫的实际命中情况,定期回顾和微调。将这份控制文件纳入常规运维流程,才能让站点在搜索引擎面前始终保持清晰、健康的开放状态。