robots.txt 是每个网站根目录下都必须认真对待的配置文件。它用几行简洁的指令,告知搜索引擎的爬虫哪些页面可以抓取、哪些路径需要回避。配置得当,爬虫精力会集中于核心内容,新页面的收录效率明显提升;反之,一个细微的语法错误或路径笔误,可能导致整站抓取异常,甚至影响搜索排名。下面我们就从基础概念开始,逐步拆解它的语法结构和常见误区。
很多人误以为通过 robots.txt 屏蔽页面就能让其从搜索结果中消失,这是一个常见的认知偏差。这份文件的核心作用是引导爬虫的访问路径,相当于一个路口指示牌,但它无权决定某个页面最终是否进入搜索引擎的索引库。若目标是让页面彻底不被展示,应使用 noindex 元标签,并且要意识到,一个被 robots.txt 屏蔽的 URL,如果被大量外部链接指向,依然存在被收录的可能性,只是页面快照可能基于其他来源生成。
同时必须警惕,robots.txt 是依赖爬虫主动遵守的“君子协议”。主流搜索引擎的蜘蛛通常会严格遵循,但恶意采集程序、部分第三方工具并不会理会这些规则。涉及后台管理目录、用户敏感数据、支付接口等区域,绝不能仅仅依赖此文件,必须叠加登录验证、IP 白名单或防火墙策略,才能形成有效防护。
robots.txt 由若干规则组构成,每一组都必须以 User-agent 行开始。文件中的所有指令均采用“名称: 值”的格式,冒号必须是英文半角,并且规范写法建议在冒号后保留一个空格。即便多数爬虫对格式有较高的容错率,保持严谨的书写习惯依然能降低未来出现解析异常的风险。
该字段用于声明当前规则组约束的是哪一类爬虫。若仅需限制 Google 的搜索蜘蛛,可写 User-agent: Googlebot;若想让所有搜索引擎的爬虫统一执行,则使用通用通配符 User-agent: *。你完全可以创建多个规则组,为不同爬虫定制差异化策略,例如对谷歌放宽权限,同时对必应实施更严格的限制。
Disallow 指明禁止抓取的路径,Allow 则用来声明允许访问的路径,两者通常成对使用,逻辑上互补。有一个容易忽略的细节:当 Disallow 指令后面没有跟任何值(即 Disallow: 后为空),表示解除全部封锁,爬虫可抓取站点内所有内容。此外,当同一个 URL 同时命中多条规则时,搜索引擎普遍遵循“最长匹配优先”原则——路径匹配越具体,其优先级越高。例如同时配置了 Disallow: /api/ 与 Allow: /api/public/,由于后者路径更具体,因此 public 子目录下的资源会被正常放行。
Sitemap 指令用于声明站点地图的完整 URL 地址,方便爬虫快速了解全站内容结构,通常置于文件末尾。Crawl-delay 指令用于设定爬虫两次抓取之间的等待时间,单位为秒。需要特别提醒的是,Google 爬虫不认可此指令,若需要控制谷歌的抓取频率,应通过 Search Console 后台的速率设置功能进行操作。
第一个高频错误是对路径匹配的理解偏差。Disallow: /private 和 Disallow: /private/ 的含义截然不同——前者会匹配任何以 /private 开头的路径(包括 /private_notes),而后者仅精确匹配 private 这一目录及其下内容。第二个常见问题是通配符的滥用。虽然 Google 支持的星号(*)可以代表任意字符序列,但过度使用通配符容易导致规则覆盖面超出预期,误伤正常页面。此外,规则中的路径是大小写敏感的。/Admin 与 /admin 在服务器上可能指向不同资源,配置时必须与服务器实际路径严格保持一致。
最后一个实用建议是,修改 robots.txt 后务必验证。可以利用搜索引擎站长工具中的 robots 测试功能,模拟不同爬虫的抓取视角,确认每条规则生效范围符合预期,避免上线后发现核心页面被意外屏蔽。
以下是一份比较完整的配置示例:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /admin/
Allow: /admin/login/
Sitemap: https://www.example.com/sitemap.xml
实际使用中可根据站点架构灵活调整,但保持规则精简与逻辑清晰是首要原则。
该文件必须存放在站点根目录下,且文件名应小写,通过 https://域名/robots.txt 可直接访问。若放置在其他路径或文件名有误,爬虫将无法识别,从而默认允许抓取全部内容。
搜索引擎默认采用最长匹配优先原则,即 URL 匹配到的路径字符串最长、最具体的规则生效。因此在配置时,将需要放行的具体路径写得比屏蔽路径更详细,即可实现精细化控制。
robots.txt 只控制抓取行为,不控制索引行为。如果该页面已被其他 URL 引用或较早被抓取过,搜索引擎仍可能将其加入索引库。如需彻底移除,应配合使用 noindex 标签,并在站长后台提交删除请求。
robots.txt 虽小,却直接影响搜索生态对站点的评估。建议在每次修改后,通过搜索引擎的抓取测试工具进行验证,并定期结合日志文件审查实际抓取情况。把规则写得清晰、精确,避免模棱两可的路径匹配,是保护站点抓取预算、提升核心内容收录效率的最有效手段。