🤖NEW:AI-Powered Incremental Builds — your site updates in under 30 seconds. See what's new →
← All Tools
100% Free • Mixed Content Auditor

Mixed Content Scanner

Scan HTTPS web pages to detect unencrypted HTTP images, scripts, stylesheets, and iframe resources triggering security warnings.

Technical Deep-Dive

Mixed Content Architecture & Browser Security Enforcement

Last updated: August 2026 • Reviewed by Nimbica Technical SEO Team

1. Active vs. Passive Mixed Content

Per web.dev's mixed content guide, the distinction between active and passive content isn't arbitrary — it reflects real risk severity. Active content (JavaScript, CSS, iframes, XHR/fetch requests) can alter page behavior, steal data, or inject malicious code if intercepted on the network, so browsers block it outright. Passive content (images, video, audio) can still be tampered with — swapped for something misleading, for example — but can't execute code, which is why browsers flag rather than fully block it.

2. Modern Browser Mixed Content Blocking

All major browsers (Chrome, Firefox, Safari, Edge) block active mixed content by default and have done so for years — a blocked script or iframe typically fails silently from a visitor's perspective, which is exactly why mixed content bugs often go unnoticed until someone checks the browser console or a tool like this one flags it. Passive mixed content (images) usually still loads but strips the padlock indicator, which visitors are more likely to notice and lose trust over even without understanding the technical cause.

3. Enforcing upgrade-insecure-requests via Headers

A Content-Security-Policy directive called upgrade-insecure-requests tells the browser to automatically rewrite any HTTP subresource request to HTTPS before making it — a useful defensive backstop for legacy content with hardcoded http:// URLs, though it's not a substitute for actually fixing the underlying URLs (the upgrade can fail silently if the HTTPS version of the resource doesn't exist). Check whether this directive is already active with the HTTP Header Checker.

4. HTTPS Asset Handling via Nimbica Edge

Nimbica pre-renders WordPress content into static HTML served over HTTPS from edge locations — the delivery layer itself is secure by design. It doesn't retroactively fix hardcoded http:// references sitting inside your existing post content or database, which is a WordPress-side content issue that needs addressing at the source (see the FAQ above) regardless of hosting or delivery architecture.

5. How to Use This Scanner

  1. Scan any HTTPS page and review the flagged HTTP resources, if any.
  2. For each flagged resource, check whether an HTTPS version exists (most modern CDNs and image hosts support it) and update the reference.
  3. If the issue is widespread across many pages, it likely traces back to database content rather than one-off page edits — consider a proper serialized-data-safe search-and-replace tool.
  4. Re-scan key pages after fixing to confirm the browser padlock/warning is resolved.

6. Common Mistakes

  • Using a naive find-and-replace on the WordPress database. WordPress stores some data as PHP serialized arrays with embedded string-length counts — a plain text find-and-replace on http:// → https:// can corrupt these if the string length changes, breaking widgets or settings. Use a tool built for WordPress's serialization format.
  • Only checking the homepage. Mixed content often hides in older blog posts or rarely-visited pages that weren't touched during the original HTTPS migration.
  • Assuming HTTPS redirect at the server level fixes everything. A server-level redirect handles the top-level page request; it doesn't rewrite hardcoded http:// references embedded inside the page's own HTML content.

7. Limitations

This scanner detects hardcoded http:// URLs visible in a page's raw HTML source — it doesn't execute JavaScript, so mixed content introduced dynamically by client-side scripts after page load won't be caught. It also checks one page per scan; a full-site audit means checking a representative sample across templates and older content.

Give search engine crawlers sub-50ms response times with Nimbica

Transform dynamic PHP rendering bottlenecks into ultra-fast static HTML deployed across 300+ global edge locations.

Frequently Asked Questions

What is mixed content on an HTTPS website?

Mixed content happens when an HTTPS page — the "envelope" the browser confirms is encrypted and shows a padlock for — loads one or more subresources (an image, a script, a stylesheet) over plain, unencrypted HTTP instead. The page itself may look secure, but any resource fetched over HTTP is exposed to interception or tampering on the network, undermining the security guarantee HTTPS is supposed to provide.

How do web browsers handle mixed content?

Modern browsers treat "active" mixed content (scripts, iframes, stylesheets — content that can execute code or alter the page) as a serious risk and block it outright by default. "Passive" mixed content (images, video, audio — content that can't execute code) is typically still loaded but flagged, often by removing the padlock or showing a "not fully secure" warning, since a tampered image is a lower — but non-zero — risk than tampered code.

How can I fix mixed content errors in WordPress?

The most common root cause is old absolute http:// URLs baked into database content from before the site migrated to HTTPS — these need updating to https://, either via a careful search-and-replace tool built for WordPress's serialized database format (not a naive find-and-replace, which can corrupt serialized arrays) or a plugin designed for this migration. Site-wide HTTPS enforcement (a redirect rule) handles the top-level page load, but doesn't rewrite hardcoded http:// references already sitting inside post content or theme options.

Why would a site have mixed content years after switching to HTTPS?

A few common causes: content imported or copied from an old backup that still has hardcoded http:// URLs, a third-party embed or widget whose provider hasn't updated their own HTTPS support, or a plugin/theme setting storing an absolute HTTP URL that was never revisited after the original HTTPS migration. It's worth re-scanning periodically, not just once at migration time.