Mixed Content Checker
Scans HTTPS pages for HTTP sub-resources (blocking: scripts/stylesheets/iframes; passive: images/media). Detects CSP upgrade-insecure-requests. Grade A-F.
How to Use Mixed Content Checker
- 1Enter your HTTPS URL to scan for mixed content.
- 2The tool fetches the page HTML and scans for HTTP:// URLs in all resource attributes.
- 3Results are split into blocking (scripts, CSS, iframes) and passive (images, media).
- 4Review the CSP recommendation to automatically upgrade insecure requests.
Zenovay
Track your website performance
Real-time analytics, session replay, heatmaps, and AI insights. 2-minute setup, privacy-first.
Related Tools
Password GeneratorGenerate strong, random passwords with customizable length, characters, and complexity.
Password Strength CheckerCheck how strong your password is. Get an estimated crack time and improvement suggestions.
HMAC GeneratorGenerate HMAC signatures using SHA-256, SHA-384, or SHA-512 with the Web Crypto API.
AES Encryption/DecryptionEncrypt and decrypt text using AES-GCM with PBKDF2 key derivation. Runs entirely in your browser.
Frequently Asked Questions
What is mixed content?▾
Mixed content occurs when an HTTPS webpage loads sub-resources (scripts, images, CSS, iframes) over HTTP. Since the page itself is served securely over HTTPS but some resources use unencrypted HTTP, a 'man-in-the-middle' attacker could intercept and modify the insecure resources, potentially injecting malicious code into what appears to be a secure page.
What is the difference between blocking and passive mixed content?▾
Blocking (active) mixed content — scripts, stylesheets, XHR requests, iframes — is blocked by modern browsers because it can directly modify the HTTPS page and steal credentials or data. Passive mixed content — images, audio, video — is displayed with a warning (the padlock turns broken/yellow) but not blocked, since it has less direct attack surface. Chrome 79+ blocks passive mixed content too.
How do I fix mixed content?▾
The fastest fix is to add 'Content-Security-Policy: upgrade-insecure-requests' to your HTTP response headers. This tells browsers to automatically upgrade HTTP sub-resource requests to HTTPS. The permanent fix is to update all hardcoded http:// URLs in your HTML, CSS, and JavaScript files to https:// or protocol-relative URLs (//).
What is upgrade-insecure-requests?▾
The CSP 'upgrade-insecure-requests' directive tells the browser to automatically rewrite all HTTP sub-resource URLs to HTTPS before fetching them. It's a server-side fix that doesn't require changing every URL in your code. Add it as a response header: Content-Security-Policy: upgrade-insecure-requests. Note: this doesn't fix embedded iframes that serve mixed content themselves.
Why does this checker miss some mixed content?▾
This tool scans the raw HTML response — it doesn't execute JavaScript or load the page in a browser. Mixed content injected by JavaScript after page load (e.g., from ad networks or third-party widgets) won't be detected. For comprehensive scanning, use Chrome DevTools (Console and Network tabs with 'Mixed Content' filter) alongside this static analysis.