先看中断点之前是否已经产生了可定位的清单:如果扫描过程按批次写出进度记录,并且每批都带有页面标识,那么已覆盖范围可以保留,只需补扫剩余部分;如果扫描只在结束时才汇总结果,中断后拿不到中间状态,通常只能整站重跑。判断的关键不是“扫了多久”,而是“中断前有没有留下可复原的边界”。
全站扫描类工具在运行时通常会维护一份待处理队列和一份已完成记录。中断后要做的第一件事,是找到这两份状态的落点:有的工具把进度写在本地项目文件里,有的写进数据库,有的只在内存中保留。如果进度落到磁盘或数据库,重启后一般能接着上次的位置继续;如果只存在内存里,进程结束即丢失。
一个可操作的检验动作:在重新运行之前,先查看工具目录或项目数据文件里是否存在带时间戳的中间文件,并确认文件是否记录了已处理页面的唯一标识(如规范化后的URL)。若存在,把它当作已覆盖范围的依据;若不存在,就不要假设“应该扫过一部分了”。这一步的结果直接决定后面是补扫还是重跑。
保留的前提是边界可验证,而不是大致记得。满足以下条件时,保留是合理选择:
在这些条件下,补扫剩余页面的结果可以和已保留部分合并成一份完整清单。合并时要检查两批数据的字段口径是否一致,比如同一列在两次运行里是否都表示“可索引状态”,否则合并后会得到自相矛盾的结论。
还有一种中间路线:不把中断前的数据当作完整覆盖,而是当作抽样。适用前提是扫描已经覆盖了站点的主要层级,但缺少长尾或深层页面。这时可以用中断前的记录判断整体问题的分布倾向,比如标题重复、缺失描述这类问题在已扫页面中出现的比例,再决定是否值得重跑全站。
需要说明的是,抽样结论不能直接外推到未扫页面。如果站点各栏目质量差异明显,已扫部分的比例不能代表全站。此时更稳妥的动作是选一个未扫栏目做小范围补扫,对比两部分的差异;差异小,抽样结论可参考;差异大,就回到整站重跑。
遇到下列情况,继续拼接旧数据的成本高于重跑:中断发生在扫描早期,已处理页面占比很小;进度记录只有总数没有页面标识;站点在中断期间上线了大量新页面或调整了目录结构;旧结果使用的规则版本已经变化,和新规则不可比。这些条件下,已覆盖范围既无法验证也无法对齐口径,保留只会让后续判断建立在不确定的基础上。
重跑前建议先缩小范围:按目录或模板类型分批扫描,每批结束就落盘一次。这样即使再次中断,也能从最近一批的边界继续,而不是回到起点。这个动作改变的是后续每次中断的代价,而不是本次扫描本身。
假设某站点约有两千个可抓取页面,扫描进行到中途被中断。若进度文件显示已处理六百个页面且带URL清单,剩余约一千四百个,那么补扫是划算的,前提是站点结构未变。若进度文件只显示“已完成30%”而没有页面清单,就无法知道这30%具体覆盖了哪些页面,补扫时既无法排除重复,也无法确认遗漏,此时整站重跑更可靠。这个比较方法只用于说明边界记录如何影响取舍,不构成对任何工具能力的判断。
无论选择保留还是重跑,最终都要回到同一份可核对的页面清单上。清单能对齐,后续的优化动作才有稳定起点;清单对不齐,任何基于它的判断都只是暂时的。