很多站点已经全站 HTTPS,但證书和混合内容的問题並没有因此消失。它們不像 404 那样顯眼,却可能让搜尋蜘蛛在建立连接、加载资源或渲染頁面时直接中断。對做 URL 發現和蜘蛛池投放的站点来说,入口頁一旦出現安全警告,後續的抓取請求很可能反复失敗。
先確認證书本身没有硬伤
搜尋蜘蛛訪問頁面的第一步是完成 TLS 握手。如果證书過期、證书鏈不完整、域名不匹配,握手就會失敗,蜘蛛拿不到任何内容,更谈不上發現頁面里的連結。
- 有效期:检查證书到期時間,設定提前提醒,避免到期当天才發現。
- 證书鏈:服務器要下發完整的中級證书,不要只给叶子證书。
- 域名覆盖:確認主域名、www、移動端域名、需要抓取的子域名都在證书覆盖范围内。
- SNI:同一 IP 上托管多個站点时,確認服務器按 SNI 返回正确證书。
混合内容:頁面“半安全”最容易漏
HTTPS 頁面里如果還引用 HTTP 资源,浏览器可能自動升級、拦截或给出警告。蜘蛛在渲染时也可能拿不到样式、脚本或图片,影响對頁面结构和正文的判断。
- 图片、CSS、JavaScript 的地址是否仍以 http:// 開头。
- 字体文件、视频、iframe 嵌入地址是否混用协议。
- 表單 action、接口請求、統計代碼是否指向 HTTP。
- 内容編輯器里粘贴的外鏈图片,是否會在發布後引入混合内容。
排查时可以直接在浏览器控制台看混合内容警告,也可以用抓取工具查看资源請求的协议。不要只检查首頁,栏目頁、詳情頁、专题頁都值得抽查。
跳轉與 HSTS 要配合好
HTTP 到 HTTPS 的跳轉本身不是問题,但跳轉鏈太長、跳轉目标又带證书错誤,就會让蜘蛛白跑。建议把常用的入口地址一次性跳到最终 HTTPS 版本,並保持路径一致。
- HTTP 到 HTTPS 的跳轉是否直接指向最终地址。
- www 與非 www 是否统一,避免来回跳。
- 如果啟用了 HSTS,確認所有子域名都能正常提供 HTTPS,否則可能把自己挡在门外。
- 跳轉狀態碼優先使用 301,临时調整再用 302。
用日誌和工具做一次驗證
證书和混合内容問题往往藏得很深,靠感觉判断不够。可以按下面几步做一次抽查:
- 用 curl -I 检查 HTTP 和 HTTPS 的响應头、跳轉鏈與狀態碼。
- 在浏览器開發者工具里查看 Security 面板和控制台,確認没有證书错誤和混合内容警告。
- 用在线證书檢測工具查看證书鏈、有效期和协议支持情况。
- 翻看服務器日誌,留意蜘蛛請求是否出現 TLS 握手失敗、5xx 或大量 4xx。
- 把證书到期時間加入监控,而不是只记在個人日歷里。
给蜘蛛池和 URL 發現留一個干净入口
如果站点會通過蜘蛛池、外鏈或 sitemap 投放 URL,入口頁的 HTTPS 狀態尤其重要。入口頁證书異常,蜘蛛可能连第一次請求都完不成,後續的 URL 發現自然無從谈起。
- sitemap 和 robots.txt 里声明的地址统一使用 HTTPS。
- 蜘蛛池或投放連結指向的落地頁,優先检查證书和混合内容。
- 重要入口頁尽量少依赖第三方 HTTP 资源,减少渲染中断的概率。
- 改版或換證书後,用日誌確認蜘蛛抓取是否恢复正常。
HTTPS 不是配置一次就一劳永逸的事情。證书會過期,頁面會改版,第三方资源會變化。把證书有效期、混合内容和跳轉鏈纳入常規自查,比事後补救更省力。