被删除页面不该从历史对比里直接消失,也不该假装它从未存在。更稳妥的做法是保留一条“墓碑记录”:记录URL、首次发现时间、最后一次正常抓取时间、删除疑似时间和当时可见的摘要字段,并把这条记录标记为不可再抓取。这样历史对比仍能区分“页面被删”与“页面从未出现”,但任何后续推算都必须说明这是基于残留证据的有限结论。
完整快照往往拿不到,也未必需要。缺少正文权限时,最小可执行动作是把可核对的元数据固化成一条独立记录,与正常页面数据分开存储。建议至少保留以下字段:
url:规范化后的地址,去掉追踪参数,避免同一页面被当成多条。first_seen与last_seen:首次和最后一次在监控中正常出现的时间。gone_at:首次观察到返回404、410或内容被替换的时间,并注明观察方式。status_evidence:当时的HTTP状态码或页面标题变化,作为删除判断的原始依据。snapshot_ref:如果外部存档或内部快照仍可访问,记录引用位置;没有就留空,不要编造。这条记录的作用不是还原页面,而是让历史对比有一个明确的断点。下一步做趋势对比时,所有涉及该URL的统计都应先判断它处于“活跃期”还是“墓碑期”,否则分母会悄悄变化。
并非所有被删页面都值得进入长期对比。可以按证据强度分三档处理:
选择哪一档,取决于你能否回答“这条记录未来还会被谁引用”。如果答案是否定的,退出比勉强保留更诚实。
看到某URL不再返回内容,容易直接得出“该主题热度下降”的结论。但同一现象至少有三种合理解释:页面被合并到新地址、站点结构调整导致路径失效、或抓取权限变化使监控暂时拿不到内容。三者对历史对比的含义完全不同。
假设某监控任务连续多期记录到某页面正常,随后连续三期返回404。若仅凭“返回404”就判定内容被删,可能忽略它其实已迁移到新栏目。可执行的验证动作是:检查站内搜索或站点地图中是否出现标题相近的新地址;若找到,就按“改写”处理并保留迁移说明。若找不到,再按“保留墓碑”处理。这个动作的结果直接决定下一步是合并记录还是标记断点。
第三方估算流量、搜索引擎报告和站内统计的口径并不一致,任何单一指标都不足以还原删除原因。更可靠的做法是搭一条可核查的证据链:原始状态码或页面标题变化、同一时间段的抓取日志、以及外部存档的可用性。三者能相互印证时,删除判断才站得住;只有一项时,应把它标为“待确认”,而不是写进结论。
需要提醒的是,请求量或抓取量归零本身不能证明页面被正确处理,它也可能来自抓取频率调整、权限收紧或任务配置变化。把这类现象当作删除证据,会让历史对比建立在错误的因果上。
落地时,先给墓碑记录加一个独立的状态字段,例如lifecycle,取值包括active、gone、migrated。然后在生成对比报表前增加一步过滤:只对active记录计算环比,对gone和migrated记录单独列出变化说明。
这样做的结果是,报表使用者能一眼看出总量变化里有多少来自真实波动、多少来自页面生命周期切换。若不做这一步,删除页面会以“缺失值”形式污染趋势线,后续再想区分就困难得多。完成过滤后,再决定是否为高价值墓碑记录补建外部存档引用,这一步的优先级应低于先保证状态字段准确。