为什么这个开关容易被忽略
noindex 是页面级指令,通常写在 HTML 的 meta 标签里,也可以由服务器通过 HTTP 响应头 X-Robots-Tag 下发。它和 robots.txt 的分工不一样:robots.txt 说的是“别来抓”,noindex 说的是“可以抓,但别放进结果里”。很多站点出问题,不是因为没写,而是因为写了之后忘了撤。
更麻烦的是,noindex 不像 404 那样会立刻暴露。页面照样能打开,用户看不出异常,只有从抓取和收录的角度才会感到不对劲。
常见的误加场景
- 测试模板残留。预发环境整站套了 noindex 模板,上线时只换了域名没换模板,首页、栏目页、正文页一起被挡住。
- 共用模板牵连正文页。给分页、筛选页、站内搜索结果页加 nofollow 本身没错,但如果正文页和这些页面共用同一套模板,内链也可能被一起掐掉。
- 网关层注入响应头。CDN、反向代理或 WAF 统一加了 X-Robots-Tag,运营在页面源码里翻半天也找不到,因为它在响应头里。
- 指令互相打架。meta robots 和 X-Robots-Tag 同时存在且内容冲突时,一般以更严格的那个为准。一个写 index、一个写 noindex,结果往往是不收录。
怎么自查
先分清楚指令来自哪里
打开页面源码搜 robots,看 meta 标签里有没有多余的 noindex 或 nofollow;再用命令行工具请求同一地址,只看响应头部分,确认有没有 X-Robots-Tag。两个位置都要看,只看其中一处很容易漏。
覆盖不同类型页面
建议至少抽查首页、一级栏目页、正文页、分页、站内搜索结果页各一到三个 URL。同一个模板生成的页面往往表现一致,但不同栏目可能用了不同模板,抽样范围太窄会误判。
对比线上与预发
把两边的响应头和 meta 标签并排比一次,能很快发现模板被整份复制、域名没跟着切换这类问题。
- 首页与栏目页是否存在 noindex
- 正文页是否被 nofollow 覆盖了内链
- 响应头里是否有 X-Robots-Tag,来源是服务器还是 CDN
- meta 与响应头指令是否冲突
- 分页、筛选页的规则是否影响到了正常内容
处理时守住几条原则
- 只对确实不该出现在结果里的页面用 noindex,例如后台、购物车、内部搜索结果页。
- 想节省抓取预算,用 robots.txt 屏蔽整类路径更干净,别在能收录的正文页上挂 nofollow。
- 撤销 noindex 后,页面要被重新抓取才会更新,不会立刻恢复,需要留出观察窗口。
- 把 noindex 做成模板里的可配置项,别写死在共用模板中,避免下次改版再踩一次。
robots.txt 管的是“来不来抓”,noindex 管的是“抓到了要不要展示”。两者用混,最常见的结果是页面既没被抓、也没被收录,而你一直以为只是暂时没生效。
回到日常维护
把这项检查放进改版清单和上线前检查流程,比事后排查省力得多。每次调整模板、网关规则或栏目结构之后,抽几个代表性 URL 复核一次,就能挡掉大部分误伤。需要说明的是,即使指令配置正确,抓取和收录也由平台自行判断,本文提供的是排查方向,不代表任何收录结果。