Robots.txt 是放在网站根目录下的一个纯文本文件,用来告诉搜索引擎的爬虫哪些页面可以抓取,哪些页面需要绕开。它并非强制性的安全防线,更像是一份友好的沟通协议。合理配置它,既能引导爬虫聚焦于重要内容,也能避免服务器资源被无效请求浪费。
当爬虫准备抓取一个网站时,它做的第一件事通常是请求域名下的 /robots.txt 文件。如果这个文件存在并且爬虫遵循标准,就会据此规划后续的抓取路径;如果文件不存在,爬虫会默认允许抓取所有公开链接。
在实际应用中,这个文件最常见的用途包括:屏蔽后台管理页面、过滤那些低质量的标签页或搜索结果页、调整抓取频率以节省服务器带宽。需要特别强调的是,虽然正规搜索引擎会遵守协议,但某些恶意采集程序并不会理会这些规则,因此千万不要把它当作网站的安全屏障。
文件内容由若干组记录构成,每组记录都以 User-agent 声明开头,后面跟着具体的指令。下面五个指令是必须掌握的基石:
参考下面的写法,逻辑一目了然,也方便日后维护:
User-agent: *
Disallow: /tmp/
Disallow: /private/
Allow: /private/special.html
Sitemap: https://www.example.com/sitemap.xml
这段规则的实际效果是:所有爬虫都不得抓取 tmp 和 private 两个目录,但 private 目录下的 special.html 文件被单独放行,同时页面还提供了站点地图的位置信息。
配置 Robots.txt 看似简单,但一些细节疏漏往往会让预期效果落空。以下几种情况值得特别留意:
避坑提醒:路径匹配采用的是前缀匹配规则,Disallow: /news 会同时屏蔽 /newsletter 这类以同前缀开头的页面,需要精确定位时请写成 Disallow: /news/。
另外,在实际操作中还要注意,修改文件后最好用搜索引擎提供的站长工具或在线检测器验证一下效果,不要想当然地认为规则一定生效了。若网站使用 HTTPS,确保该文件也能通过 HTTPS 协议正常访问,否则爬虫可能读到旧版本或直接报错。
Allow 指令的正确使用能有效优化抓取配额。例如在屏蔽整个下载目录的同时,如果有一个热门 PDF 文件需要被搜索引擎收录,就可以用 Allow 单独放行它。这种方式可以确保爬虫的抓取预算不被海量无用文件消耗。
Sitemap 指令则应放在文件的末尾位置,且必须使用完整的绝对路径。建议在发布新内容或调整站点结构后,同步更新站点地图并提交到搜索引擎后台,这样能显著提升新页面的收录速度。
这并没有一个固定的时间表。搜索引擎会按照自身的抓取周期来重新访问该文件。有的页面可能在几天内就被移除,有的则可能需要数周甚至更久。如果希望加速移除,可以借助搜索引擎的站长工具手动提交删除请求。
允许留空。一个空白的 Robots.txt 文件在功能上等同于文件不存在,爬虫会默认允许抓取所有公开页面。这种写法有时甚至比直接删除文件更规范,因为它避免了服务器返回 404 错误带来的额外日志记录。
根据规范,单个 Robots.txt 文件的大小应控制在 500 KiB(约 512 KB)以内,文件编码建议使用 UTF-8 格式。如果文件过大,部分爬虫可能无法完整读取,导致后续规则失效。当规则非常多时,应考虑精简合并逻辑,而不是一味追加内容。
配置 Robots.txt 的关键在于:明确目标、精准书写、及时验证。建议每半年检查一次文件内容,确保其与当前站点结构保持一致。同时务必记住,它只是抓取管理的辅助工具,真正决定页面能否获得排名,还是要靠优质的内容和合理的站内链接架构。从今天起,可以试着为网站写一份简洁清晰的规则文件,并利用站长工具持续观察抓取趋势的变化。