当报告写“共 1200 页”,而你按目录、栏目或文件类型数出来只有 800 个实际对象时,先不要认定工具错或数据错。最常见的两种解释是:报告把同一资源的不同 URL 变体分别计数;或者报告统计的是“被观察到的请求行”,而你数的是“当前仍存在的对象”。两者都可能成立,需要用一组可区分证据来判定,再决定去重动作。
URL 变体重复的典型表现是:同一内容对应多个地址,例如带与不带 www、大小写不同、带跟踪参数、带末尾斜杠、分页参数不同、排序参数不同。这类重复在报告里会表现为页数偏高,但每个地址都能打开并返回相似内容。
对象存续差异的典型表现是:报告中的一部分地址已经返回 404、410 或跳转到其他地址,而你当前能数到的实际对象只包含仍可访问的部分。这类不一致不是“重复”,而是“历史快照与现状的差异”。
还有一种混合情况:一部分是变体重复,另一部分是失效地址。此时直接按 URL 去重只能解决前者,对后者无效。
在缺少完整数据或权限时,仍然可以做最小验证,不必等拿到全量日志或后台权限。
www、跟踪参数、末尾斜杠后比较剩余路径。如果去参数后重复率显著下降,说明报告计数受参数影响;如果去参数后仍大量重复,说明重复来自路径本身,例如同一内容存在多个栏目路径。这个结果决定去重规则应放在哪一层。如果目标是“当前仍可访问的实际对象数量”,合并键应优先使用最终跳转地址,而不是原始请求地址。做法是:对每条记录先解析最终地址,再按最终地址分组,组内保留一条代表记录。这样可以把跳转链上的多个地址合并为一个对象。
如果目标是“历史出现过的地址数量”,则不应按最终地址合并,而应按原始地址去重,并单独标记失效状态。此时报告页数偏高是合理的,因为一个对象在历史上可能对应多个地址。
假设一个栏目有 10 篇文章,每篇存在带参数和不带参数两个地址,报告计为 20 页。按原始地址去重后仍是 20 条;按最终地址去重后是 10 条。这个例子只说明合并键不同会导致结果不同,不代表任何工具的实际计数方式。选择哪个结果,取决于你要回答的是“历史地址有多少”还是“当前对象有多少”。
去重后的数量减少,不能单独证明报告有错,也不能证明所有重复都是无害的。可能仍有未被抽样覆盖的变体,也可能存在同一内容在不同路径下被分别索引的情况。去重动作的结果应影响下一步:如果合并后数量接近你手工核对的实际对象数,可以进入抽样复核;如果仍差距明显,应回到口径核对,而不是继续增加去重规则。
另外,请求量、抓取量或某项统计归零,也不能单独证明去重处理正确。它还可能来自权限范围变化、时间窗口不同或过滤条件调整。需要结合状态码分布和最终地址分布一起判断。
在没有全量日志和后台权限的情况下,可以交付一份“口径说明 + 抽样证据 + 去重规则”的最小报告:写明报告原始页数、抽样条数、按最终地址合并后的条数、仍无法判定的条数,以及每条去重规则适用的前提。这样执行人员能知道哪些数字可以直接用,哪些需要等权限补齐后再确认。具体工具的口径字段和导出能力需要以你实际使用的版本为准核对。