报错是这么冒出来的。证书在周六凌晨过期,监控只发了邮件没人看,七小时后才续上。恢复后一周索引量掉了 3000 条,抓取日志里 SSL 错误又持续了两天,之后逐步恢复,但收录一直没回来。

中间走过弯路,把「sitemap 在过期期间被提交 整份被判不可读」当成主因,改完现象没变。

真正麻烦的地方在于,几个原因的现象几乎一样。过期期间蜘蛛握手失败 页面被标记为不可访问。另一种情况是恢复后 CDN 和 DNS 仍缓存了失败状态。

还有一种情况,部分外链在故障期间被站长撤掉。

第一件事是确认当前证书有效期

echo | openssl s_client -connect www.example.com:443 2>/dev/null | openssl x509 -noout -dates

续签并重载服务

certbot renew --force-renewal && nginx -s reload

然后重新提交首页并请求抓取

curl -s 'https://api.indexnow.org/indexnow?url=https://www.example.com/&key=$KEY'

末了统计恢复后的抓取量

grep -c 'Baiduspider' access.log

别只看报错消失,验证要多做一步。证书日期正常,三天内抓取量回到过期前水平,索引量在两周内补齐。

补一句。续签成功不等于蜘蛛立刻回来,抓取器的失败缓存会持续一段时间,别急着再改配置。这类问题最好一次改到位,反复小改反而容易把原因搅混。

作者 9823189