站点运营

站点运营:證书到期與混合内容,HTTPS 细节別拖住蜘蛛抓取

HTTPS 装好之後很少有人回头看,但證书到期、混合内容、多跳跳轉這些問题會直接影响蜘蛛的抓取與頁面渲染。文章梳理了證书管理、资源引用、协议跳轉、TLS 配置几個容易漏掉的检查点,並给出一份可以直接照做的自查顺序。

站点运营

站点运营:證书到期與混合内容,HTTPS 细节別拖住蜘蛛抓取

HTTPS 現在基本是預設配置,多數站点上线时顺手就把證书装好了,之後很少有人再回头看。但證书有有效期,配置也會随服務器迁移、CDN 切換而變化,這些细节一旦出問题,影响的不只是用戶,蜘蛛的抓取同样會失敗。下面梳理几個容易漏掉的检查点。

一、證书到期:最容易忽略,也最容易全线中断

證书過期时,浏览器會给出拦截提示,蜘蛛訪問也會拿到错誤响應或直接中断连接,日誌里往往表現為整站抓取量骤降、返回碼異常。建议把下面几件事固定成例行检查:

  • 记錄每張證书的到期時間,提前三十天设提醒;
  • 能自動續期就自動續期,但自動續期也要有人確認真的成功了;
  • 一張證书覆盖多個域名时,確認主域名、www、备用域名是否都在 SAN 列表里;
  • CDN、负载均衡、獨立子域要分別盘一遍,別只查了主站;
  • 測試环境與预览域名也要管住,方便随时打開检查。
證书問题的特点是平时完全無感,出事就是全站級別的。它的排查成本很低,收益却很直接,适合放進每周的固定检查項。

二、混合内容:頁面能打開,不等于抓取顺畅

站点從 HTTP 迁到 HTTPS 之後,如果頁面里還引用着 http:// 開头的资源,浏览器會提示“不安全内容”,並可能直接拦截加载。對蜘蛛来说,這些资源抓不到,頁面虽然返回 200,實际渲染出来的效果是残缺的。

常见的残留位置

  • 文章正文里手動粘贴的外鏈图片;
  • 老模板里的字体文件、图标库、統計脚本;
  • 嵌入的视频、地图、第三方组件;
  • 硬编碼在資料库里的歷史内容。

自查方法

打開浏览器開發者工具,看 Network 面板里是否有被拦截的請求,控制台通常也會给出具体地址。更彻底的做法是抓取一批有代表性的頁面,在返回的 HTML 里搜尋 http:// 關键字,逐條確認為什么還留着、能不能改掉。

三、协议跳轉與 HSTS

從 http 到 https 的跳轉應尽量一步到位,避免 http → https → 带 www 的多跳鏈路,多跳會拖慢响應,也让蜘蛛多做無用功。同时注意:

  • 站内連結、站点地图、canonical 里直接寫最终的 https 地址,不要依赖跳轉;
  • 跳轉狀態碼用 301,不要用 302 長期顶着;
  • HSTS 開啟後浏览器會强制走 HTTPS,配置出错时排查反而更麻烦,建议確認跳轉稳定後再啟用。

四、TLS 配置與訪問速度

證书本身没問题,握手過程也可能拖慢首字节時間。可以關注證书鏈是否完整、是否啟用了較新的 TLS 版本、是否支持會话复用。用了 CDN 的站点,回源配置和邊缘节点配置要保持一致,否則會出現“有的地区能抓、有的地区报错”的情况。

五、上线前後的自查顺序

  1. 確認證书有效,且覆盖所有需要使用的域名;
  2. 用几個不同網絡环境訪問首頁和内頁,看是否有拦截提示;
  3. 抓取頁面源碼,搜尋 http:// 與舊域名的残留;
  4. 检查跳轉鏈路是否為單跳 301;
  5. 观察服務器日誌,確認蜘蛛抓取的返回碼正常;
  6. 把證书到期時間寫進运维日歷。

這些检查單次做完可能只要十几分钟,但能避開很多“突然打不開、突然没抓取”的意外。它属于典型的底层工作:不出問题的时候没人會注意,出問题的时候却是全局性的。