robots.txt 是网站根目录下的一个纯文本协议文件,通过简明规则告知搜索引擎爬虫哪些目录可以访问,哪些目录应当屏蔽。设置得当,爬虫的抓取预算会被有效导向核心页面,帮助新内容更快被收录;一旦配置失误,则可能让整站收录陷入停滞,直接影响自然搜索流量。理解其语法细节和容易踩中的陷阱,是站点运营者必须掌握的基本功。
robots.txt 的标准访问地址通常为 https://example.com/robots.txt,它的职责是在爬虫进入网站前提供指引,划分可抓取和禁抓取的区域。然而不少新手容易混淆“抓取”和“索引”这两个概念:robots.txt 仅能约束爬虫是否发起抓取动作,并不能决定页面是否被搜索引擎纳入结果列表。如果你希望某个页面彻底从搜索结果中消失,正确做法是在页面的 HTML head 部分添加 noindex 标签,那才是控制索引行为的直接手段。
此外,robots.txt 完全依赖爬虫自主遵守协议约定,对于恶意采集程序或非正规抓取工具毫无约束力。凡是涉及用户隐私、登录凭据或核心业务数据的路径,务必依靠登录校验、IP 白名单等安全策略兜底,绝不能把 robots.txt 当作唯一的防护屏障。
robots.txt 文件由多条规则组构成,每一组以 User-agent 开头,用以声明该组规则针对的爬虫对象。每条指令的格式均为“字段: 值”,冒号后保留一个空格、字段名采用小写字母,是兼容性最佳的书写习惯。
User-agent 用来指明规则作用的目标:比如 User-agent: Googlebot 仅对谷歌爬虫生效,而 User-agent: * 则覆盖所有搜索引擎的爬虫。文件里可同时存在多个规则组,针对不同爬虫制定差异化策略,例如对 Googlebot 放开更多路径,对 Bingbot 设置较严格的访问限制,从而灵活分配抓取资源。
Disallow 表示禁止抓取指定路径,Allow 则允许抓取指定路径。当二者同时出现并匹配同一 URL 时,搜索引擎遵循“最长匹配优先”原则,即路径越长、描述越明确的规则具有更高优先级。举个例子,同时存在 Disallow: /api/ 和 Allow: /api/public/ 时,由于后者路径更长,/api/public/ 目录下的资源依然可以被正常抓取。还需留意,如果 Disallow 后面留空不填任何值,则代表取消所有限制,即允许抓取全站内容。
Sitemap 指令用于告知爬虫站点地图文件的位置,帮助其迅速发现新生成的页面,缩短新链接被感知的时间周期。Crawl-delay 用来设置两次抓取请求之间的等待秒数,适合服务器并发承受能力有限的网站,但需要注意并非所有搜索引擎都认可该字段,部分爬虫会直接略过它,因此不能把限速希望完全寄托在这一项上。
依据站点类型和具体运营目标,下面几种设置思路可以直接套用,轻松上手:
即便掌握了基本语法,实际操作中仍有许多细节容易导致意外后果,下面是一些常见误会和提醒:
不会产生直接惩罚,但可能造成重要页面长期无法被抓取,间接影响收录和排名。发现后及时修正并验证即可,不会留下永久污点。
遵守协议的包括主流的 Google、Bing 等正规搜索引擎,但对于恶意爬虫或非法采集程序而言,它们并不理会协议内容,因此需要额外的技术防护措施。
效果并非即时生效。爬虫通常会定期重新获取该文件,短则几小时,长则数天,具体取决于各搜索引擎的抓取频率。若急于验证,可直接使用官方抓取测试工具强制刷新。
合理配置 robots.txt 是站点管理和搜索优化的基础环节。建议从全局出发,先列出希望保护或忽略的路径清单,再按规则组逐一配置,每次修改后利用抓取测试工具复查,确保预期行为与实际情况一致。将 robots.txt 与 noindex 标签、服务器安全策略搭配使用,才能构筑完整的站点访问控制体系,让爬虫为你服务而非添乱。