先给结论:报告页数不等于实际对象数量,通常是因为同一个对象被多个查询入口、多条URL记录或多次快照重复计入。去重的正确做法不是删行,而是先确定“什么算一个对象”,再按这个口径合并。下面用一个假设情境说明决策过程。
假设你手头有一份百度排名工具导出的报告,共1200行,但实际需要跟踪的落地页只有300个。差异可能来自三种口径:一是同一页面被多个关键词分别记录,二是同一页面存在带参数、带斜杠变体、移动版与PC版等多条URL,三是同一对象在不同日期各留一条快照。
判断方法很直接:先看报告里有没有“查询词”和“完整URL”两列。如果两列都有,且同一个URL出现多次而词不同,那么1200行更可能是“页面×词”的组合数,不是1200个页面。此时对象应定义为“页面+词”,而不是页面。
这一步决定了后面能不能直接按URL去重。如果报告只按页面统计,而你按页面去重,会把本来要分开跟踪的词合并掉,后续判断排名变化时就失去粒度。
在假设情境中,1200行里能识别的重复来源大致有:
?from=report、?page=1。http与https、带www与不带www两种写法。判断依据是看URL字段是否只有参数或协议不同、其余路径完全一致。若一致,应视为同一对象。若路径本身不同,比如列表页和详情页,就不能合并。
这里有一个实际动作:把URL中的查询参数和末尾斜杠先做规范化,再统计唯一值数量。如果规范化后唯一URL从900降到320,说明参数和斜杠是主要重复来源;如果只降到850,说明重复主要来自“页面×词”组合,而不是URL变体。这个结果直接决定下一步是按URL合并还是按页面加词合并。
去重不只是为了数字好看。在旧内容、旧系统或旧合作关系需要退出的场景里,去重后的对象清单才是取舍依据。
假设规范化后得到320个唯一对象,其中约80个是已经下线的旧页面,另有40个是旧合作方带来的页面,剩余200个仍在产生访问。此时可以分三类处理:
这里的动作是给每个对象打一个状态标记,比如“保留”“观察”“退出”。标记完成后,下一次导出的报告行数应接近实际保留对象数。如果仍然偏大,说明还有未识别的变体,需要回到URL规范化那一步复查。
去重后不要只看总行数。更可靠的是同时看两个数字:唯一对象数和唯一“页面+词”组合数。如果唯一对象数是320,而唯一组合数是900,说明大部分对象仍被多个词跟踪,这是正常的,不是重复。
反过来,如果唯一对象数和唯一组合数很接近,但报告行数仍远大于两者,那重复很可能来自时间快照。此时应按最新日期保留一行,把历史行归档而不是删除,以便后续对比。
注意,报告行数下降本身不能证明去重正确。行数下降也可能是因为查询失败、抓取中断或筛选条件误设。要排除这些解释,可以抽查几个已知对象的记录是否仍在,以及它们的排名数据是否连续。
假设情境的最后一步是把口径写进查询模板:对象等于规范化URL加查询词,报告只保留最新一次快照。这样下次导出的行数应等于唯一组合数,而不是页面数乘以词数再乘以抓取次数。
如果使用的是具体品牌的百度排名工具,其导出字段、去重选项和快照保留策略需要以该工具当前实际说明为准,不要假设所有工具都提供相同的合并功能。没有把握时,先在导出后自行按URL和词做一次唯一值统计,再决定是否依赖工具内置去重。
去重完成后,把保留对象清单交给执行人员,退出对象单独归档。这样报告页数与实际对象数量不一致的问题,就会从每次都要解释的异常,变成一次定义清楚的口径。