搜索引擎爬虫访问一个站点时,最先读取的常是根目录下的 robots.txt。这个纯文本文件用于告知爬虫哪些路径可以抓取、哪些需要避开。配置得当,能保护后台等敏感目录不被收录,也能引导爬虫将抓取配额集中于核心内容。
robots.txt 必须存放于域名根目录,如 https://yourdomain.com/robots.txt,保存时使用 UTF-8 编码,每条指令独占一行,且路径区分大小写。理解几个核心字段是正确书写的前提:
一个典型的配置示例如下:
User-agent: *
Disallow: /private/
Allow: /private/shared/
Sitemap: https://yourdomain.com/sitemap.xml
上述规则的含义是:允许全部爬虫访问,但 /private/ 目录一律禁止,唯独其中的 /shared/ 子目录例外。需要留意的是,若爬虫不识别 Allow 指令,则更严格的 Disallow 会优先执行,子目录同样无法被抓取。
不同站点的抓取需求差异明显,下面针对三种典型场景给出可直接套用的写法。
以收录为首要目标的新站或资讯站,通常希望爬虫自由访问全部页面。此时只需声明一个空值的 Disallow:
User-agent: *
Disallow:
也可以直接省略 Disallow 行,效果相同。这里最常见的失误是把值误写成 /,一旦出现这一行,所有爬虫都会停止爬取,收录随即中断,务必反复核对。
若因流量分配或隐私顾虑,不希望某个搜索引擎抓取站点,可以单独为该爬虫建立规则:
User-agent: Baiduspider
Disallow: /
这段规则仅作用于百度爬虫,Google、Bing 等其余搜索引擎不受任何影响。书写前应查证各搜索引擎官方文档中爬虫的确切名称,常见的还包括 Googlebot、bingbot 等,名称拼写错误会导致规则失效。
后台地址、测试页面通常需要阻止,但其中可能包含某些需要被引用的静态资源。可以用 Allow 配合 Disallow 实现更细颗粒度的控制:
User-agent: *
Disallow: /admin/
Allow: /admin/css/
Disallow: /tmp/
这段配置禁止所有爬虫访问 /admin/ 与 /tmp/,但 /admin/css/ 下的样式文件被单独放行。注意,Google 对 Allow 的解析严格遵循最长匹配原则,因此放行规则必须写得更具体。
配置文件的写法看似简单,实际部署中却有不少容易踩中的陷阱。
建议在文件发布后通过各搜索引擎的站长工具直接读取并验证解析结果,而不是靠肉眼检查。
完成配置后,验证规则是否按预期工作同样重要。Google Search Console 提供了 robots.txt 测试器,可以输入具体 URL 查看对应的抓取结果。百度搜索资源平台也有类似功能,能模拟百度爬虫的访问行为。
验证时重点检查两件事:一是自己希望公开的页面是否被误屏蔽;二是后台等敏感目录是否确实被规则覆盖。若发现某个页面意外无法访问,先排除规则中的路径拼写问题。
不能。robots.txt 只能阻止爬虫抓取,若页面已被其他网站以链接形式公开,搜索引擎仍可能基于链接信息建立索引,并在结果中显示 URL。要彻底禁止收录,应结合 noindex 标签使用。
对于支持 Allow 的搜索引擎,匹配时以路径最长且最具体的规则为准。例如 Disallow: /admin/ 与 Allow: /admin/css/ 同时存在时,后者因路径更长而优先。若不支持 Allow,则 Disallow 始终生效。
主流搜索引擎建议文件总大小不超过 500KB,Google 明确规定超过该上限的部分会被忽略。对于绝大多数站点,几百行规则已足够,无需担心此限制。
robots.txt 的配置并不复杂,关键在于理解每个字段的含义并避开常见陷阱。建议先明确网站的抓取需求,再按上述示例书写规则,最后通过站长工具验证实际效果。配置完成后定期复查,尤其在站点结构变动后,确保规则始终与预期一致。