很多站点已经全站 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 不是配置一次就一劳永逸的事情。证书会过期,页面会改版,第三方资源会变化。把证书有效期、混合内容和跳转链纳入常规自查,比事后补救更省力。