Noindex 检测工具
一次最多检测 20 个网址,同时查 X-Robots-Tag 响应头和 <meta name="robots"> 标签,包括 none、按爬虫区分的规则和跳转链路。免注册,不留邮箱。
想知道整站的收录情况和技术问题?
查 noindex 只是技术 SEO 的一环。跑一次完整审计,把加载速度、canonical 标签、结构化数据、死链一并查清楚。
免费开始全站审计 arrow_forwardnoindex 藏在哪两个地方
搜索引擎读取收录指令的位置有两处,这个工具同时检查。
一、HTTP 响应头(X-Robots-Tag)
服务器在返回页面内容之前就发出的指令。除了网页,PDF、图片、接口返回同样适用,也常被用来对整段路由统一生效(例如 X-Robots-Tag: noindex, nofollow)。查看网页源代码是看不到它的——这正是它最难排查的原因。
Content-Type: text/html
X-Robots-Tag: noindex
二、HTML meta robots 标签
写在页面 <head> 里,告诉 Googlebot、Bingbot、百度蜘蛛这类爬虫不要收录当前页面。只对 HTML 文档有效。
<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 回答引用的信息源。
本页内容最近审阅于 。