先给结论:不要按“已发现/未发现”把页面分成两组直接比较,而要先按页面生成批次或链接投放批次划分对照组,再在组内观察发现率差异。因为“被发现”本身是结果,不是原因;用结果分组会把大量混杂因素带进比较。下面以你手中一份批量页面清单为对象,逐步转成可执行方案。
同样说“只有一部分被发现”,可能指三种不同状态:站点地图提交后被抓取、被搜索引擎收录、或能通过站内链接到达。这三种状态的判定依据不同,对照组也不能混用。
先明确你关心的是哪一种,再决定后面拿什么字段做分组依据。三者混在一起,任何对照组都会失真。
批量页面通常有可追溯的生成时间、模板版本或数据来源。这些是页面被发现之前就已确定的属性,属于合格的分组变量。而“是否被发现”是事后结果,用它分组等于用答案解释答案。
假设你有一批 2000 个详情页,其中 800 个来自旧模板,1200 个来自新模板。与其比较“已发现的 600 个”和“未发现的 1400 个”,不如比较旧模板组和新模板组各自的发现率。这样模板差异就成了可解释的变量,而不是被结果掩盖的噪声。
如果这批页面没有模板差异,可以退一步按链接投放批次分组:哪些页面在改版时被放进了导航或列表页,哪些只在站点地图里出现。链接来源是页面发布时就确定的,同样适合做对照组。
即使按批次分好组,组内仍可能有内容长度、更新频率、URL 层级等差异。这些因素会同时影响发现率和你的判断,需要在组内再切一层。
这样做的好处是:如果新模板组整体发现率偏低,但只在深层 URL 上偏低,而浅层 URL 与旧模板持平,那么问题更可能出在链接深度,而不是模板本身。下一步就该去检查深层页面的内链入口,而不是回滚模板。
假设某批 1000 个页面中,A 组 500 个在发布时加入了列表页链接,B 组 500 个只提交了站点地图。两周后 A 组被发现 420 个,B 组被发现 180 个。这个差距不能直接归因于“站点地图没用”,因为两组在链接条件上本就不同。
合理的下一步是:在 B 组中挑 50 个页面,手动加入一条来自相关列表页的链接,保持其他条件不变,再观察这批页面的抓取请求是否出现。如果出现了,说明链接可达性是主要变量;如果仍无变化,再检查服务器日志中这些 URL 是否被请求过、返回了什么状态码。
这个动作的结果会直接决定你接下来是扩大内链改造范围,还是转向排查抓取层面的限制。
robots.txt 的抓取限制不等于可靠的索引移除,被限制抓取的页面仍可能以其他方式出现在结果中。站点地图提交也不保证收录,它只提供发现线索。因此,不能把“提交了站点地图”当作对照组中的处理变量,除非你能确认抓取确实发生。
另外,请求量或抓取量归零不能单独证明你的处理正确。它也可能是爬虫调度变化、服务器响应变慢或整体抓取配额调整造成的。判断时需要同时看返回状态码分布和同一时间段内其他页面的抓取情况。
最后,HTTPS 不保证页面安全无漏洞,也不直接决定发现率。把它放进对照组会引入与本题无关的变量。
完成一轮分组比较后,你应当能回答:差异主要来自批次属性,还是来自组内某个可操作的变量。如果是前者,调整模板或生成流程;如果是后者,针对该变量做小范围验证。对照组的意义不是证明谁对谁错,而是让下一步动作有明确的指向,并且这个指向可以被下一轮数据推翻或确认。