当站点地图提交后只有一部分页面进入索引,而你又缺少服务器日志或搜索平台账号权限时,仍可执行一个最小动作:把“已发现”和“未发现”的页面各取若干条,按可观察的字段(URL 层级、模板、上线时间、内链位置、是否被 robots.txt 拦截)做交叉对照,找出两组之间唯一稳定的差异项。这个动作只能生成待验证假设,不能证明该差异就是原因;若两组在多个字段上同时不同,对照结论即失效,需要重新分层。
对照组成立的前提是两组页面除了被观察的那一个变量外,其余条件尽量接近。实际操作中,可从站点地图或后台导出全部 URL,按“是否已出现在索引结果”分成 A、B 两组,再逐条比对以下字段:
/list/page-2/ 与 /detail/123/ 的差异。只有当差异集中出现在某一个字段上,且另一组在该字段上表现一致时,才值得把该字段列为第一优先验证对象。若 A、B 两组在模板、层级、时间上同时不同,说明样本被多个变量污染,此时应先按模板或层级拆成更小的子组,再重新对照。
假设你发现“未发现”的页面全部位于第三层目录,而“已发现”的都在第二层,于是推断层级过深导致未被处理。但如果这些第三层页面恰好也是最近一周才批量生成的,那么上线时间与层级就是绑定的,你无法区分究竟是层级还是时间在起作用。此时若直接把内链全部提到第二层,可能只是让新页面获得了更多抓取入口,真正起作用的变量仍未确认。这说明:当两个候选原因在样本中高度重合时,任何单一对照都无法分离因果,需要人为制造只改变一个变量的测试组。
在没有抓取日志的情况下,可以用 site: 查询或站内搜索的收录结果作为“是否被发现”的粗略代理,但要清楚它只是近似值,可能受查询词、地域或结果截断影响。具体动作是:
这个动作的结果只有三种走向:改动的 URL 被处理而参照组没有,说明该因素值得扩大测试;三条 URL 同时被处理,说明更可能是时间或抓取配额在起作用;三条都无变化,说明当前观察窗口内该因素不构成瓶颈。无论哪种结果,都只能影响下一步测试方向,不能直接推导出“只要这样改就一定会收录”。
robots.txt 中禁止抓取某目录,并不等于该目录下的页面一定不会出现在索引中,外部链接仍可能让它们被单独处理,因此不能把“被 robots 拦截”直接等同于“未发现的原因”。站点地图本身只是提交线索,不保证任何一条 URL 会被抓取或收录,所以“已提交但未发现”这一状态不能反向证明站点地图有问题。此外,如果站点同时存在 HTTP 与 HTTPS 版本或带参数与不带参数的重复 URL,对照组可能把同一内容的两个地址分到不同组,导致差异被误读为收录差异。划分前应先做一次 URL 规范化,确认每组内没有指向同一内容的重复地址。
如果上述最小对照能稳定复现某一字段的分化,下一步就是针对该字段设计只改变一个变量的正式测试,并记录测试前后的收录状态变化;如果复现失败或样本被多个变量污染,下一步不是继续扩大抽样,而是先按模板、层级或上线批次把页面重新分层,直到每一层内部只剩一个可疑变量。在拿到可区分的证据之前,不要依据单次对照就批量改动内链、目录结构或 robots.txt,因为这类改动会同时影响多个变量,反而让后续判断更加困难。