WordPress-FehlerProbleme ohne Meldung

WordPress Mixed Content: Warum das Schloss trotz SSL fehlt

Mixed Content heißt: Die Seite selbst kommt über https, einzelne Bilder, Skripte oder Schriften aber noch über http. Der Browser zeigt dann kein Schloss mehr oder den Hinweis „Nicht sicher“ und blockiert unsichere Skripte ganz. Bei WordPress stehen meist noch alte http-Adressen in den Einstellungen, in der Datenbank oder im Theme. Stelle unter Einstellungen → Allgemein beide Adressen auf https, ersetze alte Adressen in der Datenbank mit wp search-replace und leite http dauerhaft auf https um.

So sieht die Meldung aus

  • Nicht sicher
  • Mixed Content: The page at '…' was loaded over HTTPS, but requested an insecure script '…'. This request has been blocked; the content must be served over HTTPS.
  • Your website does not use HTTPS
  • Deine Website verwendet kein HTTPS
  • Schloss fehlt in der Adresszeile

Woran es liegt.

Einstellungen noch auf http

Stehen unter Einstellungen → Allgemein die WordPress-Adresse und die Website-Adresse noch mit http, baut WordPress sämtliche Links, Bilder und Skripte mit http zusammen.

Alte Adressen in der Datenbank

Beiträge, Seiten, Widgets und Seitenbaukästen speichern Bildadressen fest ab. Nach der Umstellung stehen dort weiter die alten http-Adressen, bis jemand sie gezielt ersetzt.

Fest eingetragene Adressen in Theme und Plugins

Manche Themes und Plugins laden Schriften, Skripte oder Bilder über eine fest hinterlegte http-Adresse, etwa aus der functions.php, dem Customizer oder einem Feld für eigenen Code.

Keine Weiterleitung auf https

Ohne Weiterleitung bleibt die Seite unter beiden Adressen erreichbar. Wer einen alten Link oder ein altes Lesezeichen nutzt, landet auf der unverschlüsselten Fassung und sieht „Nicht sicher“.

Zertifikat unvollständig

Gilt das Zertifikat nur für die Domain ohne www oder fehlt ein Zwischenzertifikat, zeigt der Browser eine ganzseitige Warnung zur Verbindung. Das ist kein Mixed Content, wirkt auf Besucher aber ähnlich abschreckend.

So behebst Du den Fehler.

Leg vor jeder Änderung eine Sicherung von Dateien und Datenbank an. Geh die Schritte der Reihe nach durch und prüf nach jedem, ob die Seite wieder lädt.

  1. Sicherung anlegen und Zertifikat prüfen

    Exportiere die Datenbank und lade die wp-config.php herunter, bevor Du Adressen änderst. Rufe dann Deine Domain mit https auf, einmal mit und einmal ohne www. Erscheint statt der Seite eine Warnung zur Verbindung, muss zuerst der Hoster das Zertifikat für beide Schreibweisen ausstellen.

  2. Unsichere Dateien aufspüren

    Öffne die Seite in Chrome, drücke F12 und wechsle in die Konsole. Jede Zeile mit „Mixed Content“ nennt die Datei, die noch per http geladen wird. Daran erkennst Du, ob sie aus der Datenbank, aus dem Theme oder von einem fremden Server stammt.

  3. Adressen unter Einstellungen → Allgemein umstellen

    Trage bei WordPress-Adresse (URL) und Website-Adresse (URL) die Adresse mit https ein und speichere. Danach meldest Du Dich neu an. Sind die Felder ausgegraut, stehen die Werte als Konstanten in der wp-config.php und Du änderst sie dort. Unterstützt der Server https, bietet auch Werkzeuge → Website-Zustand die Schaltfläche „Website für HTTPS aktualisieren“ an.

    wp-config.php
    define( 'WP_HOME', 'https://www.example.de' );
    define( 'WP_SITEURL', 'https://www.example.de' );
  4. Alte Adressen in der Datenbank ersetzen

    WP-CLI tauscht jedes Vorkommen der alten Adresse aus, auch in serialisierten Daten von Plugins und Seitenbaukästen. Starte mit --dry-run, prüfe die Zahl der Treffer und führe den Befehl danach ohne diesen Zusatz aus. Die Spalte guid bleibt unverändert, so empfiehlt es die Dokumentation von WordPress. Wiederhole das für die Schreibweise ohne www, falls sie vorkommt. Ohne SSH hilft ein Plugin wie Better Search Replace.

    Terminal (WP-CLI)
    wp search-replace 'http://www.example.de' 'https://www.example.de' --skip-columns=guid --dry-run
    wp search-replace 'http://www.example.de' 'https://www.example.de' --skip-columns=guid
  5. http dauerhaft auf https umleiten

    Setze die Regel in der .htaccess über den Block „# BEGIN WordPress“, damit sie vor den Permalinks greift. Bei nginx übernimmt das ein eigener server-Block für Port 80 mit return 301. Läuft die Seite hinter Cloudflare mit dem SSL-Modus Flexible, erzeugt diese Regel eine Endlosschleife. Stelle Cloudflare dann auf Full (strict).

    .htaccess
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  6. Anmeldung und Dashboard nur verschlüsselt

    Die Konstante zwingt Anmeldung und Dashboard auf https. Setze sie erst, wenn https überall zuverlässig läuft, sonst drohen endlose Weiterleitungen. Hinter einem Proxy braucht WordPress zusätzlich einen Hinweis, dass die Verbindung verschlüsselt ist.

    wp-config.php
    define( 'FORCE_SSL_ADMIN', true );
  7. Theme, Widgets und Seitenbaukasten durchsehen

    Bleiben Meldungen in der Konsole, suche die alte Adresse im Theme-Ordner, in Widgets, im Customizer unter „Zusätzliches CSS“ und in Feldern für eigenen Code. Ersetze dort http:// durch https:// oder lade die Datei lokal. Seitenbaukästen wie Elementor schreiben CSS in eigene Dateien, lass sie nach dem Ersetzen neu erzeugen.

    Terminal (SSH)
    grep -rn "http://www.example.de" wp-content/themes wp-content/plugins
  8. Caches leeren und erneut testen

    Leere anschließend Cache-Plugin, Server-Cache und CDN, sonst liefern sie weiter die alten Seiten mit http aus. Prüfe die Seite dann in einem privaten Fenster. Ein Plugin, das Adressen nur bei der Ausgabe umschreibt, bleibt eine Notlösung, denn es behebt die Ursache in der Datenbank nicht.

Zuletzt geprüft am 25. September 2026.

So kommt er nicht wieder.

  • Beim Wechsel auf https alles in einem Durchgang umstellen: Einstellungen, Datenbank, Weiterleitung und Caches.
  • Bilder und Dateien nur über die Mediathek einbinden, nicht über kopierte Adressen mit http.
  • Externe Dienste wie Schriften, Karten oder Videos ausschließlich mit https-Adressen einbinden.
  • Nach Theme-Updates kurz in der Konsole des Browsers prüfen, ob neue Meldungen zu Mixed Content auftauchen.

Fragen zu Mixed Content: Nicht sicher trotz SSL

Warum zeigt meine Seite „Nicht sicher“, obwohl ein SSL-Zertifikat installiert ist?
Das Zertifikat allein reicht nicht. WordPress muss auch mit https-Adressen arbeiten, alte Links in der Datenbank müssen ersetzt sein und http muss auf https umleiten. Fehlt einer dieser Teile, lädt die Seite Inhalte unverschlüsselt.
Was ist Mixed Content?
Mixed Content entsteht, wenn eine Seite über https geladen wird, aber Bilder, Skripte oder Schriften über http nachlädt. Browser blockieren unsichere Skripte, versuchen Bilder automatisch per https zu laden und zeigen für die Seite kein vollwertiges Schloss mehr an.
Ist search-replace in der Datenbank gefährlich?
Mit Sicherung und einem Testlauf per --dry-run ist es sicher. Wichtig ist ein Werkzeug, das serialisierte Daten versteht, wie WP-CLI oder Better Search Replace. Ein einfaches Suchen und Ersetzen im SQL-Export kann Einstellungen von Plugins beschädigen.
Reicht ein SSL-Plugin für die Umstellung?
Ein SSL-Plugin kann die Umstellung erleichtern und Adressen bei der Ausgabe ersetzen. Sauberer ist es, die Adressen einmal dauerhaft in der Datenbank zu ersetzen und die Weiterleitung auf dem Server einzurichten. Dann hängt die Seite nicht an einem weiteren Plugin.

Lieber eine Website, die einfach läuft?

Wir bauen Websites, die schnell laden und ohne Update-Stress laufen. Oder wir übernehmen Deine WordPress-Seite samt Pflege. Erst Dein Paket, dann ein Termin per Video.

Kevin Baum im Videocall an seinem Schreibtisch, im Hintergrund eine Holzlattenwand mit farbigem Licht.

Erst Dein Paket, dann der Termin

Im Preisrechner tippst Du an, was Dich bremst. Du siehst sofort Dein Paket mit Preisspanne. Danach wählst Du direkt einen Termin, das Gespräch läuft per Video.

Dein Preis in 2 Minuten