do_not_disturb_on 收录状态与响应头诊断

Noindex 检测工具

一次最多检测 20 个网址,同时查 X-Robots-Tag 响应头和 <meta name="robots"> 标签,包括 none、按爬虫区分的规则和跳转链路。免注册,不留邮箱。

0 / 20
每行一个网址,1 到 20 个。响应头和 HTML 正文都会抓取。

noindex 藏在哪两个地方

搜索引擎读取收录指令的位置有两处,这个工具同时检查。

一、HTTP 响应头(X-Robots-Tag)

服务器在返回页面内容之前就发出的指令。除了网页,PDF、图片、接口返回同样适用,也常被用来对整段路由统一生效(例如 X-Robots-Tag: noindex, nofollow)。查看网页源代码是看不到它的——这正是它最难排查的原因。

HTTP/1.1 200 OK
Content-Type: text/html
X-Robots-Tag: noindex

二、HTML meta robots 标签

写在页面 <head> 里,告诉 Googlebot、Bingbot、百度蜘蛛这类爬虫不要收录当前页面。只对 HTML 文档有效。

<head>
  <meta name="robots" content="noindex, follow">
</head>

这条 noindex 到底是谁加的

知道页面被 noindex 了只是第一步。指令可能来自 CMS 的某个设置、SEO 插件、托管平台,或者服务器配置里的一行——而查看网页源代码只能看到写进 HTML 的那一类。如果上面的结果显示指令来自 HTTP 响应头,那么在后台里怎么找都是找不到的,直接从服务器和 CDN 那几行开始查。

有一个原因值得排在所有排查之前:测试环境的配置被带上了线。测试站通常会有意加上 noindex,一旦这份配置、主题或环境变量跟着发布一起推到生产,线上站就会悄无声息地掉出索引。如果掉排名的时间点和某次发布对得上,先查这里。

平台 写在哪 去哪里找
WordPress 标签 设置 → 阅读 → “建议搜索引擎不索引本站点”。这一个勾选框会让整站 noindex,也是 WordPress 站整体消失最常见的原因。
Yoast / Rank Math 标签 文章或分类编辑页的“高级”面板(“是否允许搜索引擎显示这篇文章”),以及针对归档页、标签页、作者页的全局规则——后者设置一次就再没人看过。
Shopify 标签 theme.liquid 和各模板文件,里面的条件判断会给站内搜索结果和筛选后的集合页加 noindex。店铺还处于密码保护状态时同样是 noindex。
Webflow 标签 单页看 Page Settings → SEO;整站看 Site Settings → SEO 里的“Disable subdomain indexing”,它管的是 .webflow.io 测试域名。
Wix / 微信小商店类建站工具 标签 页面级 SEO 面板里“不在搜索结果中显示此页面”的开关。
Next.js / Nuxt 两者皆可 标签看路由的 metadata 导出(robots: { index: false })或 head 配置;响应头看 next.config.js 的 headers() 规则或服务端中间件。
Vercel / Netlify 响应头 预览部署和分支部署会被平台自动加上 X-Robots-Tag: noindex。这是设计如此,只有当预览地址被人分享出去或误提交进 sitemap 时才是问题。
Nginx 响应头 server 或 location 块里的 add_header X-Robots-Tag。注意一个坑:location 块里的 add_header 会“覆盖”而不是“追加”从 server 块继承来的头,所以这条指令可能按路径时有时无。
Apache 响应头 .htaccess 或虚拟主机配置里的 Header set X-Robots-Tag,常常写在针对 PDF 的 FilesMatch 块里,而实际匹配范围比预期宽。
Cloudflare 响应头 Transform Rules → Modify Response Header,以及任何会改写响应的 Worker。这里加的响应头在源站是完全看不到的,所以查服务器永远查不出原因。

去掉指令之后,页面不会立刻回来——Google 得重新抓取一次才知道它没了。改完先用这个工具再测一遍,确认服务器确实不再返回这条指令(CDN 的缓存可能还会继续吐旧响应头一段时间),然后到 Search Console 里对重要页面手动请求编入索引。

robots 指令逐条说明

真正能让页面不被收录的只有两个值,其余的只影响页面在搜索结果里怎么展示,却经常被当成收录开关用。下面这些指令写在 meta 标签或 X-Robots-Tag 里都有效,检测结果中出现的会被单独标出。

noindex 阻断收录

页面不出现在搜索结果里。但页面仍会被抓取——不抓取就读不到这条指令。

none 阻断收录

noindex, nofollow 的简写。整个标签里没有 “noindex” 这个词,所以靠关键词匹配的工具会漏掉它。

nofollow 仅影响展示

不跟随本页上的链接。和页面本身收不收录没有关系。

noarchive 仅影响展示

不提供网页快照。页面排名不受影响。

nosnippet 仅影响展示

不显示文字摘要和视频预览,搜索结果里只剩标题和网址——通常会明显拉低点击率。

max-snippet:[n] 仅影响展示

限制摘要长度为 n 个字符。max-snippet:0 等同于 nosnippet,-1 表示不限制。

noimageindex 仅影响展示

页面上的图片不被收录,页面本身不受影响。

notranslate 仅影响展示

不向使用其他语言的用户提供这条结果的翻译。

unavailable_after:[日期] 阻断收录

到期后把页面从搜索结果中移除。本质上是一个定时的 noindex,因为带日期,往往在写下很久之后才悄悄生效。

noindex、nofollow、robots.txt Disallow 三者对照

这三个经常被混用,而且错得很有方向性:在 robots.txt 里禁掉一个页面,并不能把它从索引里去掉。被禁的页面爬虫根本不会去抓,页面上的 noindex 自然读不到,结果这个网址可能长期留在搜索结果里、只是没有描述文字。

noindex nofollow robots.txt Disallow
写在哪里 meta 标签或 HTTP 响应头 meta 标签、响应头,或链接的 rel 属性 robots.txt 文件
页面会被抓取吗 会——必须被抓取 不会
会出现在搜索结果吗 不会 可能会,但没有描述
页面上的链接被跟随吗 会,除非同时写了 nofollow 不会 不会——页面根本没被读取
消耗抓取预算吗 消耗 消耗 不消耗
什么时候用它 这个页面不该出现在搜索结果里 不想为页面上的链接背书 整个目录都不该被抓,且已经从索引里下架了

这个工具具体怎么检测,以及它查不到什么

每个网址请求一次,解析响应头和原始 HTML。指令从 X-Robots-Tag 响应头和文档 <head> 内的 meta robots 标签中读取;写在 body 里的 robots 标签会被忽略,这与搜索引擎的处理一致。同一域名下的 robots.txt 和 sitemap.xml 只抓一次,批量检测时复用。

  • User-Agent:SearchVitals-Bot/1.0。针对具名爬虫的指令会按 Google 的爬虫名匹配,所以写给 googlebot 的规则会被判定为生效。
  • 跳转:手动跟随,最多 3 跳。结论归属于最终网址,并展示完整链路——指令不会被算到错误的页面头上。
  • 超时:连接 4 秒,单个网址总计 6 秒。源站响应慢会明确报超时,而不是猜一个结果。
  • 并发:同一主机最多 3 个并发请求,避免触发对方限流后把验证页当成你的内容来解析。
  • 数量:单次最多 20 个网址。

最主要的局限:不执行 JavaScript。这个工具读的是服务器返回的 HTML,也就是爬虫第一轮拿到的东西。如果 noindex 是由前端 JavaScript 动态写进 DOM 的,这里查不出来——反过来说,如果 Search Console 报了 noindex 而你在源代码里怎么都找不到,这往往就是原因。证书校验是开启的,所以证书有问题的站会明确报错,而不是被静默抓取。

常见问题

meta 标签里的 noindex 和 HTTP 响应头的 X-Robots-Tag,有什么区别?

expand_more

一个写在 HTML 里,一个写在响应头里。 只对 HTML 文档有效;X-Robots-Tag 是服务器返回的响应头,除了网页,PDF、图片、接口返回都能用它控制。这个工具两处都查——因为服务器或 CDN 加的响应头,在你查看网页源代码时是看不到的。

页面里没有 noindex 标签,为什么还是掉出了索引?

expand_more

最常见的原因是响应头里有 X-Robots-Tag: noindex,由 Nginx、Apache 或者 Cloudflare 这类 CDN 中间层加上,源代码里查不到。另一种情况是 robots.txt 把这个路径禁了:爬虫根本抓不到页面,页面上的 noindex 自然也读不到,结果反而是它留在索引里、只是没有摘要——和你想要的正好相反。

content="none" 和 noindex 是一回事吗?

expand_more

是。Google 把 content="none" 当作 noindex, nofollow 处理。它容易被漏掉,是因为整个标签里根本没出现 "noindex" 这个词——凡是靠搜索关键词判断的工具都会把这种页面报成"可收录"。这个工具是逐条解析指令的,所以 none 不会漏。

去掉 noindex 之后,多久能重新收录?

expand_more

没有固定周期。Google 必须重新抓取一次才能发现指令已经去掉了,所以取决于这个页面被抓取的频率——更新频繁的站可能几天,冷门页面可能要几周。重要页面可以到 Search Console 里手动请求编入索引,通常会快一些。

noindex 和 nofollow 有什么区别?

expand_more

noindex 管的是"这个页面不要出现在搜索结果里",nofollow 管的是"不要跟随这个页面上的链接"。两者互不影响。常见的组合是 noindex, follow——页面本身不进搜索结果,但权重仍然沿着链接往下传,大多数只想隐藏页面的场景用的都是这个。

该用 noindex 还是 robots.txt 的 Disallow?

expand_more

想让页面不出现在搜索结果里,用 noindex;想让爬虫根本不要来抓,用 robots.txt。同一个网址上不要两个一起用:被 Disallow 的页面爬虫不会抓取,页面里的 noindex 就永远读不到,结果是它继续留在索引里、只是没有描述。如果页面已经被收录了、你想让它下架,就得先允许抓取,再用 noindex。

Search Console 报"已提交但被标记为 noindex"是什么意思?

expand_more

这个网址同时出现在你的 sitemap 里,又带着 noindex——等于一边请 Google 来收录,一边告诉它别收录。要么去掉 noindex,要么把这个网址从 sitemap 里移走。这个工具会直接把这种矛盾标出来。

分页、归档、标签页需要加 noindex 吗?

expand_more

通常不需要,至少不该按页面类型一刀切。Google 处理分页的能力没问题,而给归档页加 noindex 反而会切断通往内容页的抓取路径。判断标准应该是"这个页面对搜索用户有没有独立价值"——站内搜索结果页、筛选组合出来的空页面、测试环境的重复页,这些才该加。

noindex 会浪费抓取预算吗?

expand_more

会。加了 noindex 的页面照样要被抓取——不抓取就读不到这条指令。站点规模大的时候,这就是实打实花在永远不会有排名的页面上的预算。如果整个目录都不该被抓,robots.txt 才是对的工具,但前提是这些页面已经从索引里下架了。

noindex 页面上的链接还传递权重吗?

expand_more

在页面还在被抓取的期间,如果指令是 noindex, follow,是传递的。但 Google 说过,一个长期保持 noindex 的页面,它会逐渐当作 nofollow 处理,因为抓取频率会越来越低。所以不要把 noindex 页面当成内链结构里的长期节点。

屏蔽 AI 爬虫会影响页面被收录吗?

expand_more

不会。收录由 Googlebot 和你的 robots 指令决定。屏蔽 GPTBot 或 ClaudeBot 只是拒绝内容被拿去训练模型,既不影响 Google 收录,也不影响 ChatGPT 或 Claude 能不能引用你——尽管后一点常被说反。决定引用的是检索类爬虫:OAI-SearchBot、ChatGPT-User、Claude-SearchBot、Claude-User、PerplexityBot。Google-Extended 是个例外,这一个 token 同时管着 Gemini 的训练和 grounding,两者拆不开。想让内容真正被引用,可以看如何成为 AI 回答引用的信息源

本页内容最近审阅于