Keep browser security enabled, trace each insecure dependency to its owning source and confirm a working HTTPS destination before making a scoped correction.

An HTTPS page can still contain an old HTTP address for an image, script, font or other resource. The browser may upgrade the request or block it, depending on its type and context. Repair the resource reference and its secure destination rather than asking visitors to allow insecure content.
This guide explains how to identify mixed content, trace its source in WordPress or another website, make a controlled correction and verify the public result. Official documentation was checked on 13 October 2026. No certificate, browser security setting or live website was changed for this article.
Separate the page connection from its dependencies
Mozilla’s mixed-content guide describes insecure resources requested from a secure context. HTTPS on the main document does not automatically change every URL stored in its content, templates, stylesheets or third-party components.
For a fictional studio site, the homepage might load at its HTTPS address while a gallery still refers to an image on the same host through HTTP. A font or script can point to another company’s insecure endpoint. Both are dependency problems; buying another certificate for the homepage does not establish that either reference is repaired.
Also distinguish a certificate failure from mixed content. A missing or invalid certificate at an HTTPS destination is its own connection problem. An ordinary top-level link to an HTTP page creates a separate navigation context; it is not classified like an HTTP script embedded inside the secure page. Downloads initiated securely but fetched insecurely require separate attention as mixed downloads.
Expect resource-specific upgrade and blocking behaviour
The W3C Mixed Content specification defines an upgrade path for certain image, audio and video requests, with exceptions including IP-address hosts and image-set requests. Other insecure dependencies, including scripts, stylesheets, fonts and embedded frames, are blockable. Browser support and the exact request context still matter.
Do not turn that distinction into “all pictures work.” An image selected through srcset or picture does not follow the same automatic-upgrade path as an ordinary img source. A policy can also upgrade requests that would otherwise be blocked. Read the browser’s actual message and final request instead of guessing from a filename extension.
| What you observe | What it tells you | Next check |
|---|---|---|
| Request automatically upgraded | The browser attempted a secure version of an insecure reference | Verify the HTTPS response and repair the original reference |
| Request blocked as mixed content | The insecure dependency was not allowed in that context | Find the initiator and a supported HTTPS destination |
| HTTPS request fails | A secure request was attempted but did not provide a usable resource | Investigate its certificate, response and content |
| Page looks correct with a warning | A visible result does not establish clean dependency references | Review the warning and representative public templates |
Capture the exact resource and its initiator
Open the affected public page in a browser, then inspect its developer Console and Network panels. Reload with the tools open so the request history contains the event. Capture the page URL, reported resource URL, resource type, browser message and the component that initiated the request.
Chrome’s Privacy and security panel documentation explains reviewing connection problems and relevant resource requests. Its Network reference describes the request log and initiator information. Panel names and placement can vary by browser version; the objective is the exact dependency, not one screenshot’s menu layout.
For the fictional studio, record whether the gallery’s public HTML contains the HTTP address or JavaScript inserts it later. If the URL comes from a stylesheet, trace that stylesheet to its owning theme or integration. An error beside a gallery does not establish that the image upload itself is corrupt.
Remove private query strings, tokens and personal data before sharing diagnostic details with a maintainer. A public image address may be harmless, but a captured request can include other information that does not belong in a support forum.
Check the secure destination before changing the reference
Use the exact intended HTTPS resource address. Confirm that it has a valid connection and returns the expected image, font, stylesheet or script, rather than a login page, unrelated redirect or error document. Changing the scheme cannot create a missing secure endpoint.
If the resource belongs to another service, use its current documented HTTPS embed or asset URL. If the supplier cannot provide a suitable secure version, replace the integration or remove the dependency through the site’s normal process. Do not relay unknown third-party scripts through your own server merely to hide the warning.
Keep failures separate. An HTTPS endpoint can be reachable while a cross-origin browser request is still refused. Mozilla’s CORS guide explains the HTTP-header mechanism that controls permitted cross-origin access. Fixing transport security does not automatically grant that access, and a CORS error is not a reason to disable mixed-content protection.
Trace the stored reference to the system that owns it
In WordPress, examine the relevant block, media reference, theme setting, generated stylesheet or plugin configuration. Change a single confirmed source before attempting a broad rewrite. A generated CSS file may be an output of saved settings, so editing the output alone can be undone when the component regenerates it.
The WordPress migration handbook identifies stored URL references in content and options. The WordPress Address and Site Address also have distinct roles. Do not assume they must be identical: installations can use an intentional subdirectory arrangement.
If the site sits behind a reverse proxy or CDN, have the responsible maintainer verify how the application recognizes the original request scheme. The WordPress HTTPS handbook documents redirect-loop risks when a TLS-terminating proxy is not correctly recognized. Fix the trusted proxy/application arrangement instead of repeatedly guessing at address values.
Our canonical-domain guide concerns the public address and redirects. Mixed content is the separate check that the chosen secure page’s dependencies also use suitable secure destinations.
Make bulk replacements a planned data change
A site migration may leave many old references. Before any bulk operation, create a restorable backup, identify the correct installation and database, define the exact old and new URL prefixes and test the scope on a protected copy. Shared hosting is not permission to rewrite unrelated sites.
The WP-CLI search-replace reference documents serialized-data handling, dry-run mode and table scoping. A qualified maintainer can use those capabilities to inspect the proposed change before saving it. This guide intentionally does not supply a command that could be pasted into an unknown production environment.
Preserve post GUIDs. The migration handbook explains that these are persistent feed identifiers, not ordinary front-end links to rewrite simply because they resemble old URLs. The WP-CLI reference includes an option to skip the GUID column.
A global substitution of every occurrence of http is also too broad. It can alter external citations, text examples, unrelated integrations or values outside the intended site. Review representative affected rows and the replacement report, then check the rendered output. Use the migration checklist when the correction is part of a wider move.
Use upgrade policies as a safeguard, not proof of repair
Mozilla’s upgrade-insecure-requests reference describes a Content Security Policy directive that rewrites applicable insecure requests before they reach the network. If the resource is unavailable over HTTPS, the upgraded request fails; it does not fall back to HTTP.
Such a policy can help a planned HTTPS transition, but it does not correct the saved source, provide a certificate or make an unsupported supplier endpoint available. It is also not a substitute for other transport protections. Have the maintainer integrate it with the existing policy and test dependencies rather than blindly adding or replacing security headers.
Keep browser protection enabled during acceptance testing. Allowing insecure content for one profile can make a broken page appear functional only for the tester. Asking readers to weaken their browser is not a production solution.
Check cached output and late-loading features
After correcting the source, compare the public HTML or generated asset with the saved change. Mozilla’s HTTP caching guide explains why a stored response can be reused. A targeted refresh of the relevant site’s cache may be necessary; a new editor value does not prove the old public response has gone.
Check the homepage, affected article and any template that uses the same component. Exercise galleries, mobile navigation, consent-dependent embeds and other features that load resources later. A clean initial console on one page does not cover dependencies that were never requested.
For a controlled comparison, inspect both an ordinary fresh visitor state and a returning state where relevant. Keep protection and authentication requirements intact. Do not expose a private staging copy to a public scanning service merely to obtain a report.
Keep a compact acceptance record
- Record the original page, resource, request context and warning.
- Verify that the intended HTTPS resource is available and correct.
- Identify and repair the owning content, setting or integration.
- Recheck public output and relevant cache layers.
- Exercise the affected templates and delayed features with security protection enabled.
- Confirm that no mixed-content warning or blocked dependency remains in those tested journeys.
- Record any untested pages or remaining supplier problem explicitly.
Use the launch checklist for the broader site review and the link-audit workflow for other failed destinations. A verified correction is specific: the intended secure resources load in the tested journeys. It is not a claim that a padlock, one scan or one successful image certifies the security of the entire website.
Sources and verification
Editorial review 2026-10-13. Source check dates are recorded separately. Notes describe what each source supports and its limits.
View sources
- Mozilla: Mixed contentChecked Secure-page/insecure-dependency distinction, upgrade versus blocking, src versus image-set exceptions, top-level navigation and mixed-download context.
Limits: Not every HTTP URL is a mixed subresource. Its CSS-image listings are internally inconsistent; no categorical CSS-background claim is repeated. Actual browser request and W3C algorithm remain the check. - W3C: Mixed Content specificationChecked Request-destination upgrade algorithm, IP-host and imageset exclusions, and blocking context.
Limits: Candidate Recommendation Draft is a standards description, not a claim that every deployed browser or policy behaves identically. CSS-image ambiguity in MDN is not used to generalize. - Chrome: Privacy and security panelChecked Separate HTTPS connection/certificate problems from mixed dependencies and navigate relevant origin/request evidence.
Limits: Panel placement can vary and no browser inspection or certificate check performed. - Chrome: Network features referenceChecked Request log, initiator and final resource inspection for tracing the owning source.
Limits: No request actually captured; visible page appearance alone is not a complete network audit. - Mozilla: Cross-Origin Resource SharingChecked Cross-origin HTTP-header permission model is separate from transport security.
Limits: No wildcard/header/security bypass prescription or guarantee that changing HTTP to HTTPS resolves CORS. - WordPress: Migrating WordPressChecked Site Address versus WordPress Address roles, stored content/option URL references and persistent GUID protection.
Limits: Legacy migration snippets are not copied. No database, URL field, GUID or shared installation changed. - WordPress: HTTPS handbookChecked TLS-terminating reverse-proxy recognition and potential redirect loops from incorrect scheme handling.
Limits: Only the relevant modern proxy principle is used; historical HTTP/public-site and WordPress 1.5 snippets are not recommended or reproduced. - WordPress: wp search-replaceChecked Serialized-data handling, dry-run, table/column scope and GUID-column skipping.
Limits: No production command supplied or run; nightly-only old/new options are not used, and private replacement data must not be logged publicly. - Mozilla: upgrade-insecure-requestsChecked CSP request rewriting before networking and failure without HTTP fallback where HTTPS is unavailable.
Limits: A transition safeguard is not stored-reference repair, endpoint provision or a replacement for other transport policy. No security header configured. - Mozilla: HTTP cachingChecked Stored responses can preserve old public output after a saved source change.
Limits: No blanket cache purge, private staging disclosure or claim to have tested every template.