有条件的结论是:先不要按网址去重,而要先判断“页数”统计的是抓取响应、索引记录还是分析口径下的会话条目。只有当两份报告共享同一个对象标识、且该标识在各自口径里含义一致时,直接去重才成立。否则合并后偏少或偏多,都会让后续判断失真。
搜索引擎优化工具常把不同层级的对象都叫成“页”。抓取类报告里的一行通常对应一次请求响应,同一个网址带不同参数、不同协议或重定向链上的每一跳,都可能各占一行。索引类报告里的一行更接近一个可被检索的文档标识。分析类报告里的一行则可能是带查询参数或事件参数的访问条目。三者的数量本来就不该相等。
判断方法很直接:抽十行原始记录,看每行是否包含同一个规范对象标识。如果同一篇文章在报告里出现三次,分别对应移动端、桌面端和一个带跟踪参数的地址,那么这三行不是三个对象。此时按行数相加再减重复,得到的数没有业务含义。
选择一:按规范对象标识去重。适用于报告已经提供规范地址、内容标识或稳定主键,且同一对象在不同报告里能映射到同一个值。动作是把两份数据都先归一到该标识,再做集合运算。结果是数量接近真实对象规模,适合做覆盖率和缺口判断。
选择二:按报告口径分别保留,不合并计数。适用于报告只提供行级明细,或不同工具对同一对象的切分方式不同。动作是分别记录抓取行数、索引条目数、分析条目数,只在同一口径内比较变化。结果是放弃一个“总页数”,但避免把不同单位相加。
两种选择的分界不是工具好坏,而是对象标识是否可对齐。可对齐就去重,不可对齐就分口径。把不可对齐的数据强行合并,是规模化后最常见的例外来源。
假设小样本阶段你发现报告页数约等于实际文章数,于是按网址去重。样本扩大后,同一篇文章因为分页、打印版、AMP 版或参数变体产生了多个地址,这些地址在报告里各自成行,但实际对象只有一个。此时按网址去重会把它们当成不同对象,数量仍然偏多。
反过来也有一种情况:某些对象在报告里共用一个模板地址,仅靠地址无法区分,按地址去重会把多个对象压成一个,数量偏少。这两种偏差说明,网址只是候选标识,不是天然主键。它是否成立,取决于站点是否把变体收敛到规范地址,以及工具是否按规范地址聚合。
还有一个容易被误读的信号:某类记录的请求量或抓取量突然归零。这不能单独证明去重做对了。它也可能是抓取预算调整、规则屏蔽、报告延迟或对象被合并到其他分组。要排除这些解释,需要看同一对象的其他口径是否同步变化,而不是只看一个数字。
取一份报告,按下面顺序做一次小规模核对,再决定是否推广到全量:
这一步的结果会直接决定下一步:差距可解释且稳定,就可以把去重规则写成脚本并定期跑;差距随样本变化,说明当前没有可靠主键,应先修数据采集或映射,而不是继续调去重阈值。对具体工具是否提供规范地址字段、字段名称和导出格式,需要以你实际使用的版本为准,不同版本可能不同。
去重规则要写清适用条件:针对哪类报告、用哪个标识、遇到重定向和参数时怎么处理、无法映射的记录归入哪一类。没有这些边界,同一份规则换一个站点或换一个时间窗口就可能失效。把“页数”换成“对象数”之前,先确认这个替换在数据里站得住。
如果报告还要交给执行人员,附上对象标识的定义和未映射记录清单,比只给一个总数更有用。执行人员能据此判断哪些缺口需要补内容,哪些只是口径差异,不必再回头猜数字。