Google SEO 进阶

robots.txt 配置:允许 / 禁止规则、常见错误与测试方法

robots.txt 管的是 Google 能不能抓取你的页面,不管 Google 收不收录、排不排名。一个符号写错就可能让整个站点从搜索结果消失。反直觉...

robots.txt:管抓取不管索引——写错一个符号全站消失robots.txt: controls crawling, not indexing — one typo removes the whole site 反直觉:Disallow 阻止抓取 ≠ 阻止索引——有外链指向的页面仍会出现在 SERPCounter-intuitive: Disallow blocks crawling, not indexing — linked URLs still appear in SERP 正确写法:该阻止的阻止Correct: block what should be blocked Disallow: /admin/ · Disallow: /cart/Disallow: /admin/ · Disallow: /cart/ Disallow: /*?sort= · Disallow: /*?filter=Disallow: /*?sort= · Disallow: /*?filter= Sitemap: https://domain.com/sitemap.xmlSitemap: https://domain.com/sitemap.xml 用 GSC robots 测试工具验证每条规则Verify each rule with GSC robots tester 正确写法:该允许的允许Correct: allow what should be indexed 产品页、文章页、分类页不写 DisallowProduct/article/category pages: no Disallow Allow 写法用于覆盖上级 DisallowAllow overrides parent Disallow User-agent: * 表示对所有爬虫生效User-agent: * applies to all crawlers 默认未声明的路径 = 允许抓取Undisallowed paths = crawlable by default 常见错误 1:Disallow: / 阻止全站Mistake 1: Disallow: / blocks entire site 开发环境配置忘了删,上线后全站不被抓取Dev config leaked to production, whole site blocked 发现信号:GSC 覆盖率「已抓取未索引」暴涨Signal: GSC coverage “Crawled – not indexed” spikes 修复:删除 Disallow: /,用 URL 检查工具重新提交Fix: remove Disallow: /, resubmit via URL inspection 恢复时间:1 至 3 天重新抓取,1 至 2 周恢复排名Recovery: 1-3 days recrawl, 1-2 weeks ranking restored 常见错误 2:用 robots.txt 阻止索引Mistake 2: using robots.txt to block indexing robots.txt 阻止抓取,但 URL 仍会出现在 SERProbots.txt blocks crawling, but URL still shows in SERP SERP 只显示 URL,无标题无描述——用户体验极差SERP shows bare URL, no title/description — bad UX 正确做法:用 noindex meta 标签阻止索引Correct: use noindex meta tag to block indexing 注意:noindex 需要 Google 能抓取页面才能生效Note: noindex requires crawlable page to take effect 测试工具:Google Search Console robots.txt 测试工具 + 浏览器直接访问 /robots.txtTools: GSC robots.txt tester + browser direct access to /robots.txt 每次改完 robots.txt 必须用工具验证:输入目标 URL,确认规则是 Allow 还是 DisallowAfter every change: input target URL in tester to confirm Allow/Disallow status
robots.txt 正确写法、两大常见错误与测试工具

robots.txt 配置:允许 / 禁止规则、常见错误与测试方法

结论先行: robots.txt 管的是 Google 能不能抓取你的页面,不管 Google 收不收录、排不排名。一个符号写错就可能让整个站点从搜索结果消失。反直觉判断:Disallow 阻止抓取不等于阻止索引——如果有外链指向被阻止的 URL,Google 不抓取内容也会把 URL 显示在 SERP 里,只显示一串光秃秃的链接没有标题和描述。正确做法是用 noindex meta 标签阻止索引,而不是用 robots.txt。常见的两个致命错误:开发环境的 Disallow: / 忘了删就上线;用 robots.txt 想阻止某个页面被索引,结果它还是出现在搜索结果里。每次改完 robots.txt 必须用 GSC 测试工具验证。

一、robots.txt 到底管什么、不管什么

robots.txt 是放在网站根目录的一个纯文本文件,告诉搜索引擎爬虫:哪些路径可以来抓,哪些不要来。它是一个君子协议——守规矩的爬虫(Googlebot、Bingbot)会遵守,不守规矩的爬虫(垃圾采集器)根本不读这个文件。

最重要的一个认知:robots.txt 控制的是「抓取」,不是「索引」。这两件事经常被混淆。如果你 Disallow 了某个路径,Googlebot 不会来抓这个路径下的页面,但如果有外链指向这些 URL,Google 依然知道这些 URL 存在,会把 URL 本身显示在搜索结果里——只是没有标题、没有描述、没有内容摘要,就是一串光秃秃的链接。

认知误区 实际情况 后果
Disallow 了就不会出现在 SERP 有外链的 URL 仍会出现在 SERP 光秃秃 URL,无标题无描述
robots.txt 能阻止页面被索引 不能,要阻止索引用 noindex 页面还是会出现在搜索结果
robots.txt 能阻止竞争对手看 任何人都能访问 /robots.txt 反而是公开信息
robots.txt 里的规则越多越好 写错一条全站消失 配置必须最小化
robots.txt 能保护敏感页面 君子协议,恶意爬虫不遵守 敏感页面要靠密码保护

和其他 SEO 模块的关系:robots.txt 是 Google SEO 技术底座的最底层配置,和 XML Sitemap 优化配合使用——在 robots.txt 末尾声明 Sitemap 位置,Google 通过 robots.txt 发现 Sitemap。和 技术 SEO 审计清单的关系:robots.txt 是抓取象限的第 1 项检查。

二、规则语法:User-agent、Disallow、Allow、Sitemap

robots.txt 的语法很简单,四个核心指令。但简单不代表不会写错——一个斜杠的方向、一个星号的位置,都会改变规则含义。

指令 写法示例 作用 注意事项
User-agent User-agent: * 指定规则对哪个爬虫生效 * 表示所有爬虫,必须放在规则组第一行
Disallow Disallow: /admin/ 阻止抓取该路径下所有页面 斜杠结尾表示整个目录
Allow Allow: /admin/public/ 允许抓取被上级 Disallow 覆盖的子路径 用于精细覆盖,不是所有爬虫都支持
Sitemap Sitemap: https://… 声明 Sitemap 位置 放在文件末尾,独立于规则组
通配符 * Disallow: /*?sort= 匹配任意字符序列 用于阻止带参数的 URL
结尾 $ Disallow: /test.html$ 精确匹配以该字符串结尾的 URL 用于精确阻止单个文件

一个标准的 B2B 站点 robots.txt 应该长什么样?底部是核心配置:User-agent: * 开头,Disallow 阻止 admin、cart、checkout 等功能性路径,阻止带参数的筛选和排序 URL,末尾声明 Sitemap 位置。产品页、文章页、分类页不写任何规则——默认就是允许抓取。

场景示例一:一个电商 B2B 站点的 robots.txt 写了 Disallow: /products/,本意是阻止抓取产品列表页的分页版本,结果把所有产品页都阻止了。三周后发现 Google 搜索品牌词,SERP 里只显示首页和关于我们页,所有产品页都不见了。修复方法:把规则改成 Disallow: /products/?page=,只阻止带分页参数的 URL,不阻止 /products/ 本身。用 GSC robots 测试工具逐条验证后再上线。

三、两大致命错误:全站阻止和用错工具

robots.txt 的错误有大有小,但有两个错误是致命的——一旦犯了,整个站点从搜索结果消失。

错误类型 症状 发现信号 修复方法 恢复时间
Disallow: / 全站阻止 Google 不抓取任何页面 GSC 覆盖率「已抓取未索引」暴涨到全站 删除 Disallow: /,保留必要规则 1 至 3 天重新抓取,1 至 2 周排名恢复
用 robots.txt 阻止索引 页面出现在 SERP 但无标题 SERP 显示光秃秃 URL,无摘要 改用 noindex meta 标签 2 至 4 周从 SERP 消失
规则路径写错 该阻止的没阻止,该允许的被阻止 GSC 抓取统计异常 用测试工具逐条验证 改完即生效
忘记声明 Sitemap Google 发现 Sitemap 速度慢 GSC Sitemap 报告显示「未提交」 在 robots.txt 末尾加 Sitemap: 指令 下次抓取时发现

反直觉判断在这里:很多人以为我不想让某个页面出现在搜索结果里,就写 Disallow。这是错的。Disallow 只是不让 Google 抓内容,Google 依然知道这个 URL 存在——因为它从外链、从 Sitemap、从历史抓取记录里知道。结果是:SERP 里出现一串光秃秃的 URL,没有标题、没有描述、没有摘要,用户点进去还是 403 或空白页,体验极差,还浪费了展示机会。

正确做法是:如果你不想让某个页面被索引,给那个页面加 noindex meta 标签(<meta name=”robots” content=”noindex”>),同时不要用 robots.txt 阻止它——因为 noindex 需要 Google 能抓取到这个页面才能生效。如果你既 Disallow 了又加了 noindex,Google 抓不到页面就读不到 noindex 标签,索引不了也阻止不了,两头落空。

场景示例二:一个 B2B 站点的报价单下载页(/pricing/quote-request/)不想被 Google 索引,因为它是表单页不需要排关键词。运营团队写了 Disallow: /pricing/quote-request/。结果三个月后,这个 URL 出现在 SERP 里——搜索「quote request」时,显示一串光秃秃的 URL 没有标题。因为有几个行业目录站外链指向了这个页面。修复方法:删掉 robots.txt 里的 Disallow 行,改成在页面 head 里加 noindex meta 标签。两周后这个 URL 从 SERP 消失。

四、测试方法与上线流程

robots.txt 是改完就生效的——没有缓存期,Google 下次来就会读新的。这意味着写错了立刻出事。所以每次修改必须验证。

步骤 动作 工具 通过标准
1. 本地编辑 修改 robots.txt 内容 文本编辑器 语法正确,无多余空格
2. 浏览器访问验证 直接访问 https://域名/robots.txt 浏览器 返回 200,内容是纯文本
3. GSC 测试工具验证 输入目标 URL,检查是否被允许 GSC robots 测试工具 重要页面全部 Allow
4. 上线后监控 观察 GSC 抓取统计和覆盖率报告 GSC 抓取量不异常下降
5. 改版后复查 每次改版后重新检查 robots.txt GSC + 浏览器 新路径未被误阻止

检查清单:每次改完 robots.txt,至少测试以下 5 个 URL:首页(/)、产品列表页、产品详情页、博客文章页、联系我们页。确认这 5 个全部是 Allow 状态。如果其中任何一个显示 Disallow,说明规则写错了——最常见的错误是 Disallow: / 后面少了个空格、或者 Disallow: /products 写成了 Disallow: /products/ 但你想阻止的是 /products/spec/ 子目录。

和 站点重构与换域名的关系:换域名时,旧域名的 robots.txt 不能 Disallow 全站——因为旧域名上的 301 重定向需要 Googlebot 来抓取才能传递权重。如果旧域名 robots.txt 写了 Disallow: /,Google 不抓旧页面就读不到 301 指令,权重传递断了。正确做法是旧域名 robots.txt 保持允许抓取,只阻止 admin 等功能性路径。

FAQ 常见问题

robots.txt 和 noindex 有什么区别?
robots.txt 控制的是「Google 能不能抓取你的页面」,noindex 控制的是「Google 收不收录这个页面」。如果你不想让页面出现在搜索结果里,必须用 noindex,不能用 robots.txt。因为 Disallow 只是不让 Google 抓内容,如果有外链指向该 URL,Google 依然会把 URL 显示在 SERP 里,只是没有标题和描述。注意:noindex 需要 Google 能抓取页面才能生效,不能同时用 robots.txt Disallow。
Disallow: / 是什么意思?为什么危险?
Disallow: / 表示阻止 Google 抓取整个站点的所有页面。这通常是开发环境为了不被收录加的,上线后忘了删。一旦生效,Google 不会来抓任何页面,所有页面从搜索结果消失。发现信号是 GSC 覆盖率报告里「已抓取——当前未编入索引」数量暴涨。修复方法是删除这一行,用 URL 检查工具手动提交重要页面,1 至 3 天重新抓取,1 至 2 周排名恢复。
怎么测试 robots.txt 写得对不对?
两个方法:第一,浏览器直接访问 https://你的域名/robots.txt,确认返回 200 且内容是纯文本。第二,用 Google Search Console 的 robots.txt 测试工具,输入你想检查的具体 URL,工具会告诉你这个 URL 是 Allow 还是 Disallow,以及是哪条规则导致的。每次改完至少测试首页、产品页、文章页、联系页 4 个 URL,确认全部 Allow。
robots.txt 能保护敏感页面不被竞争对手看到吗?
不能。robots.txt 是公开文件,任何人都可以在浏览器里访问 /robots.txt 查看。它只是请求守规矩的爬虫不要来抓,不是访问控制。敏感页面(后台、客户数据、内部文档)必须用密码保护(HTTP Basic Auth、登录验证),不能靠 robots.txt。robots.txt 能做的是减少 Googlebot 对功能性页面(admin、cart、checkout)的无效抓取。
换域名后旧域名的 robots.txt 应该怎么配?
旧域名的 robots.txt 不能 Disallow 全站。因为旧域名上的 301 重定向需要 Googlebot 来抓取才能传递权重——如果 Disallow 了,Google 不抓旧页面就读不到 301 指令,权重传递断了。正确做法:旧域名 robots.txt 保持允许抓取所有内容(只 Disallow admin 等功能性路径),让 Googlebot 正常来抓,每个旧页面都返回 301 到新域名。新域名 robots.txt 按正常配置即可。
Allow 指令什么时候用?
Allow 用于精细覆盖上级 Disallow 规则。比如你写了 Disallow: /products/ 阻止整个产品目录被抓取,但其中 /products/public/ 这个子目录你想让 Google 抓。这时加一行 Allow: /products/public/。Allow 优先级高于同等级的 Disallow。注意:Allow 不是所有爬虫都支持,Googlebot 支持,但一些小众爬虫可能不识别。大多数中小站点其实不需要用 Allow,直接写精确的 Disallow 路径即可。

写在最后

robots.txt 是 SEO 里最容易出大事故的小文件。它只有几行字,但一个斜杠写错,整个站点从搜索结果消失,恢复要一两周。记住两个核心原则:robots.txt 管抓取不管索引,想阻止索引用 noindex;改完必须用 GSC 测试工具验证。

落地三步:本周用浏览器访问你的 robots.txt,对照本文的标准配置检查有没有 Disallow: / 或过度阻止的规则;下周用 GSC robots 测试工具逐条验证重要页面全部 Allow,在文件末尾加上 Sitemap 声明;之后每次改版或调整 URL 结构后,第一时间复查 robots.txt,确认新路径没有被误阻止。

一句可以记住的话:robots.txt 是给 Google 写的请假条,不是门锁——写多了容易把自己关在门外,想藏起来的页面得用 noindex,不能靠 Disallow。

崔立姝
崔立姝 环形山专家

交付 · 运营负责人 · 环形山交付与运营团队

环形山(Crater)交付 & 运营负责人。负责 SEO 落地执行、社媒渠道运营与内容分发,擅长用数据拆解增长动作。操盘多个出海项目的落地交付,关注 Facebook、Twitter、TikTok、YouTube 与 SEO/GEO 的协同打法。

SEO 落地内容运营案例拆解
1106篇分享
84篇知识库