站点运营

站点运营:meta robots 与 noindex 自查,别让一个标签把页面挡在索引外

robots.txt 决定要不要抓,meta robots 决定抓到了要不要收。noindex 写错不会报错,只会安静地把页面挡在索引之外。本文梳理 noindex 的常见来源、全站自查步骤、与 canonical 及 robots.txt 的分工,以及改动后该怎么验证。

站点运营

站点运营:meta robots 与 noindex 自查,别让一个标签把页面挡在索引外

很多站点在排查抓取问题时,第一反应是去看 robots.txt,却忽略了页面源码里的 meta robots 标签。robots.txt 管的是“要不要来抓”,meta robots 管的是“抓到了要不要收、页面上的链接要不要跟”。两者作用范围不同,出问题的表现也不同。一个写错的 noindex 不会报错,也不会让页面打不开,只是安安静静地把页面挡在索引之外。

noindex 常见的几种来源

noindex 很少是有人故意加的,多数来自模板、插件、复制粘贴和上线前的临时设置。以下几类情况最容易遗留:

  • 测试环境或预发环境上线时,直接把带 noindex 的模板带进了正式环境。
  • 栏目页、标签页、搜索结果页批量套用了统一的“防薄页”模板,结果把需要收录的列表页一起挡了。
  • 分页和筛选参数页为了控制 URL 数量统一加了 noindex,后来改版时业务页恰好也落在同一套模板里。
  • 页面迁移后,旧地址被改成 noindex 而不是 301 跳转,新地址又没有同步替换进来。
  • CMS 里“发布状态”和“索引状态”绑在一起,编辑调整发布时间时顺手关掉了索引开关。

自查步骤

  1. 先全站抓一份 HTML,提取所有页面的 meta robots 标签,同时记录 HTTP 响应头里的 X-Robots-Tag,看看哪些页面带了 noindex、nofollow 或 none。
  2. 把结果按栏目归类,标出“确实应该挡的”和“不该挡的”。站内搜索结果页、筛选参数页、登录后的后台页挡掉是合理的;栏目首页、文章详情、需要参与搜索的聚合页被挡,就要确认原因。
  3. 重点核对响应头。有些站点的 noindex 不在 HTML 里,而是由服务器或 CDN 统一加上去的,只看源码容易漏掉。
  4. 确认 noindex 与 canonical 是否冲突。一个页面既声明了规范地址,又给自己加了 noindex,处理逻辑会变得难以预期,通常应该二选一。
  5. 检查是否顺手加了 nofollow。多数场景只需要 noindex,额外加 nofollow 会让页面上的链接也失去传递价值,除非确实不希望被跟踪。
  6. 把改动写进上线清单,避免下次换模板时又被覆盖回来。

几个容易混淆的点

robots.txt 里的 Disallow 只是不让抓,页面仍可能因为外链被索引成一个没有摘要的地址;meta robots 的 noindex 需要蜘蛛真正抓到页面才能生效。两者配合不当会互相抵消。
  • noindex 不等于删除:页面照样能访问,只是不进索引。想彻底移除,需要配合 404 或 410。
  • noindex 生效有延迟:蜘蛛要重新抓取该页面后才会读到新标签,改完立刻查不到,不代表没生效。
  • 被 robots.txt 挡住的页面,蜘蛛读不到 noindex:如果既 Disallow 又指望 noindex 生效,通常行不通。

改动之后怎么验证

改完不要只看首页。优先复查三类地址:原本次要但确实需要收录的栏目页、改版后新生成的详情页模板、以及带参数的筛选页。用站点地图和抓取工具各跑一遍,确认目标页面的标签已经恢复为 index、follow,也没有遗留的自定义指令。同时留意响应码,noindex 页面如果仍返回 200,说明它还在被正常抓取,只是不进索引,这属于预期状态,不必再额外处理。

meta robots 是个很轻的标签,但它决定的是页面能不能进入搜索结果的入口。把它纳入常规的站点自查清单,每次改版、换模板、开新栏目时顺手过一遍,比等到流量下滑再回头排查要省事得多。