先给结论:不要只记录“开关是开还是关”,而要记录“开关状态 + 生效时间 + 该状态下返回的可见内容摘要 + 查询时间”。因为百度索引量查询看到的是某个时间点之前被处理过的版本,开关在查询之后才改,两者对不上,就会得出与直觉相反的结论。下面以你手里的一台服务器、一个页面为对象,说明怎么把它变成可执行的处理方案。
功能开关通常同时影响三层:配置值、服务端返回的 HTML、以及浏览器或渲染器执行脚本后的 DOM。索引量对不上时,先分清你记录的是哪一层,否则证据无法互相印证。
curl 或抓包拿到的原始 HTML。它决定“爬虫第一眼看到什么”。一个实际动作:对同一 URL,在开关切换前后各拉一次原始 HTML,并把渲染后的可见文本单独存一份。结果是你能直接对比差异出现在哪一层。如果原始 HTML 没变而渲染结果变了,问题在脚本;如果两层都变,问题在配置或模板。这决定了下一步该查开关下发链路还是查前端渲染。
口头说“我改过开关”在事后无法核对。建议每次变更记一条记录,至少包含以下字段,存成你能复查的文本或表格即可:
这样做的价值在于:当索引量变化时,你能判断它是发生在某次开关切换之前还是之后。假设某页面在 3 月 1 日关闭开关后索引量下降,但记录显示 2 月 25 日就已有下降趋势,那么开关就不是唯一解释,需要排查抓取频次、外链变动或站点整体改版。数字本身不证明因果,时间顺序才是区分解释的依据。
索引量归零或骤降,不能单独证明你的开关处理正确或错误。以下现象各自有多个合理解释,需要用不同证据区分:
注意,robots.txt 的抓取限制不等于可靠的索引移除,站点地图也不保证收录。如果你用开关配合这些手段控制页面可见性,要分别核查,不要把它们当成同一件事。
假设某列表页有一个“精简模式”开关,开启后服务端只返回标题,正文由脚本异步加载。你关闭开关,期望索引量回升。操作后两周查询,索引量没有明显变化。
此时可执行的下一步:先取当前原始 HTML,确认正文是否已回到服务端输出;再取渲染后文本,确认可见内容完整。如果原始 HTML 已含正文而索引量仍不动,说明瓶颈不在开关,应转向检查该 URL 的内链深度和抓取日志。反过来,如果原始 HTML 仍是精简版,说明开关没有真正生效,问题在配置下发,而不是索引处理。这个例子里的数字只是说明比较方法,不代表真实阈值。
记录不是为了存档,而是为了把“猜”变成“可排除”。当你手上有一条带时间戳、带内容指纹、带查询数字的记录,下一步动作就有了方向:
每次动作后补一条新记录,形成前后对照。这样即使结果与直觉相反,你也能说清是哪一步、哪一层、哪个时间点发生了变化,而不是把索引量的波动直接归因于开关。