robots.txt、robots meta 与 X-Robots-Tag 怎么选?抓取和索引控制实操表
依据 Google Search Central 官方文档,解释 robots.txt、robots meta 和 X-Robots-Tag 的职责边界,并给出 HTML、PDF、筛选页和下线页的配置与验证流程。
先说结论:robots.txt 管“能不能抓”,robots meta 和 X-Robots-Tag 管“抓到后能不能索引或展示”。 想让搜索引擎执行 noindex,就必须让它能够访问页面或资源并读到该指令;一边在 robots.txt 禁止抓取、一边在页面里写 noindex,往往会让 noindex 无法被发现。
三种控制方式各自解决什么问题
robots.txt 位于站点根目录,主要用来管理爬虫访问路径和抓取负载,不是可靠的下架工具。robots meta 放在 HTML 页面中,适合控制网页的 index、follow、snippet 等行为。X-Robots-Tag 放在 HTTP 响应头中,既可用于 HTML,也特别适合 PDF、图片或其他无法写 meta 标签的文件。
| 场景 | 推荐控制 | 核验方法 |
|---|---|---|
| 后台、站内搜索或大量参数页 | robots.txt 控制抓取,必要时另做访问权限 | 检查根目录规则与实际状态码 |
| 可访问但不希望进入索引的 HTML | robots meta: noindex | 抓取 HTML head 并确认未被 robots.txt 阻挡 |
| PDF、下载文件、图片等非 HTML | X-Robots-Tag: noindex | 查看响应头 |
| 永久迁移的旧 URL | 301 到最相关新 URL | 检查 Location、canonical 和落地页 200 |
| 永久删除且无替代内容 | 404 或 410 | 确认站内链接与 Sitemap 已移除 |
最常见错误是“禁抓加 noindex”
Google 官方文档明确提醒:页面被 robots.txt 禁止抓取后,爬虫无法读取其中的 robots meta,也无法看到响应中的索引指令。若外部仍有链接,URL 甚至可能只以地址形式出现在结果中。需要移除索引时,应允许抓取并返回 noindex,或设置登录权限;等搜索引擎处理后,再决定是否限制抓取。
新站可结合IndexNow、Sitemap 与 URL 检查工作流确认发现链路;商品结构化数据则应按ShippingService 结构化数据部署清单验证可见内容、响应头和 Schema 一致。
同一页面不要发出冲突指令
如果 HTML 同时有多个 robots 标签,或响应头又发送 X-Robots-Tag,搜索引擎通常采用更严格的组合。排查时不能只看页面源代码,还要检查最终响应头、重定向链和 CDN 缓存。模板、应用层和 Nginx 都可能各自添加指令,导致后台显示“允许索引”,线上却仍是 noindex。
上线后按四步验收
先用浏览器或 curl 查看最终状态码和响应头;再读取 HTML head;随后确认 robots.txt 没有挡住需要读取 noindex 的 URL;最后检查 Sitemap 是否只保留规范、可索引的 200 页面。对 PDF 等文件,必须以响应头为准。变更后记录时间并等待真实抓取,不能把“已配置”当作“已收录”。
常见问题
robots.txt 能保证页面不被搜索到吗?
不能。它主要限制抓取,外部链接仍可能让 URL 被发现。需要阻止索引时应使用 noindex、访问权限或正确的删除状态。
PDF 没有 HTML head,怎么设置 noindex?
在 PDF 的 HTTP 响应中发送 X-Robots-Tag: noindex,并确保爬虫可以访问该文件以读取响应头。
Sitemap 里可以放 noindex 页面吗?
不建议。Sitemap 应表达希望搜索引擎发现和索引的规范 URL;把 noindex 页面放进去会发出冲突信号并浪费抓取资源。
核验来源
本文依据 2026 年 9 月 5 日可访问的 Google Search Central 官方资料整理。不同搜索引擎执行细节可能不同,正式变更前应在测试环境验证响应头、页面标签和抓取规则。