robots.txt配置详解:从基础语法到常见场景应用

📍 WDQWDWQD987AAAAA:216.73.216.147
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /63d63e8a207f.html
📄

robots.txt 是网站根目录下一个纯文本协议文件,主要用于告诉搜索引擎爬虫哪些内容可以抓取、哪些需要避开。正确配置这个文件,可以帮助你控制抓取预算,保护后台和私密页面,同时确保主要内容正常出现在搜索结果里。下面从语法开始,逐步拆解配置方法。

1. robots.txt 的基础语法与执行逻辑

文件本质上是一组规则记录,每条记录先声明爬虫对象,再列出具体的路径限制。爬虫会按顺序匹配规则,匹配遵循最长路径优先原则。

一个典型配置示例如下:

User-agent: *
Disallow: /system/
Allow: /system/public/

写文件时有几个容易忽略的细节:每行指令只能写一条,不能并行排列;路径大小写敏感,例如 /Admin/ 与 /admin/ 是不同目录;文件必须命名为 robots.txt 并置于域名根目录,即 https://你的域名/robots.txt 能直接访问。

2. 结合具体场景编写配置

不同站点的抓取诉求差异很大,以下三个场景基本覆盖了多数需求。

2.1 全站屏蔽所有搜索引擎

处于开发测试或未上线阶段,不想让任何爬虫收录时,可以这样写:

User-agent: *
Disallow: /

需要留意的是,这条规则只拦截抓取,不保证搜索结果绝对没有该站内容。若是外部网站已有链接指向你的页面,搜索引擎仍可能依据链接信息展示标题和摘要。测试完成后记得及时移除该规则。

2.2 只封禁敏感目录与重复内容

大多数运营中的站点无需全站屏蔽,只需排除购物车、用户中心、搜索结果页、临时文件等区域。例如:

User-agent: *
Disallow: /checkout/
Disallow: /member/
Disallow: /search?
Disallow: /temp/

配置后建议用爬虫模拟工具验证一遍,确认首页、栏目页、文章详情页没有被误伤。常见的失误是路径结尾漏写斜杠,导致目录匹配失败。

2.3 分爬虫定制抓取范围

当不同搜索引擎对你的网站抓取方式不同,或需要限制某个特定爬虫的深度时,可以单独声明规则块:

User-agent: Baiduspider
Allow: /

User-agent: Googlebot
Disallow: /statistics/

一个规则块只对应一个爬虫名称,多个块之间必须用空行分开。爬虫名称需要以官方标识为准,例如百度为 Baiduspider,谷歌为 Googlebot,必应则为 Bingbot。写错名称会导致规则不生效。

3. 验证与排查配置效果

配置完成后并不意味着万事大吉,还需要通过工具确认实际效果。推荐的做法有几种:在浏览器直接访问根目录下的 robots.txt 查看是否正常返回;使用搜索引擎站长平台提供的抓取测试工具模拟抓取,观察返回的抓取状态码;检查站点日志中对应爬虫的访问记录,确认禁止的路径是否仍有请求。

常见的排查点包括:文件是否上传到了正确位置;是否存在多条 User-agent 记录互相覆盖;Allow 与 Disallow 的路径是否包含通配符,例如使用 $ 匹配结尾时大小写是否一致。若某条规则迟迟不起作用,优先检查文件编码是否为 UTF-8 无 BOM 格式。

4. 维护中的注意事项与避坑建议

robots.txt 是公开文件,任何访客都能看到,因此绝不要在里面放置真实目录结构或敏感信息。它只是抓取建议,并非安全访问控制,真正需要保密的内容应配合登录验证和服务器权限做限制。

日常维护中建议做到:每次修改前备份原文件,方便回滚;改动后及时在搜索引擎站长工具中申请重新抓取;不要对 JS 和 CSS 文件设置 Disallow,否则可能干扰搜索引擎渲染页面,影响排名判断;定期清理无用的停止指令,保持文件精简。此外,如果站点是单页应用,注意区分路由和接口路径,避免误拦截正常页面数据。

5. 常见问题

5.1 robots.txt 里 Disallow 留空表示什么意思?

Disallow 后面不填内容,等同于允许爬虫抓取整个站点,与 Allow: / 的效果一致。通常用于某条规则块中,明确说明对指定爬虫不设限制,例如 User-agent: Bingbot
Disallow:
。

5.2 robots.txt 能阻止页面被收录吗?

不能完全阻止。它只是告知爬虫不要抓取,但若页面已被外部链接指向,搜索引擎仍可能根据链接信息将 URL 收录进索引,只是不会抓取内容。若要彻底防止收录,应配合使用 noindex 元标签或登录限制。

5.3 多处规则冲突时以哪条为准?

对于同一路径,Allow 和 Disallow 同时存在时,以路径最长的一条为准;若长度相同,则以 Allow 为准。不同爬虫的规则块互不影响,各爬虫只匹配自己对应的那段规则。

6. 结语

配置 robots.txt 并不复杂,关键在于理解指令语义并针对自身站点结构做合理规划。建议先梳理出需要屏蔽的目录清单,再动手编写规则,使用官方测试工具验证后正式上线。每季度复查一次文件内容,及时清理不再需要的限制,确保爬虫能高效触达真正有价值的页面。

图1 图2

nginx