robots.txt是网站根目录下一个纯文本文件,用来告诉搜索引擎爬虫哪些页面可以抓取、哪些应该避开。它直接决定爬虫如何处理你的站点,配置不当可能让核心页面无法被收录,或者让服务器承受无谓的抓取压力。下面从语法细节到常见问题,逐一拆解。
这份文件本质上是一种自愿遵守的协议,对爬虫没有强制力。正规搜索引擎会遵循其中的指令,但恶意脚本、采集工具完全可以无视。同时,阻断某条链接的抓取,不代表它不会出现在搜索结果里——若外部网站大量推荐该链接,搜索引擎仍可能收录,只是展示形式不完整。
因此,涉及用户订单、后台管理、个人隐私等敏感路径,务必叠加登录校验、防火墙等硬性管控,不能只靠这一份文件。把robots.txt当作园区导览图,而不是安保门锁,是避免误判的第一步。
文件由若干规则组构成,每组先声明适用的爬虫,再跟随具体指令。书写时使用英文半角冒号,冒号后可以留一个空格。虽然主流引擎宽容度不低,但保持规范能减少版本升级时的解析风险。
需要针对某一爬虫时,填写对应名称,例如User-agent: Googlebot;希望所有引擎一致对待,则使用通配符User-agent: *。多组规则并存时,可以做到对谷歌放开抓取、对必应限制频率,按需分配服务器资源。
Disallow表示拒绝抓取的路径,Allow表示放行。参数留空时,代表不做限制,允许全站抓取。匹配遵循最长优先原则:例如存在Disallow: /api/与Allow: /api/public/时,后者路径更长,优先级更高,该子目录会被正常访问。理解这一点,可以有效避免规则冲突带来的误屏蔽。
Sitemap指令用于给出站点地图的完整网址,通常建议放在文件末尾,便于爬虫快速熟悉结构。而Crawl-delay用于设置抓取间隔秒数,但注意,谷歌爬虫并不认可这一指令,其抓取节奏由算法自动调整。若你的访客主要来自谷歌,设置该项基本是徒劳。
从零搭建一份可用的配置文件,可以按下面顺序操作:
常见问题集中在几个方面:一是路径写错,比如遗漏了开头的斜杠,导致规则完全不匹配;二是用通配符过度,像Disallow: /这样会直接屏蔽全站,新手容易失手;三是文件出现中文字符或全角冒号,造成解析失败。另外,文件大小尽量控制在较小范围,规则量过多反而增加引擎解析成本。
规避建议:改动后务必在搜索引擎后台检查覆盖率变化,观察是否有页面异常跌出索引。同时,给敏感目录再加一道IP或登录限制,不要把安全责任全部压给robots.txt。
搜索引擎会定期重新抓取该文件,通常几天内会更新策略,高峰期可能延长至一周。若想加快速度,可以在站长工具中提交抓取请求。
不能。它只对遵守协议的爬虫有约束力,恶意采集者会无视规则。建议配合日志分析识别异常IP,并用防火墙拦截。
不需要。site的根目录只允许存在一份,子目录若单独放置无效。应统一在根文件里管理全部规则。
配置robots.txt并不复杂,但细节决定成败。建议逐条核对路径格式,少用宽泛通配,定期用站长工具复查抓取情况。把文件当作抓取策略的调节器,而不是安全屏障。按上述要点整理自己的规则,就能让爬虫把资源花在最有价值的页面上。