Mixed content errors are one of the most common reasons a site still shows as “Not Secure” even after you install an SSL certificate and force HTTPS. This guide gives you a reusable checklist for finding and fixing insecure page resources, whether your site runs on WordPress, a website builder, a custom stack, or a recently migrated hosting setup. Use it before launch, after a migration, or any time HTTPS warnings return.
Overview
If your website loads over HTTPS but still requests some files over HTTP, browsers treat that as mixed content. In plain terms, the page itself is secure, but one or more ingredients inside it are not. Those ingredients might be images, scripts, stylesheets, fonts, videos, iframes, form actions, or background assets loaded from old URLs.
This usually happens after a domain and hosting change, an SSL activation, a website migration, or a CMS update where some site settings still point to the old HTTP version. It is especially common on small business sites that have gone through a quick launch, redesign, or hosting move without a full post-launch review.
The practical goal is simple: every resource on every public page should load over HTTPS, with no hardcoded HTTP links left behind.
Before you start, keep three ideas in mind:
- Mixed content is usually a URL problem, not an SSL certificate problem. Your certificate may be installed correctly, but the page still references old insecure assets.
- One fix is rarely enough. You may need to update platform settings, database content, theme files, and third-party integrations.
- Changes can be cached. Browser cache, plugin cache, CDN cache, and server cache can make a fixed page still look broken until caches are cleared.
If you are still at the SSL setup stage, it helps to review the broader basics in SSL Certificate Guide for Website Owners: Types, Costs, and Renewal Basics. If your issue appeared during launch, this problem also fits into a broader preflight process like the Website Launch Checklist for Small Business: Domain, Hosting, SSL, Email, and Analytics.
Checklist by scenario
This section is designed for repeat use. Start with the scenario closest to your setup, then work through the steps in order.
Scenario 1: Your whole site moved from HTTP to HTTPS
Use this checklist when you enabled SSL on an existing site and now some pages still look insecure.
- Confirm the preferred site URL is set to HTTPS. Check your CMS settings, application config, or site URL fields in the control panel. If the main website address still uses HTTP anywhere, mixed content is likely to continue.
- Force a redirect from HTTP to HTTPS. Make sure visitors and bots always land on the secure version. This does not fix mixed content by itself, but it prevents duplicate access patterns and reduces confusion.
- Inspect the browser console. Open the affected page, then look at developer tools for warnings that identify the exact HTTP resource being blocked or downgraded.
- Search page source for “http://”. Check the rendered output and the underlying templates. Look for asset URLs, canonical tags, image paths, script calls, CSS files, and embedded services.
- Update hardcoded internal links. Many older pages, templates, menus, and widgets may still reference absolute HTTP URLs.
- Clear all caches. Purge CMS cache, optimization plugins, server cache, and CDN cache, then reload in a private browser window.
If your site was also connected to a new host during the change, it may help to review How to Connect a Domain to Your Website Builder or Hosting Account and How to Choose Hosting for a New Website: A Beginner Decision Guide, since DNS, platform settings, and hosting layers can all affect what version of the site is being served.
Scenario 2: WordPress mixed content fix after enabling SSL
WordPress mixed content issues are common because URLs can live in settings, theme files, plugins, widget content, media references, and database fields.
- Check WordPress Address and Site Address. Both should use HTTPS in Settings.
- Update hardcoded content in the database. If old posts, pages, or custom fields still contain HTTP asset links, update them carefully using a safe search-and-replace method.
- Review theme files. Older themes sometimes hardcode script, stylesheet, or image URLs instead of using dynamic functions.
- Review plugins. Some plugins inject badges, tracking scripts, embedded forms, or external libraries using HTTP.
- Check media and background images. A homepage slider, hero section, or page builder block may still point to HTTP media URLs.
- Regenerate or resave settings where needed. In some page builders and theme frameworks, simply resaving global settings or CSS can refresh stored URLs.
- Purge optimization layers. Clear caching, minification, image optimization, and CDN caches after changes.
If your setup includes specialized WordPress hosting, your environment may also have automatic redirects, caching, or SSL handling at the platform level. For context, see WordPress Hosting vs Managed WordPress Hosting: What’s the Difference? and Best WordPress Backup Strategy for Small Business Sites before making larger changes.
Scenario 3: Only certain pages show “Not Secure” after SSL
When the issue appears on only a few pages, the problem is often content-specific rather than sitewide.
- Compare a secure page and an insecure page. Look for differences such as embedded videos, maps, booking widgets, chat tools, or form providers.
- Check page builder modules. Buttons, image blocks, custom HTML sections, and reusable templates often contain absolute URLs.
- Inspect background images in CSS. Unlike regular images, these can be easy to miss because they do not always appear in the editor.
- Review embedded third-party content. Old iframe code from external services may still use HTTP.
- Check downloadable files. PDFs, brochures, or media links may not affect the lock icon the same way as scripts, but they should still use HTTPS for consistency and trust.
Scenario 4: Mixed content started after a site migration or domain transfer
Migrations often leave behind old paths, old domains, or environment-specific URLs.
- Confirm the final live domain is the one stored in the application. Test both www and non-www versions if your site uses one as canonical.
- Check database references to the old domain. Search for full URLs, not just protocol changes.
- Review CDN and object storage URLs. Images or assets may still load from a previous host, subdomain, or bucket without HTTPS enabled.
- Check staging links. It is easy for a script, stylesheet, or image to still reference a temporary migration URL.
- Verify DNS and hosting are aligned. If requests are hitting an old server or mixed environment, you may fix the wrong copy of the site.
If the issue appeared during a move, this often overlaps with broader website migration and DNS management concerns. A reliable process for domain and hosting changes reduces the chance of serving outdated assets after launch.
Scenario 5: The warning comes from external services you do not control
Sometimes the page itself is configured correctly, but a third-party resource is not available over HTTPS.
- Identify the external resource. The browser console will usually show the full URL.
- Check whether the provider supports HTTPS. If yes, replace the URL.
- Update to current embed code. Old snippets copied years ago often use outdated protocols.
- Remove the resource if needed. If a third-party asset cannot be served securely, it should not remain on a public HTTPS page.
- Find a secure alternative. This applies to fonts, badges, widgets, video embeds, analytics scripts, and ad tags.
What to double-check
Once the obvious warnings are gone, take a second pass. Mixed content often hides in places that are easy to overlook.
Site settings and canonical structure
- Primary site URL uses HTTPS
- Admin URL and frontend URL match your preferred version
- HTTP redirects to HTTPS consistently
- Preferred hostname version is consistent, such as www or non-www
- Canonical tags point to HTTPS pages
Templates, assets, and content
- Header and footer files do not hardcode HTTP scripts or styles
- Theme options and logo settings use HTTPS media URLs
- CSS files do not reference HTTP background images or fonts
- JavaScript files do not call insecure APIs or libraries
- Buttons, menus, and image links do not point to HTTP pages
Third-party integrations
- Analytics and tag manager snippets are current
- Embedded videos, maps, forms, booking tools, and chat widgets load securely
- Social feeds, review widgets, and badge scripts are updated
- Email signup forms and CRM embeds use HTTPS actions and asset paths
Infrastructure and delivery layers
- CDN settings do not rewrite secure URLs back to HTTP
- Image optimization or minification tools are not serving old cached files
- Reverse proxy or load balancer rules are SSL-aware
- Static assets served from subdomains also have valid HTTPS support
It is also worth checking related services attached to your domain, especially if your setup changed recently. DNS records, redirects, and service-specific subdomains can all affect trust signals across your online presence. For example, if you are also configuring email on the same domain, see Business Email Setup Guide: Domain Email Options, Costs, and DNS Records.
Common mistakes
Most mixed content troubleshooting stalls for the same reasons. Avoid these common mistakes to save time.
Assuming the SSL certificate alone fixes everything
An SSL certificate protects secure requests. It does not automatically rewrite every old link inside your website. If the content still asks for HTTP resources, browsers will still warn users.
Only checking the homepage
Your homepage may be clean while service pages, blog posts, landing pages, category archives, or checkout pages still load insecure content. Test templates and high-traffic pages, not just the front page.
Ignoring the browser console
The console usually tells you exactly which file, script, or asset is causing the problem. Guessing without it leads to partial fixes and repeated work.
Forgetting cached versions
If you fix a URL in the CMS but do not purge all layers of cache, the browser may continue loading the old version. This is one of the main reasons site owners think a change “did not work.”
Using temporary plugin fixes without finding the root cause
Some tools can rewrite HTTP content on the fly, which may help in the short term. But if the underlying database, theme, or integration still stores insecure URLs, the issue can return after updates, migrations, or plugin changes.
Missing non-visible assets
Background images, font files, preloads, AJAX endpoints, and embedded resources do not always stand out in the page editor. If a warning persists, look beyond visible text and images.
Fixing one environment but testing another
This happens often with staging sites, CDN caches, or DNS transitions. Make sure you are editing the same environment your live domain is actually serving.
Overlooking hosting-level behavior
Control panel hosting, reverse proxies, caching rules, and CDN features can all affect protocol handling. If your site repeatedly falls back to HTTP paths after updates, review your hosting stack and confirm it is configured for secure web hosting throughout.
For broader context on stable infrastructure, performance, and support, it may help to compare hosting expectations in Best Web Hosting Features Checklist for Small Business Owners, Web Hosting Pricing Explained: What Small Businesses Actually Pay Over Time, and Shared vs VPS vs Cloud Hosting: Which Plan Fits Your Website Stage?.
When to revisit
Mixed content is not just a one-time cleanup task. It is something to revisit whenever the inputs behind your site change. A short review at the right moments can prevent public warnings, broken assets, and avoidable trust issues.
Revisit this checklist when:
- Before a new site launch: Run HTTPS checks before sending traffic to the live domain.
- After enabling or renewing SSL: Confirm the whole site, not just the certificate, is serving securely.
- After a migration: Review URLs after moving hosts, changing domains, or deploying from staging.
- After theme or plugin changes: New assets and embeds can reintroduce insecure calls.
- Before seasonal campaigns: If traffic spikes are coming, check trust signals and page integrity in advance.
- When workflows or tools change: New builders, CDNs, forms, and analytics tools may handle URLs differently.
For a practical ongoing process, use this short action list each time you revisit:
- Open your homepage, a service page, a blog post, a contact page, and any revenue-critical page.
- Check the lock icon and inspect the browser console.
- Search the page source for “http://”.
- Test embedded tools, forms, and media.
- Clear caches and retest in a private window.
- Document what changed so future fixes are faster.
If you want the broader launch process around domain registration, domain and hosting setup, DNS management, and secure deployment to run more smoothly, building a repeatable checklist pays off. Mixed content is rarely the biggest technical problem on a site, but it is often the most visible one. Solving it thoroughly helps your site look trustworthy, behave consistently, and stay easier to maintain over time.