To understand how to fix mixed content warning after SSL installation, find every resource that an HTTPS page still requests over HTTP. Replace each insecure image, script, stylesheet, font, video, iframe, form action or API endpoint with a working HTTPS version, clear caches, and retest the affected templates. A certificate protects the main connection; it does not automatically rewrite every URL inside the website.
This is why a site can open at https:// yet still show a security warning or have design and functionality blocked. The fix is not to hide the warning. Remove insecure requests at their source.
What is mixed content after SSL?
Mixed content occurs when the main page loads through HTTPS but requests one or more resources through HTTP. Mozilla’s current mixed-content guidance explains that browsers may automatically upgrade some resource types and block others. A blocked script or stylesheet can break menus, sliders, checkout, tracking or forms.
Mixed content is different from an invalid certificate. If the browser reports a certificate-name mismatch, untrusted issuer or expired certificate, fix that configuration first. If the certificate is valid but the developer console names an http:// resource, you are dealing with mixed content.
How to fix mixed content warning after SSL: the diagnostic sequence
1. Reproduce the problem on the exact page
Open the affected URL in a private window. Test the preferred hostname and any common alternate, such as www and non-www. Confirm that the page uses HTTPS and HTTP versions redirect to the intended secure URL.
Open browser developer tools and check the Console. Modern browsers report mixed-content warnings there, normally including the resource URL and whether it was upgraded or blocked. The Network panel helps identify its type, initiator and response.
Create a repair list with the page showing the problem, the insecure resource, and where that reference is probably stored. This prevents unrelated changes.
2. Identify where the HTTP URL comes from
The console URL is the symptom. Its source may be:
- Page content entered through a CMS editor.
- A theme template, component or layout builder.
- A CSS file using
url(http://...). - A JavaScript bundle, tag manager or analytics setting.
- A database value saved before the HTTPS migration.
- A plugin, app, CDN, image optimizer or third-party widget.
- An iframe, form action, download link or API endpoint.
Use the Network panel’s initiator information, inspect page source, and search the relevant code or database for the exact URL. Not every http:// text string is embedded mixed content, so trace the actual request.
3. Fix first-party resources at the source
If the resource belongs to your domain, verify that it works over HTTPS. Open the secure version directly and confirm a successful response. Then update the reference to HTTPS or use a sensible root-relative path such as /assets/site.css.
For a CMS migration, review the configured site address, media URLs, reusable blocks, widgets, menus and theme options. If database replacement is required, take a backup and use a method that understands the platform’s data format. Blind replacement can damage serialized settings or alter URLs that were not meant to move.
Update hard-coded references through the source files and build process. Editing a generated production file may work only until the next deployment overwrites it.
4. Repair or replace third-party resources
For an external font, script, image, iframe or API, test whether the provider offers the same resource over HTTPS. If it does, update the URL and verify the response. If it does not, replace the dependency, host an authorised copy where licensing permits, or remove it.
Do not proxy an unknown insecure script through your server merely to remove a warning. That transfers maintenance and security risk to your domain. Request the secure URL directly rather than relying on an HTTP-to-HTTPS redirect; some active mixed-content requests may be blocked before a redirect can help.
5. Check forms, APIs and embedded business tools
A secure contact page can submit to an HTTP endpoint. A booking widget may use an insecure iframe. A product page may call an old API, while a login flow may reference an outdated asset host.
Test contact and quote forms, login and password reset, cart and checkout, booking and chat integrations, plus file downloads. A page can look correct but still lose enquiries if a browser blocks a background request. Verify the result at the receiving end, not only the on-screen success message.
6. Clear every cache
Old HTML or CSS can remain in a browser cache, caching plugin, reverse proxy or CDN. Purge caches after saving the permanent fix, then retest privately. If a warning persists, compare the requested resource with what you changed; another template or cache layer may still contain it.
Should you use upgrade-insecure-requests?
The Content Security Policy directive upgrade-insecure-requests tells supporting browsers to rewrite insecure resource requests to HTTPS. MDN describes it as useful for sites with many legacy URLs, but notes that a resource fails if no HTTPS version exists. It can support a migration, but it should not replace correcting known references.
Test any security policy in staging or report-only mode before enforcement. A rushed policy can block legitimate payment tools, scripts or form integrations.
Should you enable HSTS immediately?
HTTP Strict Transport Security tells browsers to use HTTPS for future connections. It strengthens a completed setup but does not repair HTTP asset URLs inside pages. MDN’s HSTS documentation says the header should be delivered over HTTPS, while insecure page requests should redirect to HTTPS.
Enable HSTS only after the site and required subdomains work reliably over HTTPS. Be cautious with includeSubDomains and preloading, because a forgotten subdomain without HTTPS can become inaccessible.
How to verify the warning is genuinely fixed
Do not stop after correcting one homepage image. Test representative URLs from every major template: homepage, service page, article, product, category, account area and contact page. Follow real user journeys, watch the Console and Network panels, and test more than one browser and device.
For larger sites, use a crawler or automated scan to find insecure references across many pages. Mozilla recommends combining developer-console checks with recursive scanning. Add HTTPS checks to launch and maintenance routines so new content or integrations do not reintroduce the problem.
Practical mixed-content repair checklist
- Confirm the certificate is valid for the preferred hostname.
- Redirect HTTP pages to their correct HTTPS versions.
- Capture each mixed-content URL from developer tools.
- Trace requests to content, code, CSS, database or third-party configuration.
- Verify a working HTTPS version before changing a reference.
- Replace resources that cannot load securely.
- Test forms, APIs, iframes, checkout and login.
- Purge browser, application, server and CDN caches.
- Retest representative templates and scan the wider site.
- Add CSP or HSTS only after testing.
When should a business involve a developer?
A single old image URL may be a quick content edit. Involve a developer when warnings appear across templates, return after deployments, involve database migration, affect checkout or forms, or come from integrations you cannot safely replace. Share affected pages, console messages, recent migration details and the hosting/CDN setup.
Ishu Technology provides website development and technical improvement services for business websites and ecommerce projects. If SSL is installed but warnings or blocked functionality remain, send the affected URLs and screenshots through the verified contact page for a focused enquiry.
Frequently asked questions
Why does my website still say “Not secure” after SSL?
The certificate may be invalid, the page may contain HTTP resources, or an alternate hostname may be misconfigured. Check the certificate first, then inspect the console.
Can a plugin fix mixed content automatically?
It may rewrite some URLs but miss hard-coded CSS, external scripts, APIs or cached files. Verify the underlying sources.
Will changing every HTTP URL to HTTPS always work?
No. The secure resource must exist and return the expected content. Test every external endpoint first.
Does mixed content affect only the padlock?
No. Browsers may block scripts, styles, iframes and requests, breaking design, tracking, forms, login or checkout.
Is an HTTP-to-HTTPS redirect enough?
It is necessary for page navigation, but embedded resources should be requested securely at the source.
Save or share this story as a newspaper-style Epaper Clip:
