http:// links in your content, theme, or database. Fix it by finding every insecure URL, changing it to https://, and adding an upgrade-insecure-requests rule. Most sites are clean within a day.You moved your site to HTTPS, expected a green padlock, and instead Chrome says “Not secure” — or half your layout has broken. That is mixed content, one of the most common things Malaysian business owners bring to ZenWeb after a rushed migration.
The good news: mixed content is almost always a quick fix, not a rebuild. Our SEO team clears it on client sites most weeks, and the pattern is nearly always the same handful of causes. If your rankings dropped suddenly right after the switch to HTTPS, a mixed content fault is a prime suspect worth ruling out first.
The video below fixes mixed content on a live WordPress site; the guide after it explains what the warning means, why the HTTPS move triggers it, and how to clear every insecure file.
Source video: "How to Fix the Mixed Content Warning in WordPress" on YouTube.
A mixed content warning is rarely serious. It simply means your page is served over HTTPS, but a few files on it still load over plain HTTP — and a secure page is only as safe as its least secure file.
This guide keeps it practical: what mixed content is, why the HTTPS move sets it off, where it hides, how it hurts you, and a clear step-by-step fix. By the end you will know exactly what to change and in what order.
Quick Answer: Mixed content means an HTTPS page is loading one or more files — an image, script, stylesheet, or font — over insecure HTTP. The browser can no longer promise the whole page is secure, so it removes the padlock, shows a “Not secure” note, or blocks the file outright.
These leftover files are usually harmless images or an old script, not an attack. But the browser cannot tell the difference, so it warns the visitor anyway. In bad cases it breaks the page — the reason a mixed content fault sometimes looks like a sudden drop in rankings when it is really a rendering problem.
Quick Answer: There are two types. Passive mixed content (images, audio, video) only displays, so Chrome tries to auto-upgrade it and blocks it only if that fails. Active mixed content (scripts, stylesheets, iframes, fonts) can control the page, so the browser blocks it outright — which is why layouts break.
Knowing which type you have tells you how urgent the fix is. Passive faults mostly cost you the padlock; active faults can break the page. Per Google’s web.dev guidance, browsers now try to upgrade insecure requests automatically, but you should never rely on that as your fix.
| Type | Example files | What Chrome does | Risk |
|---|---|---|---|
| Passive (display) | Images, video, audio | Tries to auto-upgrade to HTTPS; blocks only if that fails | Lower — loses the padlock |
| Active | Scripts, stylesheets, iframes, fonts, AJAX/fetch | Blocked outright, no upgrade attempt | Higher — breaks the page |
Source: browser mixed-content behaviour, per web.dev, 2024-2026.
Passive faults are the most common, because images carry over from the old HTTP site most easily. If your images are not ranking on Google either, a blocked or insecure image source is worth checking as part of the same clean-up.
Quick Answer: Installing an SSL certificate secures the connection, but it does not rewrite the links already saved on your site. Every http:// URL sitting in your content, theme files, and database stays exactly as it was — and each one now loads insecurely on your new HTTPS pages.
An HTTPS move changes how the page is delivered, not what is saved inside it. Old posts, image links, and settings still point to the http:// version of your files, and the certificate cannot reach in and fix them. Common triggers include:
http://yoursite.com/... before the move stay that way.http:// for fonts, icons, or scripts.This is the same class of fault that can cause a wider traffic crash after a site migration — the move itself is fine, but the leftover links quietly cause problems.
http:// URLs surfacing on new HTTPS pages.Just moved to HTTPS and something looks off?
We run a full post-migration check so nothing slips through. See our SEO services →
Quick Answer: On most migrated sites, mixed content hides in a predictable order. Hard-coded links inside old posts and pages are the biggest source, followed by theme and plugin assets, then images, then external embeds. Knowing the order tells you where to look first.
Across the post-migration audits we run for Malaysian SME sites, insecure files cluster in the same few places:
| Where it hides | Share of insecure files |
|---|---|
| Hard-coded links in posts & pages (database) | 36% |
| Theme & plugin assets (CSS, JS, fonts) | 23% |
| Images in content & media library | 18% |
| External embeds & third-party widgets | 13% |
| Menus, widgets & hard-coded headers | 10% |
Source: ZenWeb client audits, Malaysian SME sites, 2024-2026. Directional, not guarantees.
Fix the database first and you clear most of it. Blocked scripts and stylesheets can also stop Google rendering a page, one reason pages sometimes will not get indexed after a move.
Quick Answer: Mixed content rarely causes a direct penalty, but it hurts three ways: the “Not secure” label scares off visitors, blocked scripts and styles break pages and slow them down, and broken rendering can stop Google seeing your content. Together those weaken conversions and rankings.
HTTPS itself is a confirmed, if lightweight, ranking factor — Google has treated HTTPS as a ranking signal since 2014. The bigger costs, though, are indirect:
Because the symptoms are indirect, mixed content is easy to misread as ordinary day-to-day ranking movement when the real cause is an insecure file breaking the page.
Quick Answer: The fastest way to find mixed content is your browser’s developer console. Open the flagged page, press F12, and read the Console tab — every insecure file is listed as a “Mixed Content” message with its exact http:// URL. For a whole site, a crawler lists them all in one pass.
List every insecure file before you change anything. Use these methods, quickest first:
http:// to spot insecure image, script, or link references.Quick Answer: Fix mixed content by finding every insecure file, updating each http:// URL to https:// in your content and theme, running a database search-and-replace, adding an upgrade-insecure-requests rule, then re-testing with caches cleared. Most sites clear in an afternoon.
Six steps, in order, that take a site from “Not secure” back to a full padlock.
http:// resources before touching anything.http:// to https:// in content, theme files, and settings such as the site URL.http://yourdomain for https://yourdomain across the database to clear the bulk in one pass.upgrade-insecure-requests Content Security Policy so any missed file is upgraded automatically.Always back up first and change the database with a proper tool, never by hand. If you would rather not touch it, our SEO team handles the clean-up safely.
Nervous about editing the database?
We do the search-and-replace and full re-test for you, with a backup first. Get help fixing your HTTPS issues →
Quick Answer: On WordPress, set both the WordPress Address and Site Address to HTTPS under Settings → General, run a database search-and-replace tool to swap old http:// URLs for https://, then use an SSL fixer plugin only as a temporary safety net while you confirm the real links are clean.
Most Malaysian SME sites run on WordPress, so the fix is well trodden. The reliable order is settings first, then the database, then a plugin only if needed:
https://.Quick Answer: How often mixed content appears depends almost entirely on how the migration was done. Rushed DIY switches hit it most; plugin-only “force SSL” setups are close behind; a planned migration with a proper audit rarely does. The method predicts the mess.
Looking across the migrations we audit, the pattern is consistent: the less planning, the more mixed content.
| How the site was migrated | Sites with mixed content |
|---|---|
| DIY manual HTTP→HTTPS switch | 71% |
| “Force SSL” plugin only, no clean-up | 46% |
| Host or CDN one-click SSL, no audit | 33% |
| Planned migration with a full audit | 9% |
Source: ZenWeb migration audits, Malaysian SME sites, 2024-2026. Directional, not guarantees.
The takeaway is not “never DIY” — it is “audit after you switch.” The same lack of a post-migration check is what turns a clean move into the sort of mess behind a rankings drop after a redesign.
Quick Answer: Most mixed content is fixed in under a day. An upgrade-insecure-requests rule buys a clean padlock in under an hour as a stopgap; a database search-and-replace clears the bulk in one to three hours; a full manual audit takes up to a day.
Match the method to your site so you neither over-engineer a small blog nor rush a big store:
| Method | Typical time | Best for |
|---|---|---|
Add upgrade-insecure-requests | Under 1 hour | A fast interim safety net |
| Database search-and-replace | 1–3 hours | The bulk of hard-coded links |
| SSL / mixed-content fixer plugin | 30–60 min | Small sites, non-technical owners |
| Full manual audit + theme/CDN fix | Half to full day | Large, custom, or repeat-offender sites |
Source: ZenWeb operational data, 500+ Malaysian SME campaigns, 2024-2026. Typical ranges, not guarantees.
Want it fixed properly the first time?
We clear mixed content, retest every page type, and confirm the padlock holds. Explore our SEO services →
Quick Answer: Fixing mixed content on a small WordPress site is a safe DIY job with a backup and a search-and-replace tool. Bring in help when the site is large or custom, the warning keeps returning, or you are not comfortable editing the database.
Decide by how complex the site is and how comfortable you are with the database:
At ZenWeb, we clear mixed content, confirm every page type is secure, and make the fix stick. If the “Not secure” label is costing you enquiries, our SEO team can sort it and check your wider technical health too.
Mixed content warnings after an HTTPS move look alarming but are usually simple. Your connection is secure; a few old http:// files just have not caught up. Find them, switch them to https://, add an upgrade rule as a net, and re-test with caches cleared.
Fix the database and theme first, where most insecure files hide. If the site is large, the warning keeps returning, or the padlock matters for your checkout, ZenWeb’s SEO team can clear it and confirm your site is secure.
It means your page loads over secure HTTPS, but at least one file on it — an image, script, stylesheet, or font — still loads over insecure HTTP. The browser cannot guarantee the whole page is secure, so it removes the padlock, shows a “Not secure” note, or blocks the insecure file. It is a setup gap, not usually hacking.
Not directly in most cases, but it hurts indirectly. HTTPS is a lightweight ranking signal that mixed content undermines. More importantly, a “Not secure” label scares visitors, blocked scripts break pages, and slower loading drags Core Web Vitals. Those effects hurt conversions and rankings more than the flag itself.
Because an SSL certificate secures the connection but does not rewrite links already saved on your site. Every http:// URL in your old posts, theme files, and database stays as it was, and now loads insecurely on your HTTPS pages. The fix is to update those saved links to https://.
A plugin helps as a temporary safety net, but it often masks the problem rather than removing it — it forces files to load over HTTPS without cleaning the underlying links. That is why plugin-only sites frequently relapse. The lasting fix is to update the settings and run a database search-and-replace.
Most sites are clear within a day. Adding an upgrade-insecure-requests rule gives you a clean padlock in under an hour as a stopgap, and a database search-and-replace clears the bulk in one to three hours. Only large or custom sites need a half-day to full-day audit.
Still seeing “Not secure” after your HTTPS switch?
Book a free 30-minute strategy session. We’ll find every insecure file, clear the mixed content, and re-test each page type so your padlock holds and your site is fully secure.
Complete the form and our team will contact you to discuss your goals. Let’s grow your business.

Online