Was ist Mixed Content und warum ist es ein Problem?
Mixed Content entsteht, wenn eine HTTPS-Seite Subressourcen über HTTP einbindet. Das HTTPS-Protokoll verschlüsselt die Verbindung zwischen Browser und Server, sodass Dritte den Datenverkehr nicht mitlesen oder manipulieren können. Wenn jedoch einzelne Ressourcen unverschlüsselt geladen werden, wird diese Sicherheitsgarantie für diese Ressourcen aufgehoben. Ein Angreifer könnte beispielsweise ein über HTTP geladenes JavaScript manipulieren und dadurch die gesamte Seite kompromittieren, auch wenn die Hauptseite selbst über HTTPS ausgeliefert wird.
Laut einer Analyse von HTTP Archive weisen rund 84 % aller Websites, die auf HTTPS umgestellt haben, mindestens eine Mixed-Content-Warnung auf (HTTP Archive Web Almanac). In den meisten Fällen handelt es sich um vergessene Bild-URLs in Datenbankinhalten, hartcodierte HTTP-Links in Templates oder Drittanbieter-Widgets, die noch HTTP verwenden. Ein Security-Scan identifiziert diese Probleme automatisch.
Aktiver vs. passiver Mixed Content
Aktiver Mixed Content (blockiert)
Aktiver Mixed Content umfasst Ressourcen, die mit der Seite interagieren und sie verändern können: JavaScript-Dateien, CSS-Stylesheets, iframes, XMLHttpRequest-Aufrufe, Fetch-Anfragen und WebSocket-Verbindungen. Diese Ressourcen haben Zugriff auf das Document Object Model (DOM) und könnten, wenn sie manipuliert werden, Passwörter abfangen, Formulare verändern oder Nutzer auf Phishing-Seiten weiterleiten. Deshalb blockieren alle modernen Browser aktiven Mixed Content vollständig. Das Ergebnis: Skripte werden nicht ausgeführt, Stylesheets nicht geladen und iframes bleiben leer.
Passiver Mixed Content (Warnung oder Auto-Upgrade)
Passiver Mixed Content umfasst Ressourcen, die nicht direkt mit der Seite interagieren: Bilder, Audio- und Video-Dateien sowie Favicons. Das Risiko ist geringer, da diese Ressourcen den Seiteninhalt nicht verändern können. Allerdings kann ein Angreifer ein über HTTP geladenes Bild durch ein anderes ersetzen oder die URL nutzen, um das Browsing-Verhalten zu tracken. Chrome versucht seit Version 86, passive Ressourcen automatisch auf HTTPS hochzustufen (Auto-Upgrade). Wenn die HTTPS-Version nicht verfügbar ist, wird die Ressource blockiert. Das bedeutet: Auch passive Mixed-Content-Probleme führen heute zu fehlenden Bildern auf der Website.
Die Browser-Hersteller verschärfen ihre Mixed-Content-Richtlinien kontinuierlich. Was heute noch als Warnung durchgeht, wird morgen blockiert. Chrome hat mit Version 124 das Auto-Upgrade auf alle Ressourcentypen ausgeweitet. Firefox und Safari ziehen nach. Die einzig zukunftssichere Lösung ist die vollständige Umstellung aller Ressourcen auf HTTPS.
Mixed Content identifizieren: Vier Methoden
Browser-Entwicklertools
Die schnellste Methode für einzelne Seiten: Öffnen Sie die Browser-Konsole (F12 in Chrome) und suchen Sie nach Warnungen wie "Mixed Content: The page was loaded over HTTPS, but requested an insecure resource". Die Konsole zeigt die genaue URL der problematischen Ressource an. Dieses Verfahren eignet sich für die Diagnose einzelner Seiten, ist aber für eine Website mit Hunderten von Seiten nicht praktikabel.
Automatisierter Security-Scan
XICTRAQ crawlt Ihre Website und prüft jede Seite systematisch auf Mixed Content. Der Security-Scan identifiziert HTTP-Ressourcen auf allen Seiten, kategorisiert sie nach Typ (aktiv/passiv) und liefert die genauen URLs sowie deren Einbindungsstellen. Anders als manuelle Prüfung erfasst der automatisierte Scan alle Seiten und erkennt auch dynamisch geladene Ressourcen, die in den Entwicklertools möglicherweise erst nach Interaktion sichtbar werden.
Content-Security-Policy im Report-Only-Modus
Ein technisch eleganter Ansatz ist die Konfiguration einer Content-Security-Policy mit Report-Only-Header. Setzen Sie den Header Content-Security-Policy-Report-Only: default-src https:; report-uri /csp-report. Der Browser sendet für jede HTTP-Ressource einen Report an die angegebene URL, ohne sie zu blockieren. So erhalten Sie eine vollständige Liste aller Mixed-Content-Quellen im Produktivbetrieb, einschließlich Ressourcen, die nur bei bestimmten Nutzerinteraktionen geladen werden. Mehr über Security-Headers erfahren Sie hier.
Command-Line-Tools und Crawler
Für Entwickler eignen sich CLI-Tools wie mixed-content-scanner (Node.js) oder muffet (Go), die eine Website crawlen und alle HTTP-Ressourcen auf HTTPS-Seiten identifizieren. Diese Tools sind nützlich für einmalige Audits, ersetzen aber nicht das kontinuierliche Monitoring: Neue Mixed-Content-Probleme können jederzeit durch Content-Updates, Plugin-Installationen oder geänderte Drittanbieter-Skripte entstehen.
Die häufigsten Quellen von Mixed Content
Nach der Analyse Tausender Websites mit Mixed-Content-Problemen lassen sich die Hauptquellen klar benennen:
- Datenbank-Inhalte mit hartcodierten HTTP-URLs: Das häufigste Problem. Bilder, Links und eingebettete Medien in Blog-Beiträgen, Produktbeschreibungen und Seiteninhalten verwenden absolute HTTP-URLs, die bei der HTTPS-Migration nicht aktualisiert wurden.
- Template- und Theme-Dateien: Hartcodierte HTTP-URLs in Header, Footer, Sidebar-Widgets oder Template-Partials. Besonders häufig bei älteren WordPress-Themes, die vor der HTTPS-Verbreitung erstellt wurden.
- Drittanbieter-Widgets und Einbettungen: YouTube-Embeds mit HTTP-URLs, Social-Media-Widgets, Kartendienste, Live-Chats oder Cookie-Consent-Tools, die veraltete Einbindungscodes verwenden.
- CDN-Konfiguration: Ein falsch konfiguriertes CDN, das Assets über HTTP statt HTTPS ausliefert. Dies betrifft oft ältere CDN-Setups, die vor der HTTPS-Migration konfiguriert wurden.
- CSS-Hintergrundbilder und @import-Regeln: HTTP-URLs in CSS-Dateien werden oft übersehen, da sie nicht im HTML-Quelltext sichtbar sind. Besonders
background-image: url(http://...)und@import url(http://...)sind häufige Quellen. - Webfonts von externen Servern: Google Fonts und andere Webfont-Dienste, die über HTTP eingebunden sind. Neben dem Mixed-Content-Problem gibt es hier auch DSGVO-Relevanz.
Mixed Content systematisch beheben
Datenbank-Inhalte bereinigen
Ersetzen Sie alle HTTP-URLs in der Datenbank durch HTTPS-Varianten. Für WordPress bietet sich ein Search-and-Replace-Tool wie Better Search Replace an. Ersetzen Sie http://ihredomain.de durch https://ihredomain.de und wiederholen Sie den Vorgang für alle verwendeten Domains. Wichtig: Erstellen Sie vor der Datenbankänderung ein Backup. Prüfen Sie nach dem Ersetzen, ob alle Ressourcen auch über HTTPS erreichbar sind. Eine nicht über HTTPS verfügbare Ressource führt nach dem Ersetzen zu einem 404-Fehler statt zu Mixed Content.
Template- und Theme-Anpassungen
Durchsuchen Sie alle Template-Dateien nach hartcodierten HTTP-URLs. Ersetzen Sie absolute URLs durch protokollrelative URLs (//example.com/bild.jpg) oder HTTPS-URLs. Noch besser: Verwenden Sie relative Pfade für eigene Ressourcen (/images/bild.jpg), die automatisch das Protokoll der Hauptseite verwenden. Bei CMS-Systemen nutzen Sie die eingebauten URL-Funktionen statt hartcodierter Pfade.
Drittanbieter-Ressourcen aktualisieren
Aktualisieren Sie alle Einbindungscodes von Drittanbietern auf die aktuelle HTTPS-Version. Die meisten Anbieter unterstützen seit Jahren HTTPS. Wenn ein Drittanbieter keine HTTPS-Version seiner Ressourcen bereitstellt, sollten Sie den Einsatz dieses Anbieters überdenken. XICTRAQ identifiziert im Rahmen des Security-Scans auch risikobehaftete Drittanbieter-Skripte, die neben dem Mixed-Content-Problem weitere Sicherheitsrisiken bergen können.
Upgrade-Insecure-Requests als Sofortmaßnahme
Der HTTP-Header Content-Security-Policy: upgrade-insecure-requests oder das gleichnamige Meta-Tag weist den Browser an, alle HTTP-Ressourcen automatisch über HTTPS anzufordern. Das ist eine effektive Sofortmaßnahme, die Mixed-Content-Warnungen eliminiert, solange die Ressourcen auch über HTTPS erreichbar sind. Wichtig: Dieser Header ersetzt nicht die eigentliche Bereinigung, da er nur im Browser des Besuchers wirkt und nicht von Suchmaschinen-Crawlern interpretiert wird. HTTP-Security-Headers wie upgrade-insecure-requests sollten Teil einer umfassenden Header-Strategie sein.
Mixed Content und SEO-Auswirkungen
Mixed Content hat direkte und indirekte Auswirkungen auf die Suchmaschinenoptimierung. Google hat HTTPS als Ranking-Signal bestätigt und bewertet Seiten mit Mixed Content potenziell negativer als vollständig sichere Seiten. Die konkreten SEO-Auswirkungen umfassen:
- Fehlende Bilder in den Suchergebnissen: Wenn Bilder aufgrund von Mixed Content blockiert werden, fehlen sie auch in der Google-Bildersuche und in Rich Snippets. Das reduziert die visuelle Attraktivität des Suchergebnisses und die Klickrate.
- Kein Schloss-Symbol in der Adressleiste: Browser zeigen bei Mixed Content kein geschlossenes Schloss an. Google bewertet die wahrgenommene Sicherheit als indirekten Ranking-Faktor, da Nutzer unsicher wirkende Seiten schneller verlassen (höhere Bounce-Rate).
- Core Web Vitals Einfluss: Blockierte oder Auto-Upgrade-Ressourcen können die Core Web Vitals negativ beeinflussen, insbesondere den Largest Contentful Paint (LCP), wenn das größte sichtbare Element über HTTP geladen wird.
- Crawling-Effizienz: Wenn Googlebot auf Mixed-Content-Warnungen stößt, kann er bestimmte Ressourcen möglicherweise nicht laden, was die Darstellung der Seite in der Indexierung beeinträchtigt.
SEO-Monitoring hilft, diese Auswirkungen zu erkennen und die Effektivität Ihrer Bereinigungsmaßnahmen zu messen. Wenn Rankings nach einer HTTPS-Migration stagnieren, sind verbliebene Mixed-Content-Probleme eine häufige Ursache.
Spezialfall: Mixed Content bei E-Commerce-Websites
Online-Shops sind besonders anfällig für Mixed Content, da sie typischerweise große Mengen an Produktbildern, eingebetteten Videos und Drittanbieter-Integrationen (Zahlungsanbieter, Tracking, Bewertungswidgets) verwenden. Ein blockiertes Produktbild auf einer Produktseite reduziert die Conversion-Rate direkt. Ein fehlerhaftes Zahlungsformular aufgrund blockierter JavaScript-Ressourcen verhindert Transaktionen vollständig.
Für E-Commerce-Betreiber empfiehlt sich eine mehrstufige Strategie: Zuerst die kritischsten Seiten (Checkout, Produktseiten, Startseite) manuell prüfen und sofort bereinigen. Parallel dazu upgrade-insecure-requests aktivieren als Sicherheitsnetz. Anschließend die vollständige Datenbank-Bereinigung durchführen und automatisiertes Monitoring einrichten, das neue Mixed-Content-Probleme sofort erkennt.
Mixed Content kontinuierlich verhindern
Eine einmalige Bereinigung reicht nicht aus. Neue Mixed-Content-Probleme können jederzeit durch Content-Updates, neue Plugins, geänderte Drittanbieter-Skripte oder Datenbankimporte entstehen. Kontinuierliches Monitoring ist der Schlüssel zur dauerhaften Lösung.
XICTRAQ prüft Ihre Website automatisch auf Mixed Content und weitere Sicherheitsprobleme. Der Security-Scan erkennt neue HTTP-Ressourcen auf HTTPS-Seiten, sobald sie auftreten. In Kombination mit dem Screenshot-Changelog sehen Sie auch visuelle Auswirkungen wie fehlende Bilder oder kaputte Layouts. Die DSGVO-Compliance-Prüfung ergänzt die Analyse um datenschutzrelevante Aspekte, etwa wenn unsichere Tracker über HTTP eingebunden sind. Starten Sie mit einer kostenlosen Demo und identifizieren Sie innerhalb von Minuten alle Mixed-Content-Probleme auf Ihrer Website. Auf der Preisseite finden Sie das passende Paket für Ihre Anforderungen.
Was ist der Unterschied zwischen aktivem und passivem Mixed Content?
Warum zeigt mein Browser kein Schloss-Symbol mehr an, obwohl ich ein SSL-Zertifikat habe?
Kann ich Mixed Content mit einem einzigen Header beheben?
Wie finde ich alle Mixed-Content-Quellen auf einer großen Website?
Hat Mixed Content Auswirkungen auf das Google-Ranking?
Wie verhindere ich, dass neue Mixed-Content-Probleme auftreten?
Dieser Artikel basiert auf Daten von: Core Web Vitals (Google), Web Almanac (HTTP Archive).