SEO 百科
混合内容
本页目录
混合内容
混合内容 指 HTTPS 页面里混进了 HTTP 资源[1]。这类资源在途中可能被看见或者改动,脚本尤其危险。站长处理它的重点在排查:页面上哪个标签还指着 http://,改完之后浏览器与爬虫看到的结果是否一致。
浏览器的处理方式
MDN 说明,浏览器把混合内容分成“可升级”与“可阻止”两类[1]。可升级的请求把 http 换成 https 再发,可阻止的请求直接拦下[1]。
图片、音频、视频属于可升级。脚本、样式表、<iframe>、fetch() 请求属于可阻止[1]。
有一个例外:地址里的主机部分是 IP 而不是域名时,本来可升级的请求也会被拦。比如 <img src="http://example.com/a.png"> 会被升级,<img src="http://93.184.215.14/a.png"> 会被拦下[1]。
对页面的影响
升级之后资源仍能加载,但浏览器控制台会留下一条警告[1]。这条警告是排查的起点。
被拦下的资源就没有这么温和。脚本被拦页面就是坏的。脚本取不到,依赖它的按钮、表单、内容直接失效。
与抓取和收录的关系
Google 会把不安全依赖当作一个信号,用来选择规范网址。文档列出几种情况,“HTTPS 页面含有不安全依赖(图片除外)”是其中之一,这些情况都会让 Google 偏好 HTTP[3]。
也就是说,主文档是 HTTPS,脚本或样式却从 HTTP 拉,Google 可能改选 HTTP 版作为规范网址[3]。这一步和排名无关,先丢的是同一个页面的规范身份。
爬虫拿到的 HTML 源码不会因为混合内容而改变,变的是渲染时能拿到哪些资源。由脚本生成的内容,脚本一旦取不到,渲染结果就缺一块。
排查方法
MDN 给的第一招是走一遍站点,看控制台里的警告[1]。要点可以归成三条。
- 把自家资源的引用改成相对地址,或者改成 HTTPS 绝对地址。
- 外部资源优先找它的 HTTPS 版本。
- 用工具整体扫一遍,MDN 列举了 HTTPSChecker、mcdetect 这类检查工具[1]。
另外可以在响应里加一条指令,让浏览器把页面上的 HTTP 请求统一升级:
Content-Security-Policy: upgrade-insecure-requests
MDN 说明,这条指令会让页面上所有不安全地址都按安全地址处理[2]。它是给存量链接多的站点用的过渡手段,替代不了把引用改对。
常见误用
- 只把主文档换成 HTTPS,脚本和样式还留在 HTTP。
- 以为图片会自动升级就万事大吉。升级只覆盖一部分类型,主机是 IP 的图片照样被拦。
- 把
upgrade-insecure-requests当长期方案。外部站点没有 HTTPS 版时,升级之后的请求一样会失败。 - 只在开发环境检查。上线之后新加的第三方脚本,没人再回头看控制台。
附录
参见
参考资料
官方(境外)
- 《Mixed content》,MDN Web 文档,2025-11-30 更新。
- 《Content-Security-Policy (CSP)》,MDN Web 文档。
- 《如何使用 rel="canonical" 及其他方法指定规范网址》,Google 搜索中心,2026-07-10 更新。
外部链接
无。