robots.txt 是放在网站根目录下的纯文本文件,向搜索引擎爬虫说明哪些路径可以抓取、哪些应该忽略。配置得当能节省抓取配额、保护敏感区域;但一条疏忽的规则也可能不小心屏蔽整个站点,导致网站从搜索结果中消失。下面从语法、匹配逻辑到高频错误逐层拆解,帮助你稳妥使用这份协议。
robots.txt 本质是面向爬虫的公开声明,属于行业协作惯例,而非强制安全屏障——主流搜索引擎会遵循其中指令,但它没有法律约束力,也不提供实际防护。
在站点运营中,它主要解决三类问题:第一,隔离后台管理区、预发布站点或测试环境等不需要被索引的路径;第二,屏蔽带大量追踪参数的动态地址,避免抓取资源被无效消耗;第三,在文件中注明 Sitemap 位置,协助爬虫更快发现新内容。
需要特别留意,任何访客都能通过浏览器直接查看该文件内容。凡涉及用户隐私数据、后台登录入口或内部系统信息的路径,绝不能依靠 robots.txt 来隐藏,必须借助登录验证、IP 白名单等硬性访问控制措施。
robots.txt 采用"字段: 值"的格式逐行书写。字段名不区分大小写,但值中的路径部分严格区分大小写。掌握以下五个字段,即可应对大多数配置需求。
假设站点存在内部目录 /admin/,其中 /admin/help.html 需要正常被收录,同时希望告知爬虫站点地图位置,可这样配置:
User-agent: *
Disallow: /admin/
Allow: /admin/help.html
Sitemap: https://www.example.com/sitemap.xml
这段规则表达三层意思:默认所有爬虫禁止抓取 admin 目录;但 help.html 页面属例外,予以放行;附上站点地图地址供爬虫参考。
编写 robots.txt 门槛不高,但匹配顺序的细微差异常导致正常页面被误伤。掌握规范流程和判断标准能有效避免失误。
当多条规则同时适用时,搜索引擎会按最长匹配原则处理:从 URL 开头逐字符比较,匹配字符数最多的那条规则生效。若长度相同,则 Allow 优先于 Disallow。例如同时存在 Disallow: /help 和 Allow: /help/tips,爬虫抓取 /help/tips/page.html 时会遵循后者,因为其路径更长、更具体。
判断规则是否生效时,可逐条模拟爬虫视角:把请求 URL 拆开,依次对照文件中的每条路径前缀,找到最长匹配项,再看它是 Allow 还是 Disallow。若拿不准,建议同时使用 Google 与百度官方提供的 robots 检测工具交叉验证。
一个常被忽略的细节:路径中的空格和特殊字符会被按字面处理,中文路径必须做 URL 编码。例如目录名为"最新消息",应在规则中写成 /%E6%9C%80%E6%96%B0%E6%B6%88%E6%81%AF/ 而非直接粘贴中文。
众多站点因为 robots.txt 配置瑕疵吃了大亏,下面几个问题在实战中最常出现。
robots.txt 必须严格放在域名根目录下,而不是子目录中。同时建议文件全部为小写字母命名,部分服务器对大小写敏感,Robots.txt 或 ROBOTS.TXT 可能无法被正确识别。上传后务必通过浏览器直接访问 https://域名/robots.txt 确认可正常打开且内容未乱码。
星号(*)在 User-agent 字段表示"所有爬虫",但有些站长误把它用在路径里。实际上并非所有搜索引擎都支持路径通配符,诸如 Disallow: /*.pdf 这种写法在不同爬虫间行为不一致,极易造成部分资源被意外屏蔽。优先使用完整路径前缀,不依赖通配符更稳妥。
路径中的字母区分大小写,/Help/ 与 /help/ 是两个不同目录。另外,Disallow: /api 与 Disallow: /api/ 含义不同——前者匹配所有以 /api 开头的路径,后者仅匹配 /api/ 这个目录本身。书写时应尽量使用结尾斜杠明确表达目录意图,避免含糊引发误伤。
这是最危险的误区。文件内容公开可读,本质上是在"告诉"爬虫哪里藏着敏感信息,而非真正挡住访问。任何包含用户隐私、订单记录或后台接口的路径,必须同时部署登录鉴权和服务器端访问控制,绝不能只依赖 robots.txt 一条规则了事。
没有统一时限,通常取决于爬虫的重新抓取周期。Google 可能需数天到数周,百度类似;若急需移除现有索引,可同步使用搜索引擎站长平台的"删除资源"或"屏蔽 URL"功能,处理速度比单纯依靠 robots.txt 快得多。
爬虫会按最精确的匹配选取适用的规则组:先找与自身标识完全对应的 User-agent 组,未命中则匹配通配符 * 的组。各组的 Allow 与 Disallow 仅在组内独立计算,不会跨组混合匹配。因此为特定爬虫设置规则,应写在同一组内。
取决于服务器承载能力和访客流量。若站点访问压力大,且目标搜索引擎确实支持该指令(如早期 Bing 的部分爬虫),可设置 2-5 秒的延迟。但目前 Google 不支持该指令,Baidu 也已逐步弱化对它的响应。更可靠的限速方案是在服务器层面配置限流规则。
robots.txt 是一份轻盈却影响深远的配置文件:写好了能守护站点资源、指引爬虫高效工作;写错了可能让整站从搜索中消失。核心做法可归纳为四点:严格放置于根目录,采用 UTF-8 无 BOM 编码;用完整路径前缀而非模糊通配;牢记最长匹配与 Allow 优先的判定原则;绝不把敏感数据的安全寄托于此。配置完成后,务必用官方工具测试,并定期复查文件是否有被篡改或误删的痕迹。