robots.txt 是放置在网站根目录下的一个纯文本文件,本质上是给搜索引擎爬虫的访问说明,用于告知哪些页面允许抓取、哪些页面应当避开。设置得当,爬虫会把抓取配额集中用于核心内容,收录速度和服务器负载都能保持健康;设置不当,则可能让重要页面长期不被收录,甚至把管理后台暴露给外部爬虫。
robots.txt 的规则并不复杂,核心指令只有以下几条:User-agent 指定规则适用的爬虫对象,Disallow 声明禁止访问的路径,Allow 在禁止范围内对特定子路径放行。文件内还可以加入 Sitemap 指令,直接提供站点地图的完整 URL,帮助爬虫更快定位新内容。
举个例子,如果想拦住所有爬虫进入后台目录,只需写两行:User-agent: *,以及 Disallow: /admin/。需要记住的是,robots.txt 属于建议性协议而非强制标准,个别爬虫可能无视规则,但主流搜索引擎普遍会遵守。
编写文件之前,先对网站的 URL 结构做一次系统盘点。以下几类路径通常不值得爬虫耗费资源,建议纳入屏蔽范围:
同时要特别留意带动态参数的 URL,比如含有 session 标识、排序条件或过滤参数的链接。若不加以限制,爬虫可能在无数个 URL 组合中空转,造成所谓的“抓取黑洞”。另一方面,CSS 和 JavaScript 文件必须保持可访问状态,否则搜索引擎无法完整渲染页面,直接影响排名表现。
实用建议:借助爬虫模拟工具对站点做一次完整抓取,基于实际返回的 URL 清单来判断屏蔽对象,远比靠经验猜测可靠得多。
文件内部结构有固定顺序:先写 User-agent 规则块,然后依次列出 Disallow 和 Allow 条目,最后补充 Sitemap 声明。不同搜索引擎的爬虫可以分别配置独立的规则块,例如对 Googlebot 完全开放,而对某类广告抓取爬虫做严格限制。
部署时的硬性要求包括:文件名必须是 robots.txt,编码格式为 UTF-8 且不带 BOM,文件需要放在域名根目录下,确保通过 https://example.com/robots.txt 能直接访问。文件大小建议控制在 500 KiB 以内,避免因体积过大拖慢下载速度。
编写过程中切勿滥用通配符,星号(*)只在 User-agent 和 Disallow 的值中生效,且匹配能力有限,误用会导致规则失效或误屏蔽页面。每条指令单独占一行,不同 User-agent 块之间保留空行以提升可读性。
主流搜索引擎的爬虫各有标识,例如 Google 对应 Googlebot,百度对应 Baiduspider,必应对应 bingbot。如果希望针对不同来源做差异化控制,可以分别建立规则块。
例如,允许 Googlebot 访问所有内容,只需写 User-agent: Googlebot 并加上 Disallow:(留空表示全部允许);而对某个不重要的爬虫,可以在对应规则块中声明禁止访问整个站点。配置完成后,各规则块之间不要互相干扰,确保每个爬虫只匹配属于自己的用户代理声明。
文件上线后不能一放了之,还需要通过验证确认规则按预期工作。各大搜索引擎都提供了专门的检测工具,例如 Google Search Console 的 robots.txt 测试器,以及百度的抓取诊断功能。
验证时重点检查以下几点:
如果发现规则冲突或误屏蔽,及时修正后再重新提交检测。
robots.txt 不是一劳永逸的配置。随着网站改版、目录调整或新增功能模块,原有的屏蔽规则可能不再适用,需要定期回访检查。
建议每季度查看一次服务器访问日志中的爬虫记录,重点关注哪些路径被频繁请求,以及是否有异常爬虫绕过规则。同时留意搜索引擎后台的抓取统计,如果发现核心页面抓取频率过低,可以适当放宽 Disallow 范围,或直接通过 Sitemap 提交来引导抓取。保持规则精简和明确,是长期维持良好抓取效率的关键。
会。如果误将 Disallow 应用于整站,搜索引擎将无法抓取任何页面,直接导致站点从搜索结果中消失。建议在修改后立即用搜索平台的检测工具验证,确认核心页面处于允许抓取状态。
对于同一路径,Allow 指令的优先级更高。也就是说,即使某个目录被 Disallow 屏蔽,只要在允许列表中明确指定了该目录下的子路径可以访问,爬虫仍会抓取这部分内容。判断时按路径匹配的精确度来判断。
并非强制要求,但如果站点包含后台、搜索页或参数链接等低价值路径,强烈建议配置。没有 robots.txt 时,爬虫可能会访问所有可发现的 URL,浪费抓取配额并增加服务器负担。即使不需要屏蔽任何内容,也可以创建一份仅包含 Sitemap 声明的空规则文件。
robots.txt 的配置核心在于明确的路径梳理和严格的规则验证。从整理目录清单、按格式编写文件,到分爬虫设置权限、使用工具检测效果,再到定期复盘调整,每一步都直接影响搜索引擎对站点的抓取效率。建议从今天开始,对照本文的六个步骤检查自家网站,重点确认后台和动态参数路径是否已正确屏蔽,并确保核心内容页面始终处于允许抓取的状态。