排查搜索蜘蛛抓取入口时,多数人先看 robots.txt、Sitemap 和内链,HTTPS 握手这一层往往被跳过。实际情况是:只要 TLS 握手失败,后面的 robots、页面内容、内链都不存在,蜘蛛看到的就是“连不上”。这类问题不报错、不留痕,只在抓取记录里表现为可达率下降。
握手失败在抓取记录里的表现
- 抓取频次整体下降,但没有对应的 4xx 或 5xx 记录可供对照。
- 服务器访问日志里缺少对应 UA 的请求行,只有连接被中断的痕迹。
- 部分 IP 段可抓、部分 IP 段完全抓不到,多节点回源时尤其明显。
- 表现为间歇性失败,而不是某个 URL 稳定失败,容易被误判成限流。
三类常见异常
证书链不完整
只部署了站点证书,没有随握手下发中间 CA 证书。浏览器可能靠本地缓存或 AIA 补齐,而抓取客户端通常不做这一步,握手直接失败。典型现象就是“浏览器能打开,蜘蛛打不开”。
SNI 缺失或与证书不匹配
同一 IP 承载多个域名时,服务端依赖 SNI 选择证书。如果默认证书属于另一个域名,握手虽然能完成,但域名校验不通过。IPv6 回源、CDN 回源到源站这两条链路最容易出现默认站点证书不对的情况。
协议与加密套件协商失败
只允许 TLS 1.3 或仅开放少数套件时,版本较旧的抓取客户端可能协商失败;反过来,如果服务器仍保留已废弃的协议,某些安全策略严格的抓取端也会主动断开。两种方向的后果一样:入口不可达。
建议的排查顺序
- 先在多个网络出口验证握手,排除本地网络或本地代理的干扰。
- 查看完整证书链,确认中间证书是否随握手一起下发。
- 指定域名发起请求(带 SNI),确认返回的是本域名证书而非默认证书。
- 分别用 IPv4 和 IPv6 完成握手,确认两条链路拿到的证书一致。
- 核对 CDN 与源站证书的有效期和部署时间,避免只更新了一侧。
- 确认服务器是否对某些 UA 或高频连接提前断开。
实用核对清单
- 证书有效期:抓取频次的下滑时间点是否与到期时间重合。
- 回源链路:CDN 到源站是否使用自签证书而未加入信任。
- HSTS:max-age 与预加载设置是否让 http 入口被强制跳转后失败。
- 握手耗时:接近抓取端超时阈值时,表现是间歇失败而不是全挂。
- 混合内容:主文档为 https、内链为 http 时不影响入口可达,但会影响渲染后的链接发现。
提示:TLS 层排查最好与 DNS、robots、Sitemap 分开做。一次只改一个变量,否则无法判断究竟是哪一层修好了。
修复与回归观察
证书链问题通常是补挂中间证书即可;SNI 问题需要为每个域名配置独立的 server 块,或确认默认证书正确;协议与套件问题建议同时保留 TLS 1.2 与 1.3,兼顾新旧客户端。
修改后不要只看一次握手成功就下结论。持续观察抓取频次、入口页的可达记录,以及不同 IP 段的差异是否收敛,稳定几天后再判断是否恢复。任何改动都不承诺收录或排名变化,这里解决的只是“能不能连上、能不能拿到入口”这一层问题。
与 URL 发现的关系
入口可达是 URL 发现的前提。握手不稳定时,Sitemap 提交、内链推送、主动提交都可能表现为“提交了但没动静”。先把这一层压稳,再去谈抓取路径、抓取预算和内链结构,顺序才不会反过来。