SEO工具资源,一次全站扫描被中断后怎样判断已覆盖范围

📍 WDQWDWQD987AAAAA:216.73.216.137
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /65d46db0288c.html
📄

SEO工具资源,一次全站扫描被中断后怎样判断已覆盖范围

先给有条件的结论:如果扫描工具在中断时留下了可导出的结果文件、带时间戳的日志,或能按URL状态筛选的列表,那么已覆盖范围可以按“中断前最后一次完整写入”来界定,而不是按任务进度条显示的百分比。反之,如果工具只显示进度条、不保留中间结果,中断后重启又从零开始,那么任何“已覆盖多少”的判断都不可靠,只能重新跑一次或改用分批扫描。

为什么进度条百分比不能当作覆盖依据

进度条通常反映的是工具内部的任务阶段,而不是已经写入结果的目标数量。常见情况是:抓取阶段完成了大半,但解析和入库还没跟上;或者工具先并发请求再统一写库,中断时内存里的数据全部丢失。此时进度条显示80%,实际可用的结果可能只有30%。

更麻烦的是,有些工具在中断后会把“已处理”标记保留在本地缓存里,重启时跳过这些URL,但缓存本身可能不完整。这会造成一种假象:任务很快跑完,看起来覆盖了全站,实际漏掉了一批从未写入结果的页面。

判断依据应该落在可验证的产物上:导出的CSV或JSON、数据库里的记录、日志中最后一次成功写入的时间点。没有这些,百分比就只是界面上的一个数字。

中断后先做三件核对,再决定是否重跑

第一步,检查结果文件的时间戳和记录数。假设一份导出文件有12000行,最后一行的时间是14:32,而中断发生在14:35,那么14:32之后抓取的页面大概率没有进入这份文件。这个时间差就是需要补扫的范围。

第二步,核对日志里的URL状态。不少工具会记录每个URL的请求结果,包括成功、超时、被拒绝。如果日志完整,可以按状态分组统计,看哪些URL已经有明确结果、哪些还是未知。这一步能区分“确实没抓到”和“抓到了但没写进结果”。

第三步,用站点自身的URL清单做交叉比对。从sitemap、内部链接或CMS导出一份全站URL列表,与扫描结果做差集。差集里的URL就是未覆盖部分。这个动作不依赖工具,是最直接的验证方式。

做完这三步,如果未覆盖的URL数量少且集中在某个目录,可以只补扫这一部分;如果差集很大或URL清单本身不完整,重跑全站更省事。

一个会让上述判断失效的反例

上面这套方法成立的前提是:工具的结果文件是追加写入的,且写入顺序与抓取顺序基本一致。如果工具采用先全部抓取、最后统一写出的模式,中断时结果文件可能只有表头或完全为空,日志里却显示大量URL已请求。这种情况下,日志只能证明“请求发出过”,不能证明“结果可用”。

另一个反例是工具对同一URL做了多次尝试,日志里出现重复记录。按日志统计会高估覆盖范围,实际去重后可能少很多。遇到重复记录,要先按URL去重再计算覆盖。

还有一种情况:工具在中断后自动续跑,但续跑时跳过了之前失败的URL。如果没注意到这一点,续跑完成后的结果会包含一批从未成功抓取的页面,看起来覆盖完整,实际有空洞。判断方法是看结果里这些URL的状态字段,而不是只看它们是否出现在列表中。

补扫还是重跑:用差集大小和URL稳定性来选

如果差集URL数量在可接受范围内,且这些URL在中断后没有发生内容变更,补扫是更快的选择。补扫时建议把范围限定在差集列表,而不是按目录或参数重新扫描,避免重复消耗。

如果站点在中断期间有大量新发布或改版,补扫的结果会和之前的部分对不上时间口径。这时重跑全站更合适,因为混合两个时间点的数据会让后续分析难以解释。

假设一个例子:某次扫描中断后,差集显示有800个URL未覆盖,其中600个集中在产品目录,200个是最近三天新发布的文章。产品目录的URL稳定,可以只补扫这600个;新发布的200个如果已经包含在最新sitemap里,也可以单独补。但如果这800个URL分散在全站各个目录,且没有明显规律,分批补扫的协调成本可能高于直接重跑。

无论选哪种,下一步动作都是:在补扫或重跑开始前,先固定一份URL清单作为基准,扫描结束后用同一份清单做差集验证。这样即使再次中断,也能快速判断这次覆盖到哪里。

把判断结果转成下一次扫描的防护

中断本身不可控,但中断后的损失可以缩小。一个实际动作是:在下次扫描前,把全站URL按目录或优先级拆成多个批次,每批单独导出结果。这样任何一批中断,只影响该批,其他批次的覆盖不受牵连。

另一个动作是开启工具的增量写入或定期快照功能(如果该工具支持,具体名称和入口需要按实际工具核对)。即使只支持手动导出,也可以在扫描进行到一定阶段时手动导出一次,作为中途检查点。

最后,记录每次扫描的起止时间、URL清单来源和结果文件路径。这些记录不直接提升覆盖,但能让下一次中断后的判断从“猜”变成“对”。

图1 图2

nginx