HTTPS 早就是标配,但配好不等于一直没問题。證书會到期,CDN 會更換,頁面里可能還留着几年前寫死的 http 地址。這些問题平时不顯眼,等到證书過期的那一刻,蜘蛛和用戶就一起被挡在了门外。
證书出問题,抓取會怎么表現
服務器證书過期或配置错誤时,握手阶段就失敗了。蜘蛛拿不到任何内容,只能记錄一次抓取失敗。偶尔一次影响不大,但如果自動續期一直失敗,同一個地址被反复尝试、反复失敗,抓取频次自然會往下掉。
對用戶来说更直接:浏览器彈出安全警告,多數人會直接關掉頁面,停留和轉化都無從谈起。
證书自查要看哪几項
- 到期時間:不只看主域名,www、m 站、接口子域、CDN 回源域名都要確認,最好提前 30 天處理。
- 域名覆盖:單域名證书、多域名證书、泛域名證书的覆盖范围不同,新加的子域很容易被漏掉。
- 證书鏈完整性:只装了服務端證书、没带中間證书,部分客戶端會校驗失敗。
- 自動續期:使用免費證书时,務必確認續期任務真的在跑,並且带有失敗告警。
- 协议與加密套件:關掉明顯過时的协议版本,避免為了兼容老舊客戶端而降低整体安全性。
混合内容:頁面一半加密一半明文
頁面本身是 https,但里面引用了 http 的图片、字体、样式表或脚本,這就是混合内容。浏览器會拦截或降級處理這些资源,最直接的後果是样式错位、图片空白;對蜘蛛来说,同样可能拿不到完整的渲染结果。
常见的几個来源
- 早期文章正文里硬编碼的图片地址。
- 主题模板或插件里寫死的第三方脚本、字体库。
- CDN 換了域名,但頁面里還留着舊地址。
- 用 // 開头的相對协议地址,看着安全,實际仍可能請求到 http。
怎么排查
- 用浏览器開發者工具打開几個代表性頁面,在控制台和網絡面板里過滤 http:// 開头的請求。
- 抽查栏目頁、文章頁、詳情頁各几個,不要只看首頁就下结论。
- 把结果整理成清單,逐條替換成 https 地址。
- 批量替換資料库之前先备份,替換後再全站抽查一遍,確認没有漏網。
站内還指向 http 版本怎么办
如果站内還有指向 http 版本的内鏈,用戶和蜘蛛都會先走一次跳轉。短期看没問题,但跳轉鏈條一長就會拖慢抓取。更稳妥的做法是把内鏈直接改成 https 地址,同时在服務器上保留 http 到 https 的 301,兜住外部的舊連結。
證书和混合内容属于那種“平时没人提、出事就全站受影响”的基础項,值得寫進定期检查清單。
把它變成固定動作
- 每月固定一天检查所有域名的證书到期時間。
- 每次更換 CDN、服務器或改版之後,跑一遍混合内容检查。
- 定期翻服務器日誌和搜尋後台的抓取错誤,留意握手失敗類的记錄。
- 把這两項寫進上线检查清單,和 robots、sitemap 放在一起。
几個容易踩的坑
- 只检查首頁,忘了子域和測試域名。
- 以為浏览器没彈警告就萬事大吉,忽略控制台里的混合内容提示。
- 證书續期交给脚本自動完成,却没有失敗通知,直到過期才發現。
這些检查都不复杂,花不了多少時間,但它們决定了蜘蛛能不能顺利進来、頁面能不能被完整渲染。把它們做成例行公事,比事後救火省力得多。