What this problem looks like
Mixed content often appears after SSL is enabled but WordPress still stores http links in post content, widgets, and theme customiser fields. Page builders and old image URLs in the media library are frequent sources.
Fix certificates and redirects first, then hunt http strings. A database search-replace fixes bulk content, but hardcoded URLs in theme files need manual or FTP edits.
Step 1: List blocked assets in browser DevTools
Load an https page, open DevTools → Console, and look for Mixed Content warnings. Each line names an http URL. Screenshot the list before you change anything.
- Images in old posts and featured images.
- CSS or JS from plugins with hardcoded http CDNs.
- Background images in page builder sections.
- Google Fonts or analytics scripts loaded insecurely.
Step 2: Confirm WordPress generates https links
In wp-admin go to Settings → General. Both URLs must use https://. If admin will not load, set constants in wp-config.php:
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
Step 3: Search-replace http URLs safely
On staging or with backup, use WP-CLI dry-run first:
wp search-replace 'http://example.com' 'https://example.com' --all-tables --dry-run
wp search-replace 'http://example.com' 'https://example.com' --all-tables
Step 4: Fix theme and widget hardcoding
Search theme files for http:// via SFTP or use a plugin like Better Search Replace for specific tables. Check Text widgets, Custom HTML blocks, and page builder global settings.
Step 5: Clear all caches and verify
Purge host cache, optimisation plugin cache, and Cloudflare. Test checkout, forms, and login. Mixed content on cart pages can block payment scripts in strict browsers.
When to stop DIY and hire help
Large legacy sites with page builders and thousands of http URLs are tedious to fix by hand. BugShield resolves mixed content and SSL alignment at a confirmed fixed price.