先给结论:报告页数通常统计的是“记录行”或“抓取条目”,而实际对象数量统计的是“去重后的实体”。两者不一致,最常见的原因是同一对象被多个参数、多个子域或多次抓取各记了一行。下面用一个假设情境说明,当常规去重(如直接按完整网址去重)仍不奏效时,遗漏的那个条件是什么,以及怎样判断该不该继续合并。
假设某站长用工具导出站内所有页面清单,报告显示 1200 行,但站点实际文章只有约 400 篇。他先按完整网址去重,结果仍是 1200 行;再按标题去重,降到 800 行;最后发现同一篇文章存在三种网址形态:带 ?from=list 的列表入口、带 ?page=2 的翻页入口,以及不带参数的规范网址。这说明去重键选错了,问题不在工具,而在“什么算同一个对象”没有事先定义。
报告页数统计的最小单位往往是 URL 行,而实际对象是内容实体。两者的差值来源可以分三类:
http 与 https、www 与非 www 各算一条。如果按完整网址去重后数量不变,说明重复行本身就带有不同网址,去重键必须换成能代表对象的字段,例如文章 ID、规范网址或标题加发布日期的组合。
常规做法是去掉查询参数再比对,但仍有遗漏:同一篇文章可能同时存在于列表页和详情页,列表页网址不带参数却是另一个路径。此时需要定义规范对象规则:以详情页路径为唯一对象,列表页和翻页页视为指向它的引用,不计入对象总数。
具体动作是:在导出表中增加一列“对象键”,用规则映射生成——如果路径匹配列表或翻页模式,就映射到对应详情页的对象键,否则保留原路径。完成后重新按对象键计数。这个动作的结果会直接决定下一步:如果对象键计数接近实际文章数,说明去重规则成立;如果仍偏高,说明还有未被规则覆盖的路径模式,需要继续补充映射,而不是直接删行。
去重不是越少越好。假设按对象键合并后,报告从 1200 行降到 380 行,低于实际 400 篇,说明有不同文章被错误合并。区分原因的证据是:随机抽 10 个被合并的对象键,检查它们对应的原始网址是否指向不同标题或不同正文。如果存在不同内容被合并,就要把对象键改得更细,例如加入栏目或发布年份,而不是继续追求更小的数字。
这一步的实际动作是抽样比对,而不是看总量。总量归零或大幅下降不能单独证明去重正确,因为过度合并、路径规则写错或数据截断都会产生同样的现象。
要让下一次报告不再出现同样偏差,需要把规则写成可复核的清单,而不是记住一次操作:
如果使用的是具体品牌的站长工具,其导出字段、去重选项和入口位置可能不同,需要以该工具当前实际界面为准核对,不要直接套用其他工具的字段名。通用评估方法是:看它能否导出原始网址和对象标识,能否让你自定义映射,而不是只看报告给出的总数。
回到开头的情境,那位站长最终不是靠工具自动去重解决,而是补上了“列表页映射到详情页”这一条遗漏条件,报告页数才与实际对象数量对齐。判断顺序始终是:先定义对象,再选去重键,最后用抽样验证,而不是先删重复行。