当搜索引擎的爬虫程序造访一个站点时,它首先读取的往往不是首页内容,而是域名根目录下的 robots.txt 文件。这个看似简单的文本文件,实则是站点与爬虫之间沟通的“君子协定”,用于划定哪些区域可以抓取、哪些角落禁止进入。一份设置得当的 robots.txt,既能保护后台与测试页面不被收录,也能让爬虫将有限的抓取预算集中在核心价值内容上,从而提升站点的整体收录质量。
robots.txt 的实现逻辑并不复杂,但细节决定成败。文件必须命名为 robots.txt 并放置在服务器的根目录下,用户可通过 https://你的域名/robots.txt 直接访问验证。文件采用纯文本格式,推荐使用 UTF-8 编码,并且每一行只写一条规则,路径大小写必须严格区分。要搭建一套基础可用的规则,主要涉及三条指令:
在文件末尾,可以追加一行 Sitemap 地址声明,帮助爬虫发现并优先抓取站点地图。以下是一个实际可用的示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://www.example.com/sitemap.xml
上面这段规则的含义是:所有爬虫默认抓取全站,但 /admin/ 目录整体被屏蔽,不过该目录下的 /admin/public/ 子目录被特意放行。这里必须提醒,遇到不识别 Allow 指令的爬虫时,Disallow 的屏蔽效力依然生效,所以别把 Allow 当成绝对安全的出口。
不同定位的网站,其 robots.txt 的写法往往大相径庭。下面梳理三个最具代表性的配置场景,可直接对照自身需求修改使用。
对于刚上线的内容站点或博客,目标通常是尽可能多地收录页面。此时最稳妥的配置是保留一个空的 Disallow 声明:
User-agent: *
Disallow:
即便完全省略 Disallow 这一行,效果也相同。此场景下最常见的翻车操作是误写成 Disallow: /,这个看似微小的斜杠会直接断绝爬虫的访问路径,导致站点页面完全无法进入索引库,收录量在短期内会归零。
如果出于流量保护或隐私考虑,不想让某一家搜索引擎收录站点,可单独为它定制规则,其他搜索引擎的爬虫则不受干扰:
User-agent: Bingbot
Disallow: /
这样写只对必应爬虫生效,谷歌和百度的蜘蛛依旧可以正常抓取。判断爬虫名称需要查阅各搜索引擎官方的声明,常见标识有 Googlebot(谷歌)、Bingbot(必应)、Baiduspider(百度)等,拼写必须一一对应。
企业官网常用的策略是:对所有爬虫放行前台内容,但封锁后台管理入口、测试环境和临时生成的文件。参考配置如下:
User-agent: *
Disallow: /wp-admin/
Disallow: /tmp/
Disallow: /test/
这种写法阻挡的是目录层级,而不是单个文件。若只想屏蔽某个具体页面,例如站内搜索结果页,可以直接写成 Disallow: /search? 这样的路径匹配形式。配置成功后,建议在浏览器里直接访问 robots.txt 文件,确认每条规则都按预期生效。
实践当中,许多站点并非因为不懂语法而失败,而是栽在了一些隐蔽的细节上。以下三个误区出现频率极高,值得重点规避。
除了避免错误,还应该建立一套健康的管理习惯。首先,每次修改 robots.txt 后,都要检查语法是否出错,可借助各大搜索引擎附带的抓取测试工具进行验证。其次,文件变更通常不会立即生效,爬虫是按各自的抓取周期重新读取该文件的,因此规则调整后需要耐心等待一段时间才能看到效果。最后,不要在这个文件里放置任何影响性能的冗长注释,保持内容精简、结构化,便于日后维护。
没有明显的负面惩罚,搜索引擎依然可以正常抓取和收录页面。不过,缺少该文件意味着你放弃了主动沟通抓取边界的机会,后台、测试页等无需收录的内容更容易被意外纳入搜索索引。
在支持 Allow 语法的搜索引擎(如谷歌)中,以匹配路径最长的那条规则为准。例如 Disallow: /private/ 与 Allow: /private/shared/ 并存时,后者路径更长,因此该子目录会被放行。对于不识别 Allow 的爬虫,则统一执行 Disallow 的限制。
可以。搜索引擎会优先匹配指定了具体爬虫名称的规则组。若某个爬虫在文件中找不到自己的专属段落,才会退而求其次采用 User-agent: * 对应的通用规则。所以想单独限制某个蜘蛛,只需在文件顶部为其写一个独立的规则块即可。
robots.txt 的配置并不需要高深的技术,但务必以清晰的逻辑和谨慎的态度对待。建议你在动手修改前,先完整梳理一遍网站目录结构,明确哪些路径必须保护、哪些资源必须放行。完成配置后,用各搜索引擎提供的检测工具复查一遍文件内容,并持续观察站点的收录变化。把这份文件当作爬虫管理工具而非安全屏障,才能真正发挥它的价值。