搜索引擎爬虫访问网站时,第一件事就是检查根目录下的 robots.txt 文件。这份纯文本文件就像一份"抓取守则",告诉搜索引擎哪些页面可以抓取,哪些目录需要回避。配置得当的 robots.txt,不仅能防止后台和测试页面被收录,还能引导爬虫将资源用在刀刃上,明显提高核心内容的收录效果。
robots.txt 必须放在站点根目录,例如 https://example.com/robots.txt 才能被爬虫发现。文件要用 UTF-8 编码保存,文件名一律小写,并且路径是区分大小写的。
一个完整的 robots 文件由多个"规则组"组成,每个规则组针对特定爬虫。最核心的三个指令如下:
文件末尾还可以加上 Sitemap 声明,让爬虫更快发现站点地图。下面是一份包含多条指令的典型配置:
User-agent: *
Disallow: /admin/
Disallow: /tmp/
Allow: /admin/login/
Sitemap: https://example.com/sitemap.xml
这段规则的意思是:所有爬虫都禁止抓取 admin 和 tmp 目录,但 admin/login 页面是例外。提醒一下,路径匹配是前缀匹配,Disallow: /admin/ 会屏蔽该目录下所有子路径,除非有更具体的 Allow 指令覆盖。
不同网站对 robots.txt 的需求差别很大,下面给出三种最常见的配置方案,可直接套用修改。
博客、新闻或产品展示类网站,目标是让页面尽可能被索引。此时配置应尽量精简,明确表示不限制任何路径:
User-agent: *
Disallow:
甚至可以直接省略 Disallow 行。这里最容易犯的错误是把 Disallow 写成 /,等于整站屏蔽,可能导致所有页面陆续从搜索结果消失,而且恢复收录非常慢,一定要检查清楚。
如果某个爬虫抓取过于频繁拖慢服务器,或你不想让它索引内容,可以只针对它设置规则,其他引擎不受影响:
User-agent: Bytespider
Disallow: /
User-agent: Googlebot
Disallow:
上面这段配置只屏蔽了 Bytespider,而 Googlebot 不受限制。判断配置是否生效,可以观察服务器日志中该爬虫的访问记录是否消失。
当站点包含大量低价值内容,如图片上传目录、搜索结果页或筛选参数页时,建议集中屏蔽这些区域,让爬虫专注抓取正文页。以下配置可作参考:
User-agent: *
Disallow: /search?
Disallow: /images/
Disallow: /user/uploads/
注意,屏蔽图片目录前要评估:若站点主要流量来自图片搜索,是否值得屏蔽需多权衡。可以先用网站分析工具对比该类页面的搜索流量占比,再决定是否添加规则。
robots.txt 的报错通常不显示在页面上,而是在 Google Search Console 的"索引编制"报告中标记。以下是几个常见问题及处理方法。
排查时优先在无痕窗口直接访问 robots.txt,检查是否有非预期输出;再结合爬虫调试工具确认具体引擎的解析结果,通常能快速定位问题。
大型站点常通过程序动态生成 robots.txt,以便针对不同环境(如测试站与正式站)输出不同规则。这时要确保响应头包含正确的 Content-Type: text/plain,并合理设置缓存时间,避免频繁请求根路径。
另外,不要把敏感隐私信息放在仅靠 robots.txt 保护的路径下。robots.txt 只是"君子协定",无法防止恶意访问,真正的数据安全应依赖访问控制或验证机制。判断一份 robots.txt 是否合格,可以从三个维度衡量:功能性(能否正确执行预期)、简洁性(规则不过度冗余)、安全性(不暴露敏感目录结构)。
几乎无影响。它的体积很小,每次爬虫请求只产生极小的流量消耗。反而配置不当导致爬虫大量抓取重复页面,会消耗更多服务器资源。
取决于搜索引擎重新抓取该文件的时间,通常从几分钟到几天不等。你可以在 Search Console 中请求重新抓取 robots.txt,或缩短 HTTP 缓存时间以加快更新速度。
不是必须的,但强烈建议加上 Sitemap 声明行。这样爬虫能更一致地发现站点地图,尤其在站点新建立或链接较少时可明显加快收录。
配置 robots.txt 的原则可以概括为"够用就好、少即是多"。先列出现有目录和 URL 结构,判断哪些区域绝对不应被抓取,再逐一写入规则,避免过度屏蔽。设置完成后,建议在 Search Console 中验证一次解析效果,并定期检查抓取统计报告。记住,不要用 robots.txt 来保护敏感数据,真正的安全措施应放在服务端访问控制上。一个简洁而准确的 robots.txt,是搜索引擎与网站良好协作的基础。