Resolve errors with mixed content to ensure a visitor’s web browser doesn’t block HTTP resources served over HTTPS.
Domains added to Cloudflare receive SSL certificates and can serve traffic over HTTPS. However, after starting to use Cloudflare, some customers notice missing content or page rendering issues when they first serve HTTPS traffic.
Typically, the problem is due to a request for HTTP resources from a web page served over HTTPS. For example, you type https://example.com in a browser and the page contains an image reference via HTTP in the HTML to <img src="http://example.com/resource.jpg">.
Normally, if your website loads all resources securely over HTTPS, visitors observe a lock icon (typically a green lock) in the address bar of their browser:
This indicates your site has a working SSL certificate and all resources loaded by the site are loaded over HTTPS. The green lock assures visitors that their connection is safe. One of the symptoms of mixed content is that different icons appear instead of the green lock icon.
Symptoms of mixed content occurrence
Below are indications that your web browser observes mixed content for the requested web site:
You observe a yellow triangle urging caution beside the URL:
- IE (version 10)
You observe warning messages about “Only secure content is displayed:”
- Microsoft Edge
You observe a warning message about “You’re only seeing secure content:”
You observe an information symbol or warning symbol beside the URL:
For mixed content warnings, the web browser loads the resources but users don’t see the green lock icon in the URL. Warning messages appear within the browser’s debug tools:
For mixed content errors, the browser refuses to load the resources over an unsecure connection:
Information on using the browser’s debug tools to locate these issues are found in the documentation for Chrome and Firefox. Alternatively, you can view your page source and find specific references of http:// for paths to other resources.
There are two methods to resolve mixed content errors.
1. Load all resources via your HTML source without specifying the HTTP or HTTPS protocols. For example:
2. Depending on your Content Management System, check for plugins that automatically rewrite HTTP resources to HTTPS. Within the Crypto app, Cloudflare provides such a service via Automatic HTTPS Rewrites.