Fix mixed content errors by making every file on your WordPress site load over HTTPS, not HTTP. That means your images, scripts, stylesheets, fonts, embeds, and old links must all use secure URLs. Browsers like Chrome may block unsafe mixed content on HTTPS pages, which can break layouts, forms, sliders, checkout buttons, and trust signals.
TLDR: Mixed content happens when your WordPress page uses HTTPS, but some files still load with HTTP. Fix it by installing SSL, changing WordPress URLs to HTTPS, replacing old HTTP links in the database, and checking your theme, plugins, and CDN. For example, a small shop owner might fix 38 old image links and see the padlock return in 10 minutes. That one tiny padlock can stop visitors from thinking, “Nope, this site looks sketchy.”
What Is Mixed Content?
Mixed content is simple. Your page is secure:
- https://example.com
But one or more files load like this:
- http://example.com/image.jpg
- http://example.com/style.css
- http://example.com/script.js
That tiny missing S causes the mess.
Your browser sees a secure page pulling unsafe files. So it complains. Sometimes it shows a warning. Sometimes it blocks the file. Sometimes your site just looks weird, and you get to play detective for an hour. Fun.
The catch is that one old logo, one forgotten tracking script, or one hard-coded background image can trigger the warning.
Why Mixed Content Is Bad
Mixed content is not just a nerd problem. It can hurt your site in real ways:
- Visitors lose trust. A browser warning feels scary.
- Images may vanish. Your page can look broken.
- Forms may fail. That is awful for leads.
- Checkout can break. That means lost sales.
- SEO can suffer. Google prefers secure pages.
Honestly, it feels like getting punished for one old link from 2016. But that is how HTTPS works. Everything on the page needs to be secure.
See also: How to Find Work That Fits Your Personal Priorities
Step 1: Check If Your SSL Certificate Works
First, make sure your site has a valid SSL certificate.
Open your website with https:// at the front. Look for the padlock in the browser bar. If you see warnings, your SSL may be missing, expired, or set up badly.
You can usually fix this in your hosting account. Many hosts offer free SSL through Let’s Encrypt. Turn it on. Then wait a few minutes. Some hosts need 5 to 30 minutes to finish the setup.
If your host makes this hard, yes, that is annoying. SSL should not feel like defusing a tiny bomb.
Step 2: Change Your WordPress URLs
Now update your main WordPress settings.
- Log in to your WordPress dashboard.
- Go to Settings > General.
- Find WordPress Address.
- Find Site Address.
- Change both from http:// to https://.
- Click Save Changes.
You may be logged out. That is normal. Log back in.
If these fields are greyed out, your URLs may be set in the wp-config.php file. In that case, look for lines like this:
define(‘WP_HOME’,’http://example.com’);
define(‘WP_SITEURL’,’http://example.com’);
Change them to:
define(‘WP_HOME’,’https://example.com’);
define(‘WP_SITEURL’,’https://example.com’);
Step 3: Force HTTPS Across Your Site
Next, make sure visitors always land on HTTPS.
The easy way is to use your hosting control panel. Many hosts have a button called Force HTTPS or HTTPS Redirect. Turn it on.
If you use Apache, you can also add a redirect to your .htaccess file. Be careful. A bad rule can break your site.
Here is a common version:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Before editing files, make a backup. Please. Future you will be less grumpy.
Step 4: Replace Old HTTP Links in the Database
Your posts, pages, menus, widgets, and page builder data may still contain old HTTP links. WordPress stores many of these in the database.
Use a search and replace plugin such as Better Search Replace or a trusted migration tool.
Search for: http://yourdomain.com, and replace it with: https://yourdomain.com.
Do a dry run first if the plugin offers it. This shows how many changes will happen before anything gets saved.
Example:
- Old URL found in 142 database rows.
- 91 were image links.
- 34 were internal page links.
- 17 were widget or builder links.
That is normal. Old sites collect old links like junk drawers collect dead batteries.
Step 5: Fix Hard-Coded Theme and Plugin Files
Some mixed content hides in theme files.
Look inside:
- header.php
- footer.php
- functions.php
- Custom CSS areas
- Plugin settings
- Page builder templates
Search for http://. If you find your own domain, change it to HTTPS.
For outside files, be more careful. If a third-party script does not support HTTPS, remove it or replace it. Do not load unsafe scripts just because an old widget wants attention.
You can also use protocol-relative URLs like this: //example.com/file.css. But plain HTTPS is cleaner: https://example.com/file.css
Step 6: Check Images, Videos, and Embeds
Images are the usual suspects. Open a page with the warning. Right-click and choose Inspect. Then open the Console tab. Your browser will often list the exact HTTP file causing the issue.
You may see something like:
Mixed Content: The page at https://example.com was loaded over HTTPS,
but requested an insecure image http://example.com/uploads/banner.jpg
Great. That is your clue.
Edit the page. Replace the image. Or update the URL from HTTP to HTTPS.
Also check:
- YouTube embeds
- Google Fonts
- Maps
- Ad scripts
- Affiliate banners
- Old podcast players
MDN has a clear guide on how browsers treat mixed content if you want extra background.
Step 7: Clear Every Cache
Cache can make fixed problems look unfixed. It is rude like that.
Clear these:
- WordPress cache plugin
- Hosting cache
- CDN cache
- Browser cache
- Page builder cache
- Minify or optimization cache
If you use Cloudflare or another CDN, check that SSL mode is set correctly. With Cloudflare, Full or Full strict is usually better than Flexible, assuming your server has SSL.
Step 8: Test the Site Again
Now reload your site in an incognito window.
Check these pages:
- Homepage
- Top blog posts
- Contact page
- Checkout page
- Login page
- Landing pages
Use the browser Console again. No red mixed content warnings should appear.
You can also scan your site with online SSL checking tools. They can spot insecure files faster than clicking through 50 pages by hand.
Quick Fix Plugin Option
If you want a faster fix, use an SSL plugin.
Popular options include:
- Really Simple SSL
- SSL Insecure Content Fixer
These plugins can catch many mixed content problems. They are handy. They are not magic.
Use a plugin as a helper, not as a forever crutch. The best fix is still to update your URLs properly.
Common Mistakes to Avoid
- Only changing the homepage. Mixed content can hide on old posts.
- Forgetting the database. WordPress stores lots of links there.
- Ignoring CDN settings. A bad CDN SSL setup can cause loops.
- Editing live files with no backup. That is pain with extra steps.
- Leaving old plugins active. Some load unsafe scripts.
Final Checklist
- SSL certificate is active.
- WordPress URLs use HTTPS.
- HTTP redirects to HTTPS.
- Database links are updated.
- Theme files are clean.
- Plugin settings are checked.
- CDN uses proper SSL.
- All caches are cleared.
- Browser Console shows no mixed content errors.
Mixed content errors look scarier than they are. Most fixes come down to one thing: stop loading old HTTP files. Find them, replace them, clear cache, and test again. Then enjoy that lovely little padlock.





