站点运营

站点运营:noindex 与响应头自查,别把想被抓的页面挡在门外

noindex、X-Robots-Tag、robots.txt 这几个开关常被混用,结果要么误伤了想收录的页面,要么让站点地图和屏蔽规则互相打架。这里给出一份可执行的核对清单,从响应头、模板默认值到页面类型排查,帮你把该挡的挡住、该放行的放行。

站点运营

站点运营:noindex 与响应头自查,别把想被抓的页面挡在门外

有一类站点问题很隐蔽:页面本身没问题,内容也写得不错,但它被一个 noindex 或者一段屏蔽规则挡在了抓取之外,几个月都没人发现。做站点运营,定期核对“谁在被挡”和“谁应该被挡”,比事后追查为什么没收录要省事得多。

先分清楚几种屏蔽方式

很多人把“不让抓取”和“不让收录”当成一回事,其实它们是不同的开关,混用容易出现互相矛盾的结果。

  • robots.txt 的 Disallow:告诉蜘蛛不要来抓这个地址。爬虫看不到内容,但地址如果被外链引用,仍可能以无描述的形式出现在结果里。
  • 页面里的 meta robots noindex:允许蜘蛛来抓,但抓完不要收录。要让 noindex 生效,页面必须能被正常抓取。
  • X-Robots-Tag 响应头:效果和 meta 标签类似,但写在 HTTP 响应头里,适合 PDF、图片、视频这类没法写 meta 的文件。
  • 权限与登录墙:不算规则层面的屏蔽,但结果一样——蜘蛛看到的是登录页或空白页。

还有一种是前端渲染后才注入的 noindex。如果模板里写的是“页面加载完成后根据条件加标签”,而蜘蛛拿到的初始 HTML 里没有这段逻辑,两边看到的结果就可能不一致。

自查时具体看什么

一看真实响应,而不是看后台设置

后台勾了“允许收录”不代表线上就是这个结果。用浏览器开发者工具或命令行查看目标 URL 的响应头,确认有没有 X-Robots-Tag,再看渲染后 HTML 里 meta robots 的实际取值。

二核对模板和默认值

最常见的事故来源是模板默认带 noindex:新栏目复制了旧模板、测试环境配置被带到线上、某个插件默认给标签页和归档页加了 noindex。抽几个不同栏目、不同页面类型的地址各测一次,比只看首页有用得多。

三分清哪些页面本来就该屏蔽

站内搜索结果页、筛选参数页、后台地址、测试目录、重复的打印页,屏蔽掉通常是合理的。真正要查的是“该屏蔽的有没有漏”,以及“不该屏蔽的有没有被误伤”。

四检查屏蔽与站点地图是否打架

如果站点地图里提交了一堆 URL,而这些 URL 的响应头里带着 noindex,两边就是在互相消耗。要么把不该收录的从地图里撤掉,要么把屏蔽规则改掉,别让两个信号同时存在。

几个容易踩的坑

  • 用 Disallow 屏蔽了页面,又想靠页面里的 noindex 让它不收录——规则冲突,noindex 根本读不到。
  • 分页的第二页之后被整体 noindex,后续内容失去了入口。
  • 测试域名和正式域名共用一套模板,测试域的规则忘了清理。
  • 图片和 PDF 文件没有被单独检查,实际的屏蔽写在响应头里。

建议的处理顺序

  1. 整理一份页面类型清单:栏目页、详情页、列表页、标签页、搜索页、附件文件。
  2. 对每一类抽两三个真实地址,记录响应头、meta 标签、robots.txt 三处的状态。
  3. 标出“预期屏蔽”与“实际屏蔽”不一致的地方,按影响范围排序处理。
  4. 改完后重新抓取一次,确认响应已经变化,再观察日志里这些地址的抓取情况。
屏蔽规则是开关,不是万能锁。它的作用是告诉蜘蛛哪些地址值得花时间,而不是把问题页面藏起来。内容本身不行,屏蔽得再干净也不会带来流量。

把结果记下来,过一段时间再看

把这次核对的结果写进运维记录:哪些路径是刻意屏蔽的、原因是什么、由谁决定的。半年后再翻这份记录,能省掉大量猜测。站点结构会变,模板会换,运营人员也会换,只有写下来的规则不会自己消失。