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,并提供了站点地图位置。注意路径匹配是以字符串前缀为基础的,规则顺序并不影响优先级,Allow 始终生效于同组。
看似简单的文件,常因细节处理不当而事与愿违。以下场景值得反复核对:
避坑要点:文件须以 UTF-8 编码保存,避免 BOM 头;每个指令之间用冒号和空格分隔;规则行末尾不要添加多余符号。更新文件后,建议通过搜索引擎站长工具进行测试验证,而非仅依赖目测。
Robots.txt 并非唯一的抓取控制工具,它常与以下方式协同工作:使用 meta noindex 标签可从页面层面阻止索引,适合无法通过路径规则表达的名单;X-Robots-Tag HTTP 响应头则适用于非 HTML 资源。某些场景下,将路径规则与页面标签叠加使用能获得更稳妥的效果。
需要留意优先级与覆盖关系:若 robots.txt 禁止抓取某页面,即使该页面存在 noindex 标签,爬虫也因无法读取而无从知晓。相反,允许抓取但标注 noindex 的页面,既消耗抓取配额又能阻止索引。因此,最合理的策略是按内容价值分层管理抓取与索引行为,避免眉毛胡子一把抓。
会。若误将重要路径写入 Disallow,搜索引擎会逐步停止抓取这些页面,此前的收录可能被移除,排名随之消失。修改后可通过搜索"site:你的域名"观察恢复情况,但整体周期可能持续数天到数周。
每条 User-agent 都构成独立的规则组,爬虫会优先匹配与自身名称完全一致的组,然后按顺序寻找通配符 * 的组作为兜底。建议将通用规则放在 * 组内,特殊爬虫规则单独成组,避免混淆。
多数搜索引擎对文件大小有上限(常见为 500KB 左右),超过部分会被截断。若服务器响应超时(如 5 秒),爬虫通常按允许抓取全部内容处理,这反而可能带来不利影响。保持文件精简并确保快速响应非常关键。
配置 robots.txt 的核心在于明确抓取边界,而非越多规则越好。建议定期审查现有条目,删去无效路径,并对核心目录采用最小化阻止策略。配置完成后,不妨先在测试工具中模拟主流爬虫的抓取行为,确认无误再上线生效,这样既能保护有效内容,也能减少无谓的服务器开销。