先给结论:不要试图在错误再次出现时才开始记录,而要在错误出现之前就把“可回看的证据”布置好。外链收录工具在特定时段报错,通常意味着触发条件与时间相关,例如对方站点的定时任务、CDN 的夜间回源、你自己的抓取队列在某个窗口集中运行,或者旧系统在固定时间做数据清理。假设一个情境:你运营一个已停止更新的旧站群,其中三条外链指向的页面每天凌晨 2:00 到 2:20 之间在工具里显示抓取失败,白天查询一切正常。下面按这个假设情境说明怎样捕捉证据、怎样取舍。
同一时段反复失败,第一步不是改代码,而是把“谁在什么时间看到了什么”分开记录。外链收录工具通常只是展示结果的界面,真正发生的事可能在你无法直接看到的链路上。可区分的原因至少有四类:
这四类的证据形态不同。限流通常表现为 429 或连接被重置;对方维护通常表现为 502、503 或超时;DNS 切换表现为解析 IP 变化;工具缓存问题则表现为源站日志里根本没有对应请求。先确定哪一类,后面的动作才不会白做。
短暂证据的核心困难是:你发现时它已经过去了。解决办法是让记录在无人值守时也持续产生。具体动作可以这样安排:
这个动作的结果会直接决定下一步:如果探测日志和源站日志对得上,问题在对方服务端,你需要联系对方或调整抓取时段;如果对不上,问题在链路或工具侧,继续排查源站没有意义。
特定时段失败往往只影响抓取,不一定影响已经建立的收录状态。这两件事在外链收录工具里经常被混在一个视图里,但它们的证据来源不同。抓取状态看的是最近一次请求是否成功;收录状态看的是该 URL 是否仍在索引中,这个判断依赖搜索引擎自己的更新节奏,不由你的工具决定。
因此,当你看到凌晨失败时,先确认失败的是哪一层。如果只是抓取失败而收录状态没有变化,处理优先级可以降低;如果收录状态也在同一时段波动,才需要把它当作更严重的问题。这里有一个容易误判的点:robots.txt 的抓取限制不等于可靠的索引移除,反过来,一次抓取失败也不等于收录被移除。两者之间没有即时因果关系。
回到假设情境:这三条外链来自一个已经终止的合作方,对方站点仍在运行但不保证长期维护。此时你的决策不是“修好它”,而是判断这条外链是否还值得继续监测。可依据的条件有两个方向:
判断窗口是否扩大,靠的是同一份时间戳日志的纵向对比,而不是某一天的截图。你可以按周统计失败时段的总时长和出现天数,如果两者都在增加,退出的理由就更充分。这个判断需要至少两周的记录,短于这个跨度容易被单次异常误导。
第一,站点地图不保证收录,所以不要用“已提交站点地图”当作外链页面会被持续抓取的证据。第二,不同搜索引擎对同一 URL 的抓取和索引行为可能不同,如果你的外链分布在不同搜索引擎,需要分别核查,不能用一个引擎的表现推断另一个。
最后回到那个假设情境:凌晨 2:00 到 2:20 的失败,在拿到带时间戳的探测日志和源站日志之前,它只是一个现象,不足以支撑任何处理决定。先让记录跑起来,再用记录去决定是保留、调整还是退出,这才是捕捉短暂证据的实际顺序。