不少站点运营者把 HTTPS 證书当成“浏览器的事”,觉得只要用戶訪問时没彈红色警告就没問题。但對搜尋蜘蛛来说,證书是建立连接的第一步。證书一旦過期、鏈不完整或域名不匹配,蜘蛛可能在握手阶段就终止訪問,连頁面内容都拿不到。
證书問题為什么會影响蜘蛛
蜘蛛抓取和普通用戶訪問一样,需要先完成 TLS 握手。如果證书無效,抓取工具通常不會像用戶那样点击“繼續訪問”,而是直接记錄為失敗。短時間内的失敗可能只是抓取延迟,但如果證书問题持續數天,站点在搜尋端的表現就可能出現波動:已收錄頁面被重新评估,新頁面發現變慢,抓取频率下降。
更麻烦的是,證书错誤有时只出現在部分节点或部分蜘蛛身上。比如 CDN 邊缘节点證书没更新,源站正常;或者移動端蜘蛛和桌面端蜘蛛走的线路不同。只看自己浏览器是否正常,容易漏掉問题。
常见證书問题清單
- 證书過期:最常见也最容易避免,但忘记續期仍然时有發生。
- 證书鏈不完整:只部署了站点證书,缺少中間證书,部分客戶端和蜘蛛會握手失敗。
- 域名不匹配:證书只簽了 example.com,但蜘蛛訪問的是 www.example.com,或反之。
- 混合内容:頁面是 HTTPS,但图片、脚本、样式仍用 HTTP 地址,浏览器會警告,蜘蛛也可能拿不到资源。
- 服務器時間偏差:服務器時間不准,可能让證书被誤判為未生效或已過期。
- 自簽名證书:公開站点使用自簽名證书,蜘蛛通常不會信任。
自查步骤
- 核對證书有效期,設定至少提前 30 天提醒,不要只依赖到期当天。
- 用在线工具或命令行检查證书鏈,確認中間證书完整。
- 分別測試裸域、www、移動端域名、CDN 域名是否都在證书覆盖范围内。
- 检查頁面源碼中的资源地址,把 HTTP 連結替換為 HTTPS 或相對协议連結。
- 確認服務器時間與标准時間同步,避免時間偏差導致證书校驗失敗。
- 如果使用 CDN,確認 CDN 侧證书和回源證书都已更新,而不是只更新源站。
混合内容與重定向
證书没問题,不代表頁面完全安全。混合内容會让浏览器顯示“不安全”,部分抓取工具也會因為资源加载失敗而無法完整渲染頁面。尤其是图片和 JS 文件,如果仍走 HTTP,蜘蛛可能拿不到關键内容。
另外,從 HTTP 到 HTTPS 的跳轉要尽量一步到位,避免多次跳轉。蜘蛛對连續跳轉的耐心有限,跳轉鏈太長會增加抓取失敗的概率。如果站点已经全站 HTTPS,建议用 301 把 HTTP 版本稳定地指向 HTTPS 版本,並保持路径一致。
續期、监控與恢复
證书續期最好自動化,比如使用 ACME 客戶端配合定时任務。但自動化不等于不用检查,仍然需要监控續期是否成功、證书是否部署到了所有节点。可以設定两種提醒:到期前提醒和握手失敗告警。
證书過期後,即使很快恢复,也建议查看一段時間内的抓取日誌,確認蜘蛛是否重新正常訪問,而不是只等搜尋端自己恢复。
恢复後可以主動提交主要頁面,帮助蜘蛛重新發現。但不要短時間内大量提交所有 URL,優先提交首頁、栏目頁和近期更新的内容頁。提交只是辅助,前提是證书和服務器已经稳定。
小结
HTTPS 證书是蜘蛛訪問站点的入口。把有效期、證书鏈、域名覆盖、混合内容和續期监控纳入日常检查,比等到抓取異常再去排查更省事。站点运营不需要天天盯着證书,但至少要知道它什么时候到期、由谁负责更新。