Skip to content

Fix "Mixed Content" Warnings for Good

Why one http:// image breaks your padlock, how to find every mixed-content source fast, and the CSP one-liner that ends the whole class.

Padlock on a laptop keyboard

Short answer

Find every http:// subresource, rewrite to https://, then consider upgrade-insecure-requests in CSP as a safety net. One mixed image can undo the trust signal of an otherwise careful HTTPS deploy.

Why it matters

Browsers treat mixed content as a trust problem. Active mixed content is blocked. Passive mixed content still marks the page as not fully secure.

Users who were told the site is "on HTTPS" notice the broken padlock and support tickets follow.

Readers skimming fix mixed content warnings often stop at definitions. The part that prevents incidents is the verification step after the change - and the habit of re-checking after the next deploy that touches the same layer.

Find the sources

DevTools Security and Console panels list mixed content.

Also search templates and CMS bodies for hard-coded http:// URLs - themes and old content fields are usual suspects.

Common failure mode for fix mixed content warnings: staging looks fine, production still serves the old config because a CDN, load balancer, or second vhost was never updated. Always verify the hostname customers hit.

Fix and prevent

Rewrite assets to HTTPS at the source. For a transitional net, CSP upgrade-insecure-requests helps, but cleaning the source is still required.

Re-scan after deploy. Do not leave upgrade-insecure-requests as the permanent excuse for dirty content.

If this section on fix mixed content warnings becomes a recurring ticket, automate the check. Manual one-offs rot; a post-deploy assertion or weekly grade keeps the control honest.

Config to copy

Content-Security-Policy: upgrade-insecure-requests

Paste carefully. Test on staging first if the setting can lock users out.

What to do this week

  1. Open production in DevTools and list mixed content warnings.
  2. Rewrite hard-coded http:// assets in CMS/templates.
  3. Optionally add upgrade-insecure-requests while cleaning.
  4. Hard-refresh and re-scan until the warning is gone.

HTTPS on the document is not enough if assets still speak HTTP.

Run a free security grade on your domain · Pricing

Update log (1)

2026-05-14Editorial form rewrite for length and uniqueness.

Sources + verification

Practical guidance based on mainstream browser behavior, common reverse-proxy configuration, and widely published RFCs and vendor docs. Verify on your own stack with curl, browser devtools, and a re-scan after each change.

Keep reading

Tooling Redirect HTTP to HTTPS the Right Way 2026-05-17 Tooling Content Security Policy Explained (Without Tears) 2026-05-02 Tooling SSL vs TLS: What's the Difference in 2026? 2026-05-12