Robots.txt 是一个放置在网站根目录的纯文本文件,它的用途是通过统一约定的指令,向搜索引擎的抓取机器人说明哪些页面可以抓取、哪些路径应当避开。它本质上不具有强制性,是否执行全凭爬虫自觉,因此更像是网站与搜索引擎之间的一份默契约定。一份设置合理的 robots.txt 文件,不仅能让蜘蛛把精力集中在核心内容上,还能减少服务器承受的无谓请求。
搜索引擎蜘蛛在访问站点时,通常会先查看根目录下是否存在 robots.txt,再根据其中的指令决定接下来的抓取行动。如果该文件不存在,蜘蛛会默认全站内容均开放,所有公开的 URL 都可能进入抓取队列。站长可以利用这一点,主动规划蜘蛛的访问路径。
在日常运用中,它常被用来完成以下任务:隐藏后台管理入口、屏蔽站内搜索结果页或系统自动生成的归档页、设置抓取间隔以缓解服务器瞬时压力。不过需要明确的是,这套规则只对遵守协议的正规搜索引擎生效,恶意爬虫或采集程序并不会理会这些指令。因此,涉及机密的数据和真正的安全防线,不能依赖 robots.txt 来保障。
robots.txt 的编写采用分组结构,每一组先声明目标爬虫,再列出适用的指令。理解下面几个基础指令,是写出有效配置的前提:
以下是一个直观易懂的配置示例,演示了各指令如何搭配使用:
User-agent: *
Disallow: /temp/
Disallow: /private/
Allow: /private/notice.html
Sitemap: https://www.example.com/sitemap.xml
这段配置的含义是:所有搜索引擎蜘蛛均无法抓取 temp 和 private 两个目录,但 private 目录下的 notice.html 作为例外被单独放行,同时向蜘蛛提供了站点地图的地址。
配置逻辑看似简单,实践中一个符号的差异就可能导致结果大相径庭。以下是站长们经常遇到且容易出错的几种情况:
为了让 robots.txt 真正发挥作用,以下几点值得特别留意:
不一定。robots.txt 只是阻止爬虫抓取,但其他网站仍可能引用你的 URL,搜索引擎有时仍会将其收录在结果中(只是不带描述)。若希望彻底阻止收录,应使用 noindex 标签,并将其与 robots.txt 配合使用。
在同一组规则中,Allow 的优先级高于 Disallow。这也是为什么可以在屏蔽整个目录时,单独放行其中的某个特定文件。跨组规则则通常按照匹配路径的具体程度来判断。
可以借助搜索引擎站长平台中的 robots.txt 测试工具,输入页面路径即可查看该 URL 会被哪条规则命中。另外,直接在浏览器中访问 /robots.txt 也能检查文件是否正常返回。
Robots.txt 是引导搜索引擎蜘蛛抓取行为的重要工具,但它的作用仅限合理规划而非强制管控。建议你先梳理网站中有哪些路径必须隐藏、哪些需要优先抓取,再据此编写清晰的分组规则;同时留意路径匹配与优先级细节,并在修改后用工具验证效果。记住将敏感信息防护交给其他手段,让 robots.txt 回归其引导与建议的本职。