Free Mixed Content Scanner

Scan HTML for mixed content issues. Find HTTP resources on HTTPS pages that block or warn in modern browsers. Free, fast, and works entirely in your browser with no sign-up required.

Updated

Share:
Home/Website Tools/Mixed Content Scanner

Mixed Content Scanner

Scan HTML for HTTP resources that cause mixed content issues on HTTPS pages.

Mixed Content Scanner

Frequently Asked Questions

What is mixed content?

Mixed content occurs when an HTTPS page loads resources (images, scripts, styles) over HTTP, which browsers block or warn about.

What is the difference between active and passive mixed content?

Active mixed content (scripts, stylesheets) is blocked by browsers. Passive (images, video) shows a warning.

Is it free?

Yes, completely free.

Is my data safe with this tool?

Absolutely. The Mixed Content Scanner processes everything client-side in your browser. No data is uploaded to or stored on any server. Your content remains private on your device at all times.

Does the Mixed Content Scanner work on mobile devices?

Yes, the Mixed Content Scanner is fully responsive and works on smartphones and tablets. You can use it on any device with a modern web browser -- no app download required.

Do I need to create an account to use this tool?

No account or registration is needed. Simply open the Mixed Content Scanner in your browser and start using it immediately. There are no sign-up walls or usage restrictions.

How do I use the Mixed Content Scanner?

Simply enter your input in the provided field, adjust any settings to your preference, and the tool will process it instantly. You can then copy the result to your clipboard or download it.

Which browsers are supported?

The Mixed Content Scanner works in all modern browsers including Chrome, Firefox, Safari, Edge, and Opera. For the best experience, use the latest version of your preferred browser.

Why does my HTTPS page show 'Not Secure' even though I have a valid SSL certificate?

A valid SSL certificate only secures your page's own connection — it can't fix sub-resources that still load over plain HTTP. If a single image, script, stylesheet, or font on the page points to an "http://" URL, the browser flags the whole page as mixed content and may drop the padlock or show a "Not Secure" label. Active resources like scripts and stylesheets are often blocked outright, which can break charts, sliders, and analytics, while passive ones like images simply downgrade the connection's trust signal. The certificate is doing its job; the leak is in your markup. Paste your page's HTML source into this scanner and it lists every insecure resource by element type, line number, and exact HTTP URL so you can find what's costing you the secure padlock and fix it.

How do I find which resource is causing mixed content on my page?

The fastest way is to inspect the actual HTML your page sends. Open the page, right-click, choose View Page Source (or grab your framework's rendered output), then paste the full markup into this scanner and click Scan for Mixed Content. It pattern-matches every resource-loading element — images, scripts, stylesheets, iframes, objects, embeds, video, audio, fonts, form actions, and HTTP URLs inside CSS url() and background declarations — and reports each one with its element type, the line number in your source, and the offending HTTP URL. That line number lets you jump straight to the problem in your editor instead of hunting blindly. Results are split into active (blocked) and passive (warning) so you know what's breaking versus what's just downgrading security. Use the Copy All URLs button to grab every insecure link at once for a find-and-replace pass.

What is the difference between protocol-relative URLs and upgrade-insecure-requests?

Both fix mixed content, but they work at different levels. A protocol-relative URL drops the scheme entirely — you write "//example.com/file.js" and the browser loads the resource over whatever protocol the page itself uses, so an HTTPS page pulls it over HTTPS automatically. It's a per-link edit and assumes the host actually serves the file securely. The Content-Security-Policy "upgrade-insecure-requests" directive is a site-wide header that tells the browser to silently rewrite every HTTP sub-resource request to HTTPS before fetching it, making it a fast safety net during an HTTPS migration. The cleanest long-term fix is still changing "http://" to "https://" directly where the secure version exists. This scanner shows all three remedies once it detects issues, and the Copy All URLs button makes a bulk find-and-replace straightforward.

Does this scanner check the live page or only the HTML I paste?

It scans only the HTML you paste — it does not fetch or crawl the live URL. The tool parses your markup locally in the browser, matching it against known resource-loading elements and CSS references to find insecure "http://" links. This design keeps everything private: source from an internal staging site, an unreleased page, or a client project never leaves your device, with no upload, storage, or account required. The trade-off is that the scanner sees exactly what's in the markup you provide and nothing more. If resources are injected by JavaScript after load, View Page Source may not include them, so paste the fully rendered DOM (for example from your browser's Elements panel or your framework's server output) for the most complete results. Paste your full rendered source above to catch every insecure reference.

Will mixed content affect my SEO and search rankings?

Indirectly, yes. Google treats HTTPS as a ranking signal and surfaces security warnings to users, so a page flagged as "Not Secure" can hurt click-through and trust even if the URL still ranks. The bigger risk is functional: active mixed content like blocked scripts and stylesheets can break layouts, interactive widgets, and analytics, which damages user experience, engagement metrics, and any tracking you rely on to measure SEO performance. Passive issues won't break the page but cost you the padlock that signals a safe site. Cleaning up every insecure resource is simply part of implementing HTTPS correctly. This scanner separates active (blocked) from passive (warning) findings and gives you the exact line and URL for each, so you can resolve the page-breaking issues first and then tidy the rest before you ship.

Embed This Tool

Add a free, live version of this widget to your own website or blog post — it runs entirely in your visitors' browsers, with a credit link back to The Toolbox.

Copy & paste this HTML
<iframe src="https://getthetoolbox.com/embed/mixed-content" title="Free Mixed Content Scanner — The Toolbox" width="100%" height="300" style="max-width:480px;border:1px solid #e2e8f0;border-radius:12px" loading="lazy"></iframe>
<p style="font-size:12px;margin:4px 0 0"><a href="https://getthetoolbox.com/website-tools/mixed-content?utm_source=embed&utm_medium=widget" target="_blank" rel="noopener">Free Mixed Content Scanner</a> by The Toolbox</p>

About the Mixed Content Scanner

The Mixed Content Scanner finds insecure http:// resources hiding inside an otherwise secure HTTPS page. Paste your page's HTML source and it lists every image, script, stylesheet, iframe, video, font, form, and CSS reference that still loads over plain HTTP — the exact links that make a browser show a "Not Secure" warning or silently block part of your page. It's built for developers, site owners, and anyone migrating a site to HTTPS who needs to know what's still leaking before they ship.

The scanner is useful precisely because the problem is invisible until something breaks. A page can have a valid SSL certificate and a green padlock, yet a single hard-coded http:// script can stop the padlock from appearing or break a chart, slider, or analytics call. This tool surfaces those references so you can fix them.

What counts as mixed content, and why it matters

Mixed content occurs when a page served over HTTPS pulls in sub-resources over HTTP. Browsers split these into two severity levels, and the scanner separates your results the same way:

  • Active mixed content — scripts, stylesheets (<link rel="stylesheet">), iframes, <object>, <embed>, and HTTP form actions. Because these can rewrite the page or steal data, modern browsers block them outright. The result is broken layouts, dead widgets, and JavaScript that never runs.
  • Passive mixed content — images, <video>, <audio>, <source>, <track>, and HTTP URLs inside CSS url() and background declarations. These aren't blocked, but they downgrade the connection's security and trigger a browser warning that removes the padlock.

The distinction is practical: active issues will visibly break your site, while passive ones quietly cost you the trust signal of a secure padlock. Fixing both is part of doing HTTPS correctly.

How to use it

Open your page, right-click, and choose View Page Source (or use your framework's rendered output), then paste the full HTML into the box and click Scan for Mixed Content. The scanner returns three numbers at a glance — total issues, active (blocked), and passive (warning) — followed by a per-element breakdown. For each finding you get the element type (such as <script> or <img>), the line number in your source, and the offending HTTP URL, so you can jump straight to it in your editor.

When there's a fix to make, the Copy All URLs button puts every insecure link on your clipboard at once, which is handy for a find-and-replace pass across a codebase. If nothing turns up, you get a clear "No mixed content issues found" confirmation.

Fixing what it finds

The scanner shows three standard remedies once issues are detected:

  • Switch the protocol — change http:// to https:// wherever the secure version is available. This is the correct long-term fix, assuming the third-party host actually serves the resource over HTTPS.
  • Use protocol-relative URLs — writing //example.com/file.js lets the browser load the resource over whatever protocol the page itself uses.
  • Add a Content-Security-Policy header — sending Content-Security-Policy: upgrade-insecure-requests tells the browser to silently rewrite HTTP requests to HTTPS, a fast site-wide safety net during a migration.

Privacy and how it runs

Everything happens in your browser. The HTML you paste is parsed locally with pattern matching against known resource-loading elements and CSS references — it is never uploaded to a server, stored, or transmitted anywhere. That means you can safely scan source from an internal staging site, an unreleased page, or a client project without it leaving your device. There's no account, no rate limit, and no software to install; it works on desktop and mobile in any modern browser.

Because the tool scans the HTML you provide, it checks what's in the markup rather than fetching the live page, so paste the fully rendered source for the most complete results.