先把结论说清楚:当一批页面只有一部分被发现,对照组不能按“已发现/未发现”直接分,因为发现与否本身可能由页面位置、内链深度、发布时间等混杂因素决定。更稳妥的做法是选一个你能够主动改变、且与发现机制直接相关的条件,把条件相同或高度接近的页面配成对,再在每对内部随机决定谁接受处理、谁保持原样。这样比较的是同一条件下的差异,而不是拿两种本来就不同的页面互相比较。
如果直接把已发现的页面放进A组、未发现的放进B组,然后比较两组的内容长度、外链数量或更新时间,你得到的差异很可能只是页面本身位置不同造成的。比如新页面通常内链少、发布时间近,它们既更容易未被发现,也更容易内容偏短。此时你观察到的“内容短导致未被发现”只是相关,不是因果。
对照组要解决的是这个问题:让被比较的两组在关键条件上尽量一致,只留下你想验证的那一个变量。对于批量页面部分被发现的情形,优先配对的条件通常是内链来源和链接位置,其次是模板类型、页面层级和大致发布时间。如果这些条件差异过大,任何比较都只能当作线索,不能当作结论。
假设你有一批商品页,其中一部分已被发现,另一部分长期未被发现,而它们共用同一套模板。你可以先按“是否从频道页获得至少一条正文内链”把页面分成两层,再在每一层内部,把层级相同、发布时间相近的页面两两配对。
这个动作的结果会直接影响下一步:如果配对后处理组和对照组的发现率差异明显,说明该内链条件值得在更大范围内复制;如果差异不明显,说明问题可能不在这一条内链,而要先检查是否存在抓取预算、站点结构或重复内容层面的其他遗漏条件。
假设你有200个未被发现的页面,按上述方法成功配成60对。30个处理页各增加一条来自相关频道页正文的内链,30个对照页不动。观察期结束后,处理组有12个被发现,对照组有5个被发现。这个差距可以提示内链条件可能有作用,但样本不大,不能直接下结论。此时合理的下一步是扩大配对范围,而不是立刻给全站页面加内链。
反过来,如果处理组和对照组的发现数量几乎一样,那么更值得优先排查的是:这些页面是否被robots.txt限制抓取、是否返回了非200状态、是否与其他页面高度重复。需要提醒的是,robots.txt的抓取限制不等于可靠的索引移除,站点地图也不保证收录,这两点不能作为对照组有效性的依据。
最需要警惕的反例是:处理动作本身同时改变了多个条件。例如你给处理组页面既加了内链,又改了标题和发布时间。这样即使发现率上升,也无法判断是哪一个变化起作用,对照组就失去了区分能力。
另一个失效条件是页面之间存在强关联。如果同一对页面共享同一个父页面,而父页面的抓取频率在观察期内发生了整体变化,那么这一对内部的比较就不再干净。此时应把这一对排除,或把父页面作为分层条件重新配对。必要适用条件是:你能够在一段观察期内保持站点结构、模板和抓取环境相对稳定;如果期间有大改版或批量迁移,本批对照结果只能作废。
不要一上来就对全部未发现页面动手。先选一个模板统一、数量在几十到一百之间的页面集合,按内链条件配成20到30对,只改一个变量,固定观察期后再统一检查。检查时同时记录抓取日志中的状态码和响应情况,用来区分“没有被抓取”和“被抓取但未被索引”这两种不同原因。只有配对结果稳定、且你能排除robots限制和状态码异常之后,才值得把同一处理动作推广到更大范围。