robots.txt 是存放在网站根目录的小型文本文件,用于告知搜索引擎爬虫哪些路径可以抓取、哪些路径应当规避。理解其语法规则并避开常见配置错误,有助于搜索引擎更合理地分配抓取资源,促进新页面收录,避免因误配置导致的页面失抓或索引异常。
robots.txt 通常通过域名根路径访问,例如 https://example.com/robots.txt。它的核心作用是管理爬虫的抓取入口,引导爬虫进入允许的区域,并不能决定某个链接最终是否出现在搜索结果中。若希望彻底阻止某页面被索引,应当在页面代码中加入 noindex 标签。二者的作用边界需要区分清楚:robots.txt 管的是“抓”,noindex 管的是“收录”。
另外需要留意,该协议只对遵循规范的搜索引擎爬虫有效。对于恶意采集程序或非正规抓取工具,它基本不产生约束力。凡是涉及用户隐私、支付流程或核心业务数据的路径,必须依赖账号权限校验、IP 访问白名单等更严格的安全手段,不能仅仅依赖 robots.txt。
robots.txt 由若干规则组构成,每一组必须以 User-agent 行开始。书写格式为“字段名: 值”,建议冒号后保留一个空格,字段名统一使用小写,以减少不同解析器带来的兼容性差异。
User-agent 用来指明该组规则的作用对象。例如 User-agent: Googlebot 表示规则仅对谷歌爬虫生效;User-agent: * 则代表所有搜索引擎爬虫。同一文件内可以包含多组规则,以便针对不同爬虫实施差异化策略,灵活度高。
Disallow 用于声明禁止抓取的路径,Allow 用于声明允许抓取的路径。若 Disallow 后未填写任何内容,则表示解除所有限制,允许抓取全站。当某个链接同时匹配到允许与禁止规则时,搜索引擎遵循“最长匹配优先”原则,路径更长、更具体的规则生效。例如同时存在 Disallow: /api/ 和 Allow: /api/public/,则 /api/public/ 下的内容仍可被正常抓取。
Sitemap 指令用于告知爬虫站点地图的具体位置,帮助爬虫更快发现新页面,缩短链接探测时间。
Crawl-delay 用于设定两次抓取之间的等待时长,适合服务器负载能力有限的站点。但并非所有搜索引擎都认可该字段,部分爬虫会直接忽略,因此不能将其作为唯一的限速手段。
根据站点类型与业务需求,以下几种配置模式可直接参考使用:
配置过程中,容易因细节疏忽引发问题。以下几点尤其值得注意:
不能直接阻止收录。robots.txt 只是阻止爬虫抓取页面内容,若外部链接已指向该页面,搜索引擎仍可能仅根据 URL 将其收录,但不会展示页面内容。若需彻底不收录,应使用 noindex 标签。
Disallow: 后不填写任何值,表示允许爬虫抓取全站内容,等同于解除该规则组的所有限制。这一写法常见于想要开放全站访问的配置场景。
搜索引擎会依据最长匹配原则处理。命中路径长度更长的规则优先执行,若 Allow 的路径比 Disallow 更长,则允许抓取;反之则禁止。理解这一原则有助于精确控制抓取范围。
合理配置 robots.txt 能显著提升抓取效率,但务必清楚其作用边界。建议定期检查文件内容,结合站点地图、noindex 标签等工具协同管理抓取与索引行为。配置完成后,使用搜索引擎的测试工具进行验证,并根据实际收录情况持续调整,才能让抓取资源真正用在关键页面上。