robots.txt 是搜索引擎爬虫访问网站时首先读取的规则文件,用来划定抓取边界。这份文件如果设置得当,既能保护后台等敏感区域不被收录,又能让搜索引擎集中资源抓取有价值的内容。下面从基础语法出发,逐一说明不同使用场景下的配置思路。
robots.txt 并非所有爬虫都必须遵守的强制性标准,但它仍是目前最广泛接受的抓取约定。文件必须放置在网站的根目录下,常见的路径如 https://yourdomain.com/robots.txt。文件内容由若干指令行组成,核心是 User-agent 与规则行的搭配。
示范:以下做法代表不设置任何抓取限制,同时主动告知站点地图的位置。
User-agent: * Disallow: Sitemap: https://yourdomain.com/sitemap.xml理解每个指令的作用机制,是后续编写不同策略的前提。规则匹配遵循最长前缀优先原则,但具体的通配符支持程度不一,需要结合目标爬虫的实际规格来判断。
网站实际情况千差万别,配置策略也需要因场景而异。这里整理了几种常见的需求,并给出了对应的规则示例。
当站点处于改版期或内部测试阶段,不希望搜索引擎摄入任何内容时,可以设定一处禁止路径的规则。
User-agent: * Disallow: /值得注意的是,这一指令并不会删除已索引的旧内容,只是暂停后续抓取动作。若页面已上线且被收录,想移除索引,需要结合其他站长工具来配合处理。
多数内容站点需要禁止抓取后台、购物车、用户中心等重复或隐私页面,同时保证前台内容正常收录。此时只需要精确列出禁止路径即可。
User-agent: * Disallow: /admin/ Disallow: /cart/ Disallow: /my-account/这种写法在设置封锁范围的同时,默认放行了所有未被列出的路径。尽量避免同时写入 Allow: / 指令,因为部分爬虫对 Disallow 与 Allow 的优先级判断并不一致,混用会增加规则不确定的概率。
不同搜索引擎对文件大小、指令格式的支持存在差异。想要单独限制某个特定爬虫时,应当将该爬虫的独立段落声明在最前面,再以针对所有爬虫的通用段落收尾。
User-agent: Googlebot Disallow: /private/ Disallow: /draft/ User-agent: bingbot Allow: /public/ Disallow: /private/ User-agent: * Disallow: /tmp/爬虫在读取文件时,会优先寻找与自身名称完全匹配的段落;若找不到匹配项,才会退回使用包含星号的通用段落的规则。因此,精确声明优先于通配声明。
规则看似简单,但实际部署时,一些细节容易引发安全性问题或抓取效率下降。
写完规则之后,必须通过验证才能确认指令已生效。跳过这一步,很容易在细节处栽跟头。
通过真实的抓取反馈来调整配置,比照搬网上的模板更可靠。定期检查,尤其是网站改版之后,可以让封禁规则始终贴合当前的目录结构。
不能完全做到。robots.txt 只是拦截爬虫的抓取行为,但搜索引擎仍可能从外部链接处获取路径信息,将该网址呈现为仅显示标题的结果。若需要彻底防止页面出现在搜索结果中,应配合使用 noindex 标签或密码保护,而这两者都要求页面允许被抓取才能读取到对应指令。
只要爬虫解析规则正常,就不会再去抓取该路径下的任何文件。但需要注意的是,若其它页面通过外部链接指向了 /admin/ 下的资源,搜索引擎仍可能照常展示 URL 和摘要,只是不会抓取具体内容。
不需要频繁改动。爬虫在短时间内会多次请求 robots.txt 文件,通常每隔几个小时内会主动刷新一次。建议把变更集中到定期维护时处理,避免频繁修改导致爬虫重复重新读完整个文件,反而延长抓取周期。
编写 robots.txt 的关键在于精确且克制。规划好禁止目录,拒绝无效的封锁路径,遵循简洁通用的语法,并在规则上线后进行针对性测试,就能在保护隐私内容的同时提升抓取效率。将这份文件视作站点日常运营的一部分,定期梳理,会比一次性做好更稳妥。