SSL Mixed Content beheben — Schloss fehlt trotz HTTPS

Fortgeschritten
|
📋 WordPress mit aktivem SSL-Zertifikat, Admin-Zugang
Das ist eines der häufigsten Probleme nach der SSL-Aktivierung: Die Seite läuft auf HTTPS, aber das Schloss-Symbol in der Adressleiste fehlt oder zeigt eine Warnung. Der Grund ist fast immer «Mixed Content» — deine Seite lädt noch Bilder, Skripte oder Stylesheets über unsicheres HTTP. Die Lösung ist meistens einfach: alte http:// URLs in der Datenbank durch https:// ersetzen.
1

Was Mixed Content bedeutet

Wenn deine Website über HTTPS läuft, müssen ALLE Inhalte über HTTPS geladen werden — jedes Bild, jedes Skript, jede CSS-Datei. Lädt auch nur ein einziges Bild über http://, zeigt der Browser eine Warnung an. Das ist «Mixed Content». Es gibt zwei Typen: «Active Mixed Content» (Skripte, Stylesheets) wird von modernen Browsern komplett blockiert. «Passive Mixed Content» (Bilder) wird geladen, aber das Schloss verschwindet.

Mixed Content entsteht oft, weil die Website ursprünglich ohne SSL eingerichtet wurde und alle internen Links noch http:// verwenden.
2

Fehlerhafte URLs in der Browser-Konsole finden

Öffne deine Website im Browser und drücke F12 (oder Rechtsklick → «Untersuchen»). Klicke auf den Tab «Konsole». Mixed-Content-Fehler werden als gelbe Warnungen oder rote Fehler angezeigt — sie enthalten die URL des Elements, das noch über HTTP geladen wird. Notiere dir diese URLs. Meistens sind es Bilder in Beiträgen, das Logo im Theme oder extern eingebundene Schriften.

Du kannst auch die Seite whynopadlock.com nutzen — gib dort deine URL ein und die Seite zeigt dir alle Mixed-Content-Probleme übersichtlich an.
3

URLs in WordPress ersetzen

Installiere das Plugin «Better Search Replace». Gehe zu «Werkzeuge» → «Better Search Replace». Trage im Feld «Suchen nach» deine alte URL ein: «http://deine-seite.ch». Im Feld «Ersetzen durch» die neue: «https://deine-seite.ch». Wähle alle Datenbanktabellen aus und aktiviere zuerst «Testlauf» — so siehst du, wie viele Ersetzungen gemacht werden, ohne etwas zu ändern. Wenn alles gut aussieht, deaktiviere den Testlauf und führe die Ersetzung durch.

Ersetze auch «http://www.deine-seite.ch» durch «https://www.deine-seite.ch» — manche Links verwenden die www-Version. Und vergiss nicht die Variante ohne www.
4

Hartnäckige Fälle beheben

Manchmal kommen Mixed-Content-URLs nicht aus der Datenbank, sondern sind im Theme oder in Plugins fest eingebaut. Prüfe deine Theme-Einstellungen — besonders das Logo und Hintergrundbilder. Schau auch in «Design» → «Customizer», ob dort alte http://-URLs stehen. Falls du Custom CSS oder eingebetteten HTML-Code hast, prüfe diesen ebenfalls. Als letztes Mittel kannst du in der .htaccess eine Regel ergänzen, die alle HTTP-Anfragen auf HTTPS umleitet:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]

Nach der Bereinigung: Leere den Cache deines Browsers (Ctrl+Shift+Delete) und den Cache deines WordPress-Caching-Plugins. Erst dann siehst du, ob das Schloss korrekt angezeigt wird.

Häufige Fragen

Ist Mixed Content gefährlich?
Für Besucher ist es ein Sicherheitsrisiko, weil Teile der Seite unverschlüsselt geladen werden. Für dein SEO-Ranking ist es ebenfalls schlecht — Google bevorzugt vollständig verschlüsselte Seiten.
Kann ich Mixed Content auch ohne Plugin beheben?
Ja, mit einem SQL-Befehl in phpMyAdmin: UPDATE wp_posts SET post_content = REPLACE(post_content, 'http://deine-seite.ch', 'https://deine-seite.ch'). Aber das Plugin ist sicherer, weil es alle Tabellen durchsucht und einen Testlauf ermöglicht.
Mein Hoster hat SSL aktiviert, aber die Seite zeigt trotzdem kein Schloss?
Das liegt fast immer an Mixed Content. Folge dieser Anleitung, um die fehlerhaften URLs zu finden und zu ersetzen. In seltenen Fällen fehlt auch die HTTPS-Umleitung in der .htaccess — Schritt 4 zeigt dir, wie du diese ergänzt.

Verwandte Begriffe

Den passenden Hoster finden?

Hosting vergleichen →