搜索引擎爬虫进入一个网站时,通常会先查看根目录下名为 robots.txt 的文件。这个纯文本文件相当于给爬虫划定了活动范围,明确哪些页面可以抓取,哪些目录应当避开。一份设置合理的 robots.txt,既能防止后台或测试页面被搜索引擎索引,又能让爬虫把有限的抓取预算投入到最重要的内容上,对网站收录效率的提升有明显帮助。
robots.txt 文件必须存放在网站的根目录,访问地址形如 https://example.com/robots.txt。文件本身应当使用 UTF-8 编码保存,每条指令独占一行,并且注意路径中的大小写不能写错。
一份完整的 robots.txt 通常包含以下几个部分:
除了上述指令,还可以在文件末尾添加一行 Sitemap 地址,帮助爬虫直接发现站点地图。以下是一个典型的配置示例:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
这段规则表明:默认放行所有爬虫,但排除 /admin/ 目录,其中的 /admin/public/ 子目录被单独允许访问。需要牢记的是,并非所有爬虫都认识 Allow 指令,不认识的爬虫依然会执行 Disallow 的限制,因此不要把重要页面放在被禁目录下再试图用 Allow 解除拦截。
不同性质的网站对 robots.txt 的需求各不相同,下面根据三种典型目标给出对应的配置思路。
如果网站希望所有页面都被搜索引擎收录,配置可以非常简单,只需将 Disallow 留空即可:
User-agent: *
Disallow:
也可以干脆省略 Disallow 这一行,效果等同。这里最常犯的错误是手误写成 Disallow: /,一旦保存,所有爬虫都会被拒之门外,网站的收录量很快就会跌到零,需要很长时间才能恢复。
当不希望某个特定搜索引擎抓取网站时,可以为该爬虫单独设置规则,其他搜索引擎的访问不受影响:
User-agent: Bingbot
Disallow: /
通过这种方式,被屏蔽的爬虫不会再来抓取,而Googlebot、Baiduspider 等其他爬虫依然可以正常工作。各爬虫的确切名称可以在对应搜索引擎的官方网站上查到,写错名称会导致规则完全失效。
企业网站经常需要阻止搜索引擎收录后台管理页面、临时目录或用户隐私内容,此时可以用如下规则:
User-agent: *
Disallow: /wp-admin/
Disallow: /tmp/
Disallow: /user/profile/
配置完成后,建议使用搜索引擎提供的 robots.txt 测试工具进行验证,确认规则生效且没有误伤正常内容。同时,被屏蔽的路径应当确保没有任何合法内容需要被索引,否则会直接影响页面在搜索结果中的展现。
许多站点在维护 robots.txt 时会出现一些看似合理实则隐患不小的错误,以下是几种典型情况。
最好的做法是:每次修改文件后,使用网页版测试工具确认规则,并查看抓取日志观察爬虫的实际访问情况,以便及时发现问题。
robots.txt 不是一份写好后就永远不变的文件。随着网站结构调整、新目录上线或域名迁移,原有的规则可能不再适用。
在日常维护中,建议保持以下习惯:
另外,当网站从 HTTP 迁移到 HTTPS 或更换域名后,务必第一时间更新并验证 robots.txt,避免爬虫因旧地址失效而停止抓取。
如果规则设置正确,可以阻止绝大多数搜索引擎的抓取,但并非绝对可靠。某些情况下,其他网站引用你的内容仍可能导致 URL 被索引,且少部分搜索引擎可能不完全遵守该协议。对于真正敏感的页面,建议同时配合密码保护或 noindex 标签加以强化。
两者在大多数搜索引擎眼中的效果基本一致,都是允许全站抓取。不过 Disallow 留空的方式更加明确地表达了站长的开放意图,有助于避免某些爬虫对缺失指令产生误判,因此在正式站点中建议保留完整的指令结构。
搜索引擎通常会定期重新抓取该文件,生效时间从几分钟到几天不等,具体取决于爬虫的抓取频率。若希望加速更新,可以在搜索引擎的站长工具中手动提交新的 robots.txt 地址,通常会促使爬虫尽快重新抓取。
robots.txt 虽然只是一个简单的文本文件,却直接关系到搜索引擎对网站资源的分配方式。配置时应当保持明确、简洁,避免过度屏蔽,同时注意区分反爬与反收录的概念。建议在完成每一次修改后都通过工具进行验证,并留意抓取日志的变化。从最小化的规则开始,逐步调整,往往比一次性写入大量限制更加稳妥,也有助于实现更好的收录效果。