一、robots.txt 是什么
robots.txt 是放在网站根目录(https://yourdomain.com/robots.txt)的纯文本规则文件,用来告诉爬虫哪些路径可以抓、哪些不能抓。
关键边界:它控制的是 抓取(crawling),不是 索引(indexing)。页面即使被 Disallow,如果外部有链接,仍可能出现在搜索结果中。
Google 官方明确说明:如果要阻止页面出现在搜索结果,应使用 noindex 或权限控制,而不是只靠 robots.txt。参考:Google Search Central:robots.txt 的作用与限制。
二、文件放哪、怎么生效
- 文件名必须是小写:
robots.txt(大小写敏感) - 必须放在根目录:
https://yourdomain.com/robots.txt - 每个子域名要单独配置(如
blog.example.com需要自己的 robots.txt) - 搜索引擎会缓存文件,修改后通常几小时内生效
最小可用模板(3 行即可上线)
User-agent: *
Disallow:
Sitemap: https://yourdomain.com/sitemap.xml
这表示:允许所有爬虫访问,并明确给出站点地图地址。
三、核心指令语法教程(5 个)
| 指令 | 作用 | 示例 |
|---|---|---|
User-agent |
指定规则作用对象 | User-agent: Googlebot |
Disallow |
禁止抓取路径 | Disallow: /admin/ |
Allow |
在大范围禁止中局部放行 | Allow: /admin/public/ |
Sitemap |
声明站点地图地址 | Sitemap: https://example.com/sitemap.xml |
Crawl-delay |
抓取间隔(仅部分引擎支持) | Crawl-delay: 10 |
语法注意:
- 大小写敏感:
/Photo不等于/photo - 路径范围是前缀匹配:
Disallow: /Photo也会拦截/Photography/ - Google 不支持
Crawl-delay,但可在 Google Search Console 中设置抓取频率 - 支持通配符
*和结束符$(非官方但主流引擎支持)
四、三套可直接改的实战模板
模板 A:内容站(推荐起步)
User-agent: *
Allow: /
Disallow: /search
Disallow: /wp-admin/
Sitemap: https://yourdomain.com/sitemap.xml
模板 B:电商站(减少参数页抓取浪费)
User-agent: *
Allow: /
Disallow: /cart/
Disallow: /checkout/
Disallow: /*?sort=
Disallow: /*?filter=
Sitemap: https://yourdomain.com/sitemap.xml
模板 C:AI 爬虫治理(按目标分层)
User-agent: *
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Googlebot
Allow: /
Sitemap: https://yourdomain.com/sitemap.xml
决策原则:如果你希望内容出现在 AI 生成的答案中,可保留 Google-Extended、PerplexityBot 等检索型爬虫;如果你要保护内容资产,应收紧训练型爬虫。
五、上线前检测与验证流程
你也可以配合 Google Search Console robots 报告 做二次验证。
回归检查项:
- 核心页面是否可抓取
- Sitemap 是否可访问(200 状态)
- CSS/JS 渲染资源未被误拦
- 发布后 7-14 天跟踪抓取与索引趋势
六、真实案例:配错会怎样
案例 1:规则被第三方悄悄改动,出现”慢性流量流失”
Search Engine Land 披露过一个真实案例:第三方/CMS 改动 robots 规则,叠加大小写问题,导致关键 URL 逐步掉索引。不是”一天暴跌”,而是几周到几个月慢慢掉,非常危险,因为难以第一时间发现。来源:Search Engine Land 公开复盘。
案例 2:CDN 污染 robots 响应,修复后显著恢复
公开案例显示:服务器/CDN 注入污染规则后,索引与曝光大幅下滑。清理后 3 周内索引 URL 增长 +260%、展示量 +261%、CTR 从 0.4% 提升到 1.2%。来源:Robots 错误修复案例。
七、他站 robots.txt 截图
八、7 个最常见错误与修复
- 把
Disallow: /带上生产:全站封禁,立即去索引。修复:用检测工具先验再发。 - 误拦 CSS/JS 渲染资源(如
/_next/):搜索引擎无法完整渲染页面,收录下降。修复:放行渲染路径。 - 屏蔽 sitemap 路径:新页面发现效率大幅降低。修复:确保 Sitemap 指令正确。
- 把 Disallow 当 noindex 用:Disallowed URL 仍可能因外链而收录。修复:用 noindex 控制索引。
- 路径大小写/斜杠范围写错:
/admin不等于/admin/,前者可能误拦更多路径。修复:使用正确路径。 - 整目录一刀切屏蔽:
Disallow: /blog/会导致所有文章不可抓。修复:只屏蔽特定子路径。 - 没有变更监控:规则被改后不知道,慢性掉索引。修复:设置每日 diff 或告警。
九、FAQ
Q1:robots.txt 有法律约束力吗?
通常没有强制法律效力,它更像行业约定。合规爬虫(Googlebot、Bingbot 等)会遵守,恶意爬虫可能不遵守。
Q2:robots.txt 现在还有效吗?
有效,而且在 AI 爬虫时代更重要。它是抓取治理第一层,但必须与 noindex、权限控制配合使用。
Q3:”Blocked by robots.txt”是什么意思?
表示该 URL 被策略阻止抓取。不等于绝对不被索引——如果该 URL 在其他网站有外链,仍可能出现在搜索结果中。
Q4:一个合格的 robots.txt 最少该有什么?
至少要有 User-agent 规则、必要 Disallow,以及正确的 Sitemap 声明。
Q5:如何修复 “blocked by robots.txt” 错误?
定位误拦规则 → 调整路径范围 → 用工具复测 → Google Search Console 再确认 → 发布后 7-14 天观察趋势。
Q6:robots.txt 会导致安全漏洞吗?
它本身不是漏洞,但可能暴露路径命名。敏感资源不能用 robots 来保护,应使用鉴权或服务器级别访问控制。
Q7:robots.txt 文件里应该写什么内容?
只写爬虫规则指令(User-agent / Disallow / Allow / Sitemap),不要放 HTML 代码、注释性营销文字或内部路径信息。
参考链接
- Google 官方:robots.txt 的作用与边界
- Moz:robots.txt 语法与最佳实践
- Cloudflare:robots 文件与 bot 行为解释
- Yoast:robots.txt 深度指南
- Search Engine Land:第三方规则漂移导致流量流失案例
- Robots 错误修复后恢复数据案例