HTTPS 早就是标配,但配好不等于一直没问题。证书会到期,CDN 会更换,页面里可能还留着几年前写死的 http 地址。这些问题平时不显眼,等到证书过期的那一刻,蜘蛛和用户就一起被挡在了门外。
证书出问题,抓取会怎么表现
服务器证书过期或配置错误时,握手阶段就失败了。蜘蛛拿不到任何内容,只能记录一次抓取失败。偶尔一次影响不大,但如果自动续期一直失败,同一个地址被反复尝试、反复失败,抓取频次自然会往下掉。
对用户来说更直接:浏览器弹出安全警告,多数人会直接关掉页面,停留和转化都无从谈起。
证书自查要看哪几项
- 到期时间:不只看主域名,www、m 站、接口子域、CDN 回源域名都要确认,最好提前 30 天处理。
- 域名覆盖:单域名证书、多域名证书、泛域名证书的覆盖范围不同,新加的子域很容易被漏掉。
- 证书链完整性:只装了服务端证书、没带中间证书,部分客户端会校验失败。
- 自动续期:使用免费证书时,务必确认续期任务真的在跑,并且带有失败告警。
- 协议与加密套件:关掉明显过时的协议版本,避免为了兼容老旧客户端而降低整体安全性。
混合内容:页面一半加密一半明文
页面本身是 https,但里面引用了 http 的图片、字体、样式表或脚本,这就是混合内容。浏览器会拦截或降级处理这些资源,最直接的后果是样式错位、图片空白;对蜘蛛来说,同样可能拿不到完整的渲染结果。
常见的几个来源
- 早期文章正文里硬编码的图片地址。
- 主题模板或插件里写死的第三方脚本、字体库。
- CDN 换了域名,但页面里还留着旧地址。
- 用 // 开头的相对协议地址,看着安全,实际仍可能请求到 http。
怎么排查
- 用浏览器开发者工具打开几个代表性页面,在控制台和网络面板里过滤 http:// 开头的请求。
- 抽查栏目页、文章页、详情页各几个,不要只看首页就下结论。
- 把结果整理成清单,逐条替换成 https 地址。
- 批量替换数据库之前先备份,替换后再全站抽查一遍,确认没有漏网。
站内还指向 http 版本怎么办
如果站内还有指向 http 版本的内链,用户和蜘蛛都会先走一次跳转。短期看没问题,但跳转链条一长就会拖慢抓取。更稳妥的做法是把内链直接改成 https 地址,同时在服务器上保留 http 到 https 的 301,兜住外部的旧链接。
证书和混合内容属于那种“平时没人提、出事就全站受影响”的基础项,值得写进定期检查清单。
把它变成固定动作
- 每月固定一天检查所有域名的证书到期时间。
- 每次更换 CDN、服务器或改版之后,跑一遍混合内容检查。
- 定期翻服务器日志和搜索后台的抓取错误,留意握手失败类的记录。
- 把这两项写进上线检查清单,和 robots、sitemap 放在一起。
几个容易踩的坑
- 只检查首页,忘了子域和测试域名。
- 以为浏览器没弹警告就万事大吉,忽略控制台里的混合内容提示。
- 证书续期交给脚本自动完成,却没有失败通知,直到过期才发现。
这些检查都不复杂,花不了多少时间,但它们决定了蜘蛛能不能顺利进来、页面能不能被完整渲染。把它们做成例行公事,比事后救火省力得多。