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]。要点可以归成三条。

  1. 把自家资源的引用改成相对地址,或者改成 HTTPS 绝对地址。
  2. 外部资源优先找它的 HTTPS 版本。
  3. 用工具整体扫一遍,MDN 列举了 HTTPSChecker、mcdetect 这类检查工具[1]。

另外可以在响应里加一条指令,让浏览器把页面上的 HTTP 请求统一升级:

Content-Security-Policy: upgrade-insecure-requests

MDN 说明,这条指令会让页面上所有不安全地址都按安全地址处理[2]。它是给存量链接多的站点用的过渡手段,替代不了把引用改对。

常见误用

  • 只把主文档换成 HTTPS,脚本和样式还留在 HTTP。
  • 以为图片会自动升级就万事大吉。升级只覆盖一部分类型,主机是 IP 的图片照样被拦。
  • 把 upgrade-insecure-requests 当长期方案。外部站点没有 HTTPS 版时,升级之后的请求一样会失败。
  • 只在开发环境检查。上线之后新加的第三方脚本,没人再回头看控制台。

附录

参见

参考资料

官方(境外)

  1. 《Mixed content》,MDN Web 文档,2025-11-30 更新。
  2. 《Content-Security-Policy (CSP)》,MDN Web 文档。
  3. 《如何使用 rel="canonical" 及其他方法指定规范网址》,Google 搜索中心,2026-07-10 更新。

外部链接

无。