1. Home
  2. Developer tools
  3. Mixed Content Scanner

Mixed Content Scanner

After moving a site to HTTPS, find every address still loaded over HTTP before visitors see broken pages or warnings.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use Mixed Content Scanner

  1. Paste the page’s HTML or a template.
  2. Read the list of insecure references.
  3. Change them to https:// or protocol-safe paths.

Features

  • src, href, srcset, data, poster and form action attributes
  • Inline styles, style blocks and script strings
  • Active and passive content separated
  • Fix suggestions
  • Links to http pages reported separately
  • Local only

Supported formats

Input

  • HTML
  • Templates

You get

  • List of insecure references

Private by design

Everything you enter is processed by your browser on this device. Nothing is sent to openWorkstand or anyone else, so the Mixed Content Scanner is safe for private and work data. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • It cannot see resources added by JavaScript at run time.
  • It does not fetch pages; paste the HTML.

Guide

Finding mixed content after moving a site to HTTPS

When a page is served over HTTPS but loads a script, an image or a frame over plain HTTP, the result is called mixed content. The unencrypted request can be read or changed by anyone on the network, and that makes the whole page less trustworthy. Browsers react by blocking the dangerous kinds and warning about the rest. The usual moment to meet the problem is right after moving a site to HTTPS, when old pages still point at http:// addresses. This scanner finds them in the HTML.

Active and passive content

Active content can take over the page: scripts, stylesheets, frames, fonts, fetch and XMLHttpRequest calls, and WebSockets. Modern browsers block it, which breaks the feature it provided. Passive content cannot change the page itself: images, audio and video. Current browsers upgrade it to HTTPS or load it with a reduced padlock, but it can still reveal what the visitor is viewing and be swapped for something misleading. A form that posts to an http:// address is also flagged, because the data it sends is unprotected.

A worked example

Press Sample to scan a small page. The page reports 10 insecure addresses: 5 blocked (active), 3 warnings (passive), 1 insecure link and 1 to check. The table lists each with its line, location, address and effect. Line 3, link href http://cdn.example.com/site.css, and line 4, script src http://cdn.example.com/app.js, are blocked. Line 7, an img src for logo.png, is a passive warning. Line 8, an iframe src, and line 9, a form action, are blocked. Line 10 is an a href to http://partner.example.com/, which is an insecure link and not mixed content. Line 5 is a style block with an @import of http://fonts.example.com/f.css, which is blocked, and two url() references, one to the same stylesheet and one to hero.jpg, which are passive warnings. Line 11 contains a script string literal ws://live.example.com/socket, marked to check, because a WebSocket over ws:// is blocked on an HTTPS page but the string might not be used.

Where references hide

Beyond src and href, insecure addresses appear in srcset lists, poster attributes on video, data attributes of objects, inline style attributes, CSS @import and url() in style blocks, and strings inside scripts. Content management systems also store absolute http:// addresses in the database, in posts and theme settings. The scanner reads attributes and script strings in the markup you paste, so paste the rendered HTML (view-source or the saved page) and not only a template.

Fixing

Replace the address with https:// after checking that the resource is served that way. For your own resources, use relative or root-relative paths so the scheme follows the page. Where a third party offers no HTTPS version, host a copy yourself or drop the dependency. As a safety net, the upgrade-insecure-requests directive of a Content-Security-Policy asks browsers to try HTTPS for all sub-resources, but it hides the problem rather than fixing the addresses.

Limits

The scan reads text. It cannot see resources your JavaScript builds at run time, requests triggered by third-party scripts, or content loaded after the user interacts. For those, open the page with the browser developer console, which lists mixed content warnings, or use a crawler. The page does not load addresses or follow redirects.

Checked against the current version of the Mixed Content Scanner on .

Frequently asked questions

Why does my page show a warning only on some browsers?

Browsers differ on passive content. Current ones upgrade images, audio and video to HTTPS automatically or load them with a degraded padlock, while older ones show a warning. Fixing the address removes the difference.

Is a link to an http:// page mixed content?

No. A link only takes the visitor to another page when clicked. It is still worth fixing, because it leaves encrypted browsing, so the page lists it separately as an insecure link.

Why is an http:// image less serious than an http:// script?

Browsers block active content such as scripts and frames, which can take over the page, while passive content such as images is mostly upgraded to HTTPS or loaded with a warning.

Does it find resources added by JavaScript?

No. It reads the HTML you paste. Resources built at run time need a browser developer console or a crawler.

Keep working with the result

openWorkstand also includes a free workspace with documents, spreadsheets, tasks, projects and a calendar that save to a folder on your computer.