站点上了 HTTPS 并不代表安全配置就一劳永逸。证书会过期,页面里的资源可能还在走 HTTP,服务器配置也可能在某个环节掉链子。对访客来说,这些是浏览器地址栏里的警告;对搜索蜘蛛来说,则可能是一次失败的抓取,或者只拿到半截页面。
这一篇不讨论怎么申请证书,而是把注意力放在上线之后容易忽略的几件事上。它们不复杂,但一旦出问题,排查起来往往比想象中费时间。
证书本身:过期、域名不匹配、链不完整
打开浏览器开发者工具的安全面板,或者用命令行请求一次页面头信息,就能看到证书的基本状态。最常见的三类问题:
- 证书过期:很多站点用免费证书,三个月一续。如果续期脚本失败又没人发现,到期当天所有 HTTPS 访问都会报错。
- 域名不匹配:证书只签了 www 版本,裸域名没有覆盖;或者子域名用了主域名证书,访问时提示名称不一致。
- 证书链不完整:服务器只发了站点证书,没发中间证书。部分浏览器能自动补全,但一些蜘蛛和工具会直接判定证书无效。
这三类问题里,过期最容易监控,也最不该发生。把到期提醒放在日历、监控平台或服务器巡检脚本里,比事后救火划算得多。
混合内容:页面是 HTTPS,资源却在走 HTTP
混合内容指的是 HTTPS 页面中加载了 HTTP 资源。图片、脚本、样式表、字体、iframe 都可能中招。浏览器通常会拦截主动混合内容,比如脚本和样式,被动内容如图片可能被降级或阻止加载。
结果就是:访客看到页面布局错乱甚至空白,蜘蛛拿到的 HTML 虽然状态码是 200,但渲染后的内容残缺。如果关键内容依赖这些资源,抓取和索引效果都会打折扣。
混合内容不会让页面直接 404,却会让页面“看起来正常”地缺一块。定期在开发者工具 Console 里扫一遍,比凭感觉可靠。
常见出现位置包括:
- 历史文章里粘贴的外链图片、视频嵌入代码。
- 第三方统计、客服、广告脚本仍使用 http:// 地址。
- CDN 或对象存储回源地址配置成了 HTTP。
- 模板里的字体、图标库引用没有跟着站点一起升级。
处理方式不复杂:把资源地址改成 HTTPS,或者使用相对协议。如果对方站点不支持 HTTPS,就考虑换源或本地化。改完后最好全站扫一遍,而不是只改首页。
重定向与 HSTS:别让跳转变成循环
从 HTTP 跳到 HTTPS 是常规操作,但要避免几种情况:HTTP 跳 HTTPS 再跳回 HTTP、带 www 和不带 www 之间来回跳、跳转链太长。蜘蛛每次遇到长跳转链,都会多消耗一点抓取预算。
HSTS 可以让浏览器强制走 HTTPS,减少一次跳转。不过开启前要确认全站和所有子域名都已支持 HTTPS,否则可能把某些服务挡在门外。预加载列表更要谨慎,提交后想撤回并不轻松。
一份日常检查清单
- 确认证书到期时间,并设置提前 15 到 30 天的提醒。
- 用不同域名形态访问:裸域名、www、常用子域名,看证书是否都匹配。
- 在开发者工具 Console 和 Network 面板检查混合内容警告。
- 抽查主要模板,确认脚本、样式、字体、图片引用协议统一。
- 检查 HTTP 到 HTTPS 的跳转是否一步到位,有没有循环或多余跳转。
- 如果用了 CDN,确认回源协议和证书配置一致。
- 改版或换服务器后,重新跑一遍上述检查。
这些检查不需要每次全做,但至少在每个季度、证书续期前后、以及服务器或 CDN 配置变更后过一遍。HTTPS 的稳定性是站点运营的底座,底座不稳,后面谈抓取、收录和内容更新都会事倍功半。