This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

How to Fix WordPress Mixed Content Errors (Step-by-Step Guide)

Updated on December 19, 2025

12 Min Read
WordPress Mixed Content Error

Key Takeaways

  • Mixed content errors occur when HTTPS pages load one or more resources over HTTP.
  • The browser console is the most reliable way to identify the exact file causing the warning.
  • Fixes may involve updating content URLs, adjusting plugins or themes, or enforcing HTTPS redirects.
  • Resolving mixed content at the source prevents recurring warnings after updates or migrations.

You expect a secure lock once SSL is enabled. That is usually the moment everything should be finished.

Instead, the browser shows a warning.

The page loads, but something about it is not right. Images may appear. Forms may still work. Yet Chrome says the connection is not fully secure.

This situation is common on WordPress sites. Many site owners notice it after enabling HTTPS or moving a WordPress install. Others run into it later, after a routine update that did not seem related to security.

The reason is mixed content.

WordPress is loading a secure page while still requesting one or more files over HTTP. A single image, script, or embed is enough to trigger the warning, even when everything else looks correct.

This article focuses on WordPress mixed content and how to resolve it without trial fixes or unnecessary WordPress plugins.

You will see how to identify the exact resource causing this common WordPress error, why browsers flag it so aggressively, and how to clean up the site in a way that holds up after future updates.

What Is a Mixed Content Error in WordPress?

This issue usually shows up when everything seems fine, but the browser disagrees.

The page loads and the site works, yet Chrome refuses to show the lock icon. That happens because something on the page is still being pulled from an older, unsecured address. It could be a single image, a script added long ago, or a file coming from a plugin or theme that never got updated.

Even one leftover HTTP file is enough to trigger the warning.

This is not about your site being broken or hacked.
It comes down to how specific URLs are written and loaded.

In WordPress, this often traces back to content that was added before SSL was enabled or content that was never updated after the switch.

Common causes include:

  • An image uploaded earlier that still uses an http:// link
  • A plugin that inserts scripts with a hardcoded HTTP URL
  • A theme file that references styles or fonts without HTTPS
  • An embed or third-party resource that does not load securely

The important detail is where the problem lives.

In most cases, the SSL certificate is already working. The issue sits inside page content, theme files, or plugin output. That’s why reinstalling SSL or forcing redirects often does nothing to clear the warning.

From the browser’s perspective, even one insecure file is enough to trigger the message. From WordPress’s perspective, nothing appears wrong at all.

That gap is what makes mixed content errors frustrating and easy to miss.

How to Identify Mixed Content Errors in WordPress

Finding a mixed content issue is usually the part that trips people up.

The browser warning does not point to a specific setting or file. It just shows up and blocks the lock icon. From the outside, everything looks normal, which makes it unclear where to start.

The answer is not inside WordPress. It’s inside the browser.

Checking the Page in Chrome

Open the page that shows the warning.
Right-click anywhere on the page and select Inspect.

A panel will open on the side or bottom of the screen. Click on the Console tab, then reload the page.

If something is loading insecurely, Chrome lists it there. You’ll see the exact file path, usually starting with http://, along with the type of resource being loaded.

That line tells you exactly what the browser is objecting to.

Inspect the page

📝 Note: Chrome may automatically upgrade some HTTP requests to HTTPS. Even if it upgrades them, the Console still reveals the original insecure URL that caused the warning.

Why Some Warnings Look Different

Not all mixed content behaves the same way.

Images are often allowed to load, even if they come from an insecure address. Scripts and stylesheets are handled more strictly. When those are involved, browsers are more likely to show a clear warning or block parts of the page.

This difference explains why a site can appear fine while still being flagged.

Why WordPress Does Not Surface This on Its Own

WordPress does not alert you when mixed content exists.

From inside WordPress, there is no obvious sign that anything is wrong. Pages load, content publishes, and the dashboard behaves as expected.

The warning usually comes to light somewhere else. A browser update makes it more visible, or a visitor hesitates after seeing the message in the address bar.

The moment the browser console shows which file is loading over HTTP, the situation changes. Guesswork stops, and the source of the issue becomes clear.

Common Causes of Mixed Content in WordPress

Once the browser points to an insecure file, patterns start to emerge. Mixed content issues in WordPress usually come from a small set of places.

Images Added Before HTTPS

Older images are the most frequent cause.

They were uploaded when the site still ran on HTTP, and their URLs were saved that way. Enabling SSL later does not update those links automatically.

Hardcoded Links in Posts or Pages

Some links are added manually. Custom HTML blocks, buttons, or embeds often use full URLs. If those URLs begin with http://, the browser flags the page.

Plugins That Load Assets Over HTTP

Plugins can introduce insecure files without making it obvious.

A script, font, or tracking file may be pulled from an address that never switched to HTTPS. Everything else can look correct while the plugin output causes the warning.

Theme Files Referencing Insecure Resources

Themes can be another source.

Design files sometimes call images, fonts, or styles using older links that were never updated after SSL was enabled.

Third-Party Embeds and External Services

External content adds another layer of risk.

Widgets, ads, or embeds pulled from outside services may not load securely, even when your own site is configured correctly.

Why These Issues Are Easy to Miss

Mixed content rarely breaks a page. The site loads, layouts hold, and the WordPress dashboard shows no errors. Nothing inside WordPress points to the issue.

The browser is where it finally becomes visible. Once the insecure file is identified, the fix becomes deliberate instead of experimental.

How to Troubleshoot Mixed Content Errors in WordPress

Fixing mixed content starts with understanding where the insecure link lives. The solution depends on whether the problem sits in page content, a plugin, a theme file, or the server setup.

There is no single switch that clears every case. Most sites only need one or two adjustments.

Start With Content-Level Fixes

Mixed content often comes from URLs saved inside posts, pages, or widgets. These links were usually added before SSL was enabled and never updated afterward.

This applies to:

  • Images inserted using older URLs
  • Buttons or embeds added through custom HTML
  • Links copied from external sources

When only a few URLs are affected, editing the content directly is enough. For larger sites, a controlled search and replace works better.

A search and replace tool lets you update:

  • Old http:// links
  • Across posts, pages, and metadata
  • Without editing each page manually

Always preview the changes first. Once applied, clear caches and reload the affected pages in the browser.

For permanent fixes across the database, see: How to Fix Mixed Content by Updating URLs in WordPress.

Use a Plugin When Links Are Spread Everywhere

Plugins help when insecure URLs are scattered across the site and hard to track individually. They work by rewriting links as the page loads.

This approach helps when:

  • Multiple pages show the warning
  • URLs are buried in older content
  • The source is not obvious at first glance

Start with the least aggressive option. Let the plugin correct scripts, styles, and media files without touching database content. If the warning persists, increase the fix level gradually.

Plugins solve many cases, but they do not fix everything. If the browser keeps pointing to the same file, the source likely sits outside normal content.

If you want the exact plugin steps, see: How to Fix Mixed Content Errors Using a Plugin.

Enforce HTTPS at the Server Level

Even with SSL active, HTTP versions of pages can still exist. If visitors land on those versions first, the browser may flag the page before redirects take effect.

To prevent this:

  • Force all traffic to HTTPS
  • Redirect HTTP requests permanently

This is handled at the server level, not inside WordPress. Once enforced, browsers stop requesting insecure versions of your pages altogether.

For server-side context, see: Force HTTPS at the Server Level.

Check Theme and Plugin Files

If the browser console points to a theme or plugin file, rewriting URLs may not help. In those cases, the insecure link is hardcoded.

This usually involves:

  • Stylesheets loading fonts over HTTP
  • Background images referenced with old URLs
  • Scripts added directly inside theme files

Updating the theme or plugin often resolves the issue. If it does not, replacing the component is safer than forcing a workaround.

For deeper theme/plugin cleanup, see: Fix Mixed Content Caused by Themes and Plugins.

Review External Resources

Some mixed content does not originate from your site at all. Ads, embeds, and third-party widgets can introduce insecure files.

If an external resource does not support HTTPS, there is no clean fix. Removing or replacing it is usually the only way to clear the warning completely.

Verify the Fix in the Browser

After applying changes, always confirm the result where the issue appeared in the first place.

Reload the page with the browser console open and check that:

  • No http:// files are listed
  • The lock icon appears consistently
  • Forms and embedded content load normally

Test more than one page, especially those with images, scripts, or forms.

When the browser stops flagging the page, the issue is resolved. WordPress may never acknowledge the problem, but the browser always does.

How to Fix Mixed Content Errors Using a Plugin

For many WordPress sites, mixed content lives inside posts, pages, or widgets. In those cases, a plugin can resolve the issue without touching code or server files.

This approach works best when:

  • The insecure URLs are stored in content or the database
  • The site was moved from HTTP to HTTPS
  • Images or embeds were added before SSL was enabled

When a Plugin Makes Sense

A plugin helps when the problem is widespread but consistent. Instead of fixing links one by one, it updates how WordPress outputs URLs across the site.

Two plugins are commonly used:

  • SSL Insecure Content Fixer
  • Really Simple SSL

Both focus on rewriting insecure URLs at runtime, which means the original content stays intact.

Using SSL Insecure Content Fixer

After installing and activating the plugin:

  • Open Settings → SSL Insecure Content

SSL Insecure Content

  • Start with the Simple fix level

Simple Mixed Content Error fix level

  • Reload the affected page and check the browser again

In many cases, the warning disappears at this stage. If it doesn’t, higher fix levels can be tested carefully.

Higher levels scan more aggressively, which can affect performance. Only move up if the warning persists.

Important Limitations to Understand

Plugins do not fix everything.

They cannot:

  • Update URLs hardcoded inside theme files
  • Fix third-party resources that do not support HTTPS
  • Correct server-level redirect issues

If the browser console still shows insecure files after using a plugin, the source is likely outside regular content.

That’s when a manual fix becomes necessary, which the next section covers.

How to Fix Mixed Content by Updating URLs in WordPress

When a plugin does not clear the warning, the insecure URLs are usually stored directly in the site’s content or database. This is common on sites that switched to HTTPS after publishing pages, uploading media, or installing themes.

At this stage, the goal is simple. Replace old http:// links with https:// where they actually live.

Start with WordPress settings

Before touching content, confirm the basics:

  • Open Settings → General

Settings → General

  • Check WordPress Address (URL) and Site Address (URL)
  • Both should use https://

Site Address (URL)

If these still point to HTTP, mixed content will continue to appear no matter what else you fix.

Updating Links Stored in Content

Many mixed content issues come from images and links saved inside posts, pages, or widgets.

When only a few files are affected:

  • Edit the page or post
  • Replace the insecure URL manually
  • Save and reload the page

When the issue appears across many pages, manual edits stop being practical.

Using Search and Replace for Bulk Fixes

A search and replace tool updates URLs directly in the database.

Before doing this:

  • Create a full backup
  • Run a dry test first

The typical approach:

  • Search for http://yourdomain.com
  • Replace with https://yourdomain.com
  • Apply changes only after reviewing the preview

This step clears most legacy URLs left behind after enabling SSL.

Why Fixing URLs at the Source Prevents Future Warnings

Plugins rewrite URLs as pages load. Search and replace fixes the source itself.

Once the database uses secure links, fewer moving parts remain. That reduces future warnings and makes troubleshooting easier.

If the browser console still flags insecure files after this step, the issue is likely coming from theme files, plugins, or external services. That’s where the next section focuses.

Fix Mixed Content Caused by Themes and Plugins

When mixed content remains after updating content and database links, the source is usually deeper. Themes and plugins can load files that never pass through the WordPress editor.

These files often include:

  • Stylesheets
  • JavaScript files
  • Fonts
  • Background images

Because they live in code, plugins cannot always rewrite them.

Check Theme Files First

Themes may reference assets using hardcoded URLs.

Common places to look:

  • style.css
  • functions.php
  • Header or footer files
  • Custom CSS added through the theme panel

Any reference starting with http:// should be updated to https:// or changed to a relative path.

Watch for Plugin-Inserted Scripts

Some plugins load external scripts directly.

Examples include:

  • Analytics tools
  • Font libraries
  • Sliders and media embeds
  • Older marketing or tracking plugins

If the browser console points to a plugin file or external domain, check:

  • Plugin settings for HTTPS options
  • Plugin updates or changelogs
  • Documentation for secure loading support

If a plugin cannot load its assets securely, replacing it is often safer than forcing a workaround.

When External Services Are the Cause

Third-party embeds sometimes do not support HTTPS fully.

This includes:

  • Old video embeds
  • Legacy widgets
  • External images hosted elsewhere

In those cases, the only reliable fix is to remove or replace the resource.

Why Theme and Plugin Issues Persist After Migrations

Theme and plugin issues do not show up in the WordPress editor. They also survive migrations and content updates.

Once these are corrected, the browser warning usually disappears for good.

If mixed content still appears after this cleanup, the remaining issue is usually at the server or redirect level. The next section covers that.

Force HTTPS at the Server Level

After content, themes, and plugins are cleaned up, mixed content warnings can still appear if the site allows access over HTTP. When both versions exist, browsers may hit the insecure one first.

This is not a WordPress issue. It sits at the server level.

Why Redirects Matter

A valid SSL certificate does not stop HTTP traffic on its own.

If a visitor, bot, or old bookmark requests the HTTP version, the browser can flag the connection before it ever reaches HTTPS.

A proper redirect removes that entry point.

What a Correct Setup Looks Like

  • All HTTP requests are redirected to HTTPS
  • The redirect happens before the page loads
  • Only one canonical version of the site exists

When this is in place, browsers stop seeing mixed signals.

Apache and Nginx Setups

On Apache servers, redirects are usually handled through the .htaccess file.

On Nginx, they live inside the server configuration.

The goal is the same in both cases:

  • Detect HTTP requests
  • Redirect them permanently to HTTPS

Once applied, reload the affected page and check the address bar again.

CDN and Proxy Considerations

If a CDN or reverse proxy sits in front of the server, redirects may need to be enforced there instead.

Common examples:

  • Cloudflare
  • Load balancers
  • Managed hosting platforms

In these setups, forcing HTTPS at both the CDN and origin level prevents conflicts.

Why This Step Closes the Loop

Most mixed content fixes address what loads on the page. Redirects control how the page is reached in the first place.

When both are aligned, browsers stop raising warnings and the secure lock appears consistently.

If the warning still shows after this step, the final check is environmental. That’s covered next.

Check for Environment-Level Causes

When mixed content warnings appear even after fixing content, themes, plugins, and redirects, the issue is often local. In these cases, the site itself may be fine, but the browser environment introduces the warning.

Incorrect System Date or Time

SSL certificates depend on accurate time checks.

If the device clock is off:

  • Certificates may appear expired
  • Secure connections may fail validation

This is more common on:

  • New devices
  • Systems waking from long sleep
  • Machines with disabled time sync

Correcting the system time can clear the warning instantly.

Antivirus or Security Software Interference

Some antivirus tools inspect HTTPS traffic by injecting their own certificates.

When that process breaks:

  • Chrome may no longer trust the connection
  • Secure pages appear as not secure

Temporarily disabling HTTPS scanning or reviewing certificate settings can confirm whether this is the cause.

Public Wi-Fi and Captive Portals

Public networks often intercept traffic before allowing full access.

Until the login or access page is accepted:

  • HTTPS requests may fail
  • Mixed content or certificate warnings may appear

This is common on:

  • Airports
  • Hotels
  • Cafés
  • Guest networks

Switching networks or completing the access step usually resolves it.

Outdated Operating Systems

Older systems may not recognize modern certificate authorities.

When the browser cannot validate the certificate chain, it flags the connection even if the site is configured correctly.

Updating the OS or testing on a newer device helps confirm this quickly.

Why Environment Issues Can Mimic Site Problems

Environment issues can mimic site-level problems.

Before reworking a setup that already looks correct, ruling these out saves time and prevents unnecessary changes.

Once the warning disappears across devices and networks, the fix is complete.

Final Checklist to Remove WordPress Mixed Content Errors

Use this checklist to confirm nothing was missed. Each item should be verifiable in the browser, not just inside WordPress.

  • SSL certificate is active and valid
    The certificate matches the domain and has not expired.
  • WordPress URLs use HTTPS
    Both the WordPress Address and Site Address are set to HTTPS.
  • Content URLs are updated
    Images, links, and embeds no longer reference HTTP.
  • Themes and plugins load assets securely
    No hardcoded HTTP files remain in theme or plugin code.
  • Third-party resources support HTTPS
    External scripts, fonts, and embeds load securely or are replaced.
  • HTTP traffic redirects to HTTPS
    Requests never land on the insecure version of the site.
  • Browser console shows no mixed content warnings
    The Console tab is clear after a full page reload.
  • Lock icon appears consistently
    Test multiple pages, especially forms and login screens.

If every item above checks out, the mixed content warning should be gone for good.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Sarim Javaid

Sarim Javaid is a Sr. Content Marketing Manager at Cloudways, where his role involves shaping compelling narratives and strategic content. Skilled at crafting cohesive stories from a flurry of ideas, Sarim's writing is driven by curiosity and a deep fascination with Google's evolving algorithms. Beyond the professional sphere, he's a music and art admirer and an overly-excited person.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Want to Experience the Cloudways Platform in Its Full Glory?

Take a FREE guided tour of Cloudways and see for yourself how easily you can manage your server & apps on the leading cloud-hosting platform.

Start my tour