Skip to content
All tutorials

/tutorials/what-mixed-content-is-and-why-browsers-block-it

What Mixed Content Is and Why Browsers Block It

Why an HTTPS page loading even one resource over plain HTTP undermines the whole connection, and the difference between what browsers block outright and what they merely warn about.

5 min read

Run Mixed Content Checker

Active mixed content versus passive mixed content

Browsers treat two kinds of mixed content differently. Active mixed content, scripts and stylesheets that can actually change what the page does, is blocked outright and simply fails to load. Passive mixed content, mainly images and video, is allowed to load but is flagged, since a tampered image is a lesser risk than a tampered script, though modern browsers have been steadily tightening even this over time.

Why it still happens after a site moves to HTTPS

Mixed content most often survives a migration to HTTPS as a leftover hardcoded http:// URL somewhere in a template, an old piece of content, or a third party embed that was never updated. It is easy to miss because the page usually still looks fine, the broken part is invisible unless you check the browser's developer console or scan the page's actual source directly.

The fix is usually a protocol-relative or absolute HTTPS URL

Most mixed content is fixed by simply changing http:// to https:// in the offending reference, since the overwhelming majority of resources, fonts, CDN-hosted libraries, image hosts, are available over HTTPS today regardless of which protocol the original link used. A resource that genuinely has no HTTPS version at all is rare enough that it usually means finding an alternative source rather than working around it.

Trying it yourself

Mixed Content Checker fetches a page served over HTTPS and scans it for resources still being loaded over plain HTTP, listing each one so it can be fixed directly rather than hunting for it in a browser's developer tools one page at a time.