排查了三天,发现罪魁祸首竟然是早就不用的旧页面
流量掉得莫名其妙?内容没少发,排名却一天比一天靠后。别急着重做外链、改标题,先打开你最火那几个页面的源代码——Ctrl+U,搜一下 noindex。
我上周就栽在这上面:一个本地生活号,三周没更新,流量却掉了快一半。最后在一条半年前下线的“优惠活动页”里,一眼看见 <meta name="robots" content="noindex">。它早该404了,结果还挂着,还被首页链接着,还被搜索引擎当真了。
为什么 noindex 会变成你最大的流量杀手
noindex 本身不是坏人。屏蔽测试页、后台页、临时活动页,完全合理。
但它最容易被当成“快捷删除键”——页面不想管了?加个 noindex 就完事。
CMS 插件也爱瞎热心:WordPress 某些 SEO 插件升级后,默认给所有新页面打上 noindex;网站迁移时,旧站的 robots 设置一并复制过来,没人检查。
更麻烦的是连锁反应:搜索引擎爬到你首页,顺着内链点进一个 noindex 页面,它不会只跳过这一页,还会怀疑:“这个目录下的内容都不值得看?”——接着降低整个栏目甚至子目录的抓取频率。这不是丢一个页面,是悄悄关掉了一扇门。
3 种最隐蔽的 noindex 误用场景
1. 插件或主题的“自动关怀”
一个本地家政平台找我帮忙,说城市列表页全没了。我们翻遍模板、数据库、重定向规则,都没线索。最后用爬虫扫了一遍,发现所有“北京保洁”“深圳收纳”这类动态生成的城市页,都被插件悄悄加了 noindex。
原因?插件有个“智能去重”开关,把带参数的 URL 当成重复内容处理了。而这个开关,是在某次插件更新后默认开启的——你根本不会收到提示。
2. 开发测试环境遗留的“僵尸标签”
一家资讯站上线新版后,首页和热点栏目突然掉出搜索结果。开发说“代码没问题”,运维说“服务器正常”。我让他们打开几个刚上线的栏目页,右键查看源代码……里面赫然躺着 noindex。
真相是:他们在 staging 环境测试时,为防被收录,批量加了 noindex。上线时只同步了文章数据,忘了清理这些“测试签名”。
如果你的网站最近做过改版、换域名、或从测试环境上线,一定要重点查模板文件、header.php、或者 CMS 的全局头部设置。
3. 第三方代码或 CDN 的“隐形指令”
有些 noindex 根本不在 HTML 源码里。比如 A/B 测试工具、热力图插件、甚至某些 CDN 缓存策略,会在页面加载完成后,用 JavaScript 动态往 <head> 里塞一个 noindex 标签。
你用 Ctrl+U 看不到它,但 Google 能看到。要验证,得打开浏览器开发者工具(F12),等页面完全加载后,在 Console 里输入:
document.querySelector('meta[name="robots"]')?.getAttribute('content')
如果返回 noindex,问题就出在 JS 层。
如何系统化排查你的网站有没有 noindex 误用
别一页页手动查。来三步,够用、不绕弯:
第一关:用爬虫扫一遍全站
打开 Screaming Frog(免费版就够),输入首页网址 → 设置爬取深度为 5 → 开始爬。跑完后点“Response Codes” → “Meta Robots” → 筛选 noindex。你会立刻看到所有被标了“不准进”的页面。
第二关:去 Search Console 对照看
进 Google Search Console → 左侧菜单点“页面索引” → 右上角筛选器选“已排除” → 再点“页面未索引(noindex)”。这里列出的是 Google 实际抓到并认定为 noindex 的页面。和爬虫结果一对比,多出来的,说明爬虫没爬到;少出来的,说明 Google 抓到了但你本地没发现。
第三关:盯紧 JS 渲染的页面
如果你用 Vue/React 做的 SPA,或者用了大量动态加载内容,记得在 Screaming Frog 里勾选 “Render JavaScript”。或者更直接:打开几个关键页面(比如分类页、详情页),按 F12 → 切到 Elements 标签页 → 在 <head> 里手动找 meta[name="robots"]。
修复 noindex 误用的 4 步清单
找到问题只是开始。修得干净,才不算白忙。
步骤 1:删掉所有不该存在的 noindex
优先查 CMS 后台的页面设置(比如 WordPress 的 Yoast 或 Rank Math 面板)、主题 header 文件、全局模板。如果是插件加的,先停用插件,再逐个检查页面是否还残留标签。注意:有些 CMS 会把 noindex 存在数据库字段里,得进 phpMyAdmin 或 WP-CLI 批量清理。
步骤 2:告诉 Google “我改好了”
进 Search Console → “索引覆盖率” → “请求索引” → 把修复好的 URL 一条条或批量粘进去。Google 不会自己刷新记忆,你得喊一声。
步骤 3:顺手清一清 sitemap
打开你的 sitemap.xml,确认里面没有 still-noindex 的页面。如果有,要么从 sitemap 里删掉,要么先把页面的 noindex 去掉——别让 Google 看见“一边请我收,一边拦我进”。
步骤 4:设个提醒,别让它再犯
如果你用 Ahrefs 或 Semrush,打开 Site Audit,每周跑一次,把 “noindex tag present” 加进监控项;如果不用付费工具,就在日历里设个每月提醒:打开 Screaming Frog,爬 50 个核心页面,搜一遍 noindex。
一个今天就能执行的具体操作步骤
今天下班前,花 12 分钟做完这件事:
- 打开 Google Search Console → 进入“页面索引” → 筛选“已排除”里的“页面未索引(noindex)”
- 把所有 URL 全选复制,粘贴到 Excel 或记事本里
- 打开 Screaming Frog(没装就现在下个免费版)→ 粘贴这些 URL → 点“Start”
- 等爬完,看“Meta Robots”列,标红的就是真·noindex 页面
- 如果发现超过 5 个是误加的,立刻去你 CMS 后台搜索
noindex,或打开主题 header.php 文件,Ctrl+F 查关键词 - 删掉、保存、再回 Search Console,把这几个 URL 批量提交“请求索引”
做完,关电脑。今晚你可以睡踏实一点——因为你知道,至少有一颗埋了很久的雷,今天被你亲手拆了。