If your website uses HTTPS but still shows a security warning, an image, script, stylesheet, or other file may still be loading over HTTP. These mismatched requests are called mixed content. To fix mixed content warnings, identify the exact insecure files, update their URLs to HTTPS, and check that the site loads cleanly after clearing caches.
The process is usually manageable, but changing URLs without a backup can cause broken images or site features. Work through the checks below in order, especially if you use a content management system such as WordPress.
What causes mixed content?
A page served over HTTPS is protected by an encrypted connection. When it requests a file using an HTTP address, the browser has to handle content from a less secure connection. For example, a page at https://example.com might request an image from http://example.com/uploads/photo.jpg.
The HTTPS version of a site can still contain old HTTP references in several places:
- Images, videos, fonts, or embedded media added before HTTPS was enabled
- Theme or plugin files that contain a hard-coded HTTP address
- Stylesheets that point to background images using HTTP
- Third-party scripts, widgets, or media hosted on another domain
- Cached pages or files that still contain an older URL
Browsers may block some insecure files, particularly scripts that can change page behavior. Other content may still appear but trigger a warning or leave the page partially insecure. The browser’s developer tools can show what is being requested and whether it was blocked.
How to fix mixed content warnings
1. Confirm HTTPS works across the site
First, make sure the site’s HTTPS connection is set up correctly. Open the homepage and a few important pages using their HTTPS addresses. Check that the certificate is valid and that each page loads without a certificate error. Resolve any HTTPS configuration problems with your hosting provider before investigating individual files.
Also check that visitors are sent to the preferred version of your site. For example, decide whether the public address should use www or not, then confirm that the alternate version redirects to it. Redirects help standardize the page address, but they do not replace updating insecure file references inside the page.
2. Find the insecure requests
Open a page that shows the warning in a browser, then open its developer tools. Look in the Console or Security panel for messages that mention mixed content, blocked content, or an HTTP resource. The message usually includes the address of the file and the page that requested it.
Check more than the homepage. Visit pages with galleries, forms, video, or unusual layouts, since they may load different files. Keep a short list of each HTTP address and note whether it belongs to your site or an outside service. That tells you where to make the change.
When a browser message is unclear, inspect the Network panel, reload the page, and filter or search for requests beginning with http://. Some browser tools also identify whether a request was blocked. Don’t assume that every HTTP address in stored content is active on the page; use the browser’s results to prioritize references that are actually being requested.
3. Update URLs in your site settings and content
For a content management system, start with its general site settings. Confirm that the site address and installation address use HTTPS, if the platform provides those fields. Then review the affected page or template and change each file address to its HTTPS equivalent.
For an image on your own domain, changing http:// to https:// may be enough if the file is available securely. Test a third-party asset’s HTTPS address before using it. When the provider does not serve the file over HTTPS, replace it with a secure alternative or remove it. Avoid copying the file to your own site unless you have permission and a maintenance plan for it.
On WordPress, old addresses can appear in page content, widgets, theme settings, and plugin settings. A search-and-replace tool can help update repeated references, but back up the database first and use a tool that handles serialized data safely. Serialized data stores values with formatting information, so a basic database-wide text replacement can damage settings. Test changes on a staging copy when available.
4. Check themes, plugins, and custom code
After updating page content, inspect the theme and plugin settings that control any remaining affected feature. A hard-coded HTTP address may be part of a header image, font, script, or CSS rule. Search the relevant settings or source files for the exact address shown in the browser message.
For custom CSS, look for references such as url(http://…). Replace the address with a working HTTPS URL or use a relative path for a file hosted on the same site, when appropriate. When a plugin or theme keeps generating an HTTP link, update it if possible or ask its developer for a fix. Editing a vendor’s files directly is fragile because an update can overwrite the change.
5. Clear caches and test again
Once you have corrected the source, clear caches that could still serve the old page or file. Depending on your setup, this may include a site caching plugin, hosting cache, content delivery network cache, and browser cache. Purge only the relevant site cache if you can identify it, then load the affected page again.
Recheck the page in developer tools and confirm the insecure request no longer appears. Test in a private browser window as well, and review a few key pages on both desktop and mobile. Check that images, navigation, forms, video, and other interactive elements still work. A page can lose a visual element when a browser blocks the insecure file, so visual testing matters alongside the console check.
If the warning keeps coming back
A recurring warning often means the visible page was fixed but another source still inserts the old address. Check whether a page builder, widget, tag manager, or external service adds the file after the page loads. Review the request’s source information in developer tools where available, then trace it to the component that created it.
Also check whether an optimization or caching layer is generating a copy of an old stylesheet. Clear that layer’s cache after correcting the original file. For a requested file on a third-party domain, ask the provider whether it supports HTTPS. A redirect from HTTP to HTTPS is not a dependable substitute for correcting the link at its source.
As a final check, search your site’s templates and content for old HTTP references that may appear on less-visited pages. Prioritize URLs that the browser actually requests, and make changes in a backup or staging environment when possible. Once the page loads without mixed-content errors and its features work as expected, the warning should be resolved at its source rather than merely hidden.

Leave a Reply