排查搜尋蜘蛛抓取入口时,多數人先看 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 提交、内鏈推送、主動提交都可能表現為“提交了但没動静”。先把這一层压稳,再去谈抓取路径、抓取预算和内鏈结构,顺序才不會反過来。