Best Practice

WordPress Sicherheits-Checkliste

8. Februar 2026 Aktualisiert am 19.04.2026

WordPress betreibt über 40% aller Websites weltweit, was es zum bevorzugten Ziel automatisierter Angriffe macht. Die gute Nachricht: Die meisten erfolgreichen WordPress-Hacks nutzen bekannte, leicht vermeidbare Schwachstellen aus. Diese Checkliste führt dich durch jede Sicherheitsebene, von der Transportverschlüsselung bis zur Server-Härtung. Arbeite sie systematisch durch, und deine Seite wird deutlich schwerer angreifbar sein als die große Mehrheit der WordPress-Installationen.

WordPress-Absicherung mit SSL und HTTPS

HTTPS verschlüsselt alle Daten zwischen dem Browser deiner Besucher und deinem Server. Ohne SSL werden Anmeldedaten, Formulareinreichungen und Session-Cookies im Klartext übertragen, was sie in öffentlichen Netzwerken trivial abfangbar macht.

  • Gültiges SSL-Zertifikat installieren: Die meisten Hosting-Anbieter bieten kostenlose Let's-Encrypt-Zertifikate an, die sich alle 90 Tage automatisch erneuern. Falls dein Hoster kein Let's Encrypt unterstützt, bietet Cloudflare im kostenlosen Tarif ein gemeinsames SSL-Zertifikat. Es gibt keinen Grund mehr, ohne HTTPS zu arbeiten.
  • Gesamten HTTP-Traffic per 301-Redirect auf HTTPS umleiten: Richte eine permanente Weiterleitung ein, damit jede Anfrage an http:// automatisch auf https:// umgeleitet wird. Für Apache fügt man dies in die .htaccess ein:
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Für Nginx einen Server-Block, der weiterleitet:
    server {
        listen 80;
        server_name example.com www.example.com;
        return 301 https://$host$request_uri;
    }
  • Alle Mixed-Content-Warnungen beheben: Nach der Umstellung auf HTTPS prüfe, ob noch Bilder, Skripte oder Stylesheets über HTTP geladen werden. Die Browser-Konsole markiert diese als "Mixed Content"-Warnungen. Aktualisiere fest codierte http://-URLs in deiner Datenbank mit einem Werkzeug wie Better Search Replace.
  • HSTS-Header aktivieren: HTTP Strict Transport Security weist den Browser an, deine Domain immer über HTTPS aufzurufen, selbst wenn der Nutzer manuell http:// eingibt. Setze den Header mit einem max-age von mindestens sechs Monaten (15768000 Sekunden). Aktiviere includeSubDomains nur, wenn alle deine Subdomains ebenfalls HTTPS unterstützen.

HTTP-Sicherheitsheader für WordPress konfigurieren

Sicherheitsheader sind Anweisungen, die dein Server an den Browser sendet. Sie kosten keine Performance, bieten aber erheblichen Schutz gegen gängige Angriffsarten wie Clickjacking, MIME-Type-Verwechslung und Cross-Site-Scripting.

  • X-Frame-Options: SAMEORIGIN: Verhindert, dass deine Seiten in iframes auf fremden Domains eingebettet werden. Das blockiert Clickjacking-Angriffe, bei denen ein Angreifer unsichtbare Elemente über deine Seite legt, um Nutzer zu täuschen.
  • X-Content-Type-Options: nosniff: Verhindert, dass Browser den MIME-Typ einer Datei erraten. Ohne diesen Header könnte ein Browser eine Textdatei als JavaScript ausführen, wenn der Inhalt wie Code aussieht.
  • Referrer-Policy: strict-origin-when-cross-origin: Kontrolliert, wie viele URL-Informationen beim Navigieren zu externen Seiten mitgesendet werden. Das verhindert, dass sensible URL-Parameter (wie Passwort-Reset-Tokens) an Drittanbieter-Server weitergegeben werden.
  • Permissions-Policy: Beschränkt den Zugriff auf Browser-Funktionen wie Kamera, Mikrofon, Geolokalisierung und Payment-APIs für eingebettete Inhalte. Selbst wenn du diese Funktionen nicht nutzt, verhindert die Policy, dass eingeschleuste Skripte sie missbrauchen.
  • Content-Security-Policy (CSP): Der mächtigste Sicherheitsheader, aber auch der komplexeste. CSP definiert, welche Quellen Skripte, Styles, Bilder und andere Ressourcen laden dürfen. Beginne mit Content-Security-Policy-Report-Only, um Verstöße zu überwachen, ohne deine Seite zu beschädigen. Ein minimaler Ausgangspunkt:
    Content-Security-Policy: default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;

Du kannst diese Header in deiner .htaccess-Datei (Apache), deiner Nginx-Konfiguration oder über ein WordPress-Sicherheitsplugin setzen. Bei Cloudflare lassen sich die meisten auch unter Security > Settings konfigurieren.

WordPress-Core-Härtung: Wichtige Sicherheitsmaßnahmen

WordPress selbst wird gut gewartet und regelmäßig gepatcht, aber die Standardkonfiguration lässt einige Türen offen, die du bewusst schließen solltest.

  • WordPress Core, Plugins und Themes konsequent aktuell halten: Die Mehrzahl der WordPress-Hacks nutzt bekannte Schwachstellen in veralteter Software aus. Aktiviere automatische Minor-Updates (sind standardmäßig an) und prüfe mindestens wöchentlich auf große Updates. Erwäge, automatische Plugin-Updates für vertrauenswürdige Plugins zu aktivieren.
  • Ungenutzte Plugins und Themes vollständig deinstallieren: Ein deaktiviertes Plugin entfernt nicht seinen Code vom Server. Angreifer können Schwachstellen auch in deaktivierten Plugins ausnutzen. Lösche alles, was du nicht aktiv nutzt, und behalte nur ein Standard-Theme als Fallback.
  • XML-RPC deaktivieren: Die XML-RPC-Schnittstelle (/xmlrpc.php) wurde für Remote-Publishing und Pingbacks entwickelt. Heute wird sie hauptsächlich für Brute-Force-Amplification-Angriffe und DDoS missbraucht. Sofern du sie nicht für Jetpack oder die WordPress-Mobile-App benötigst, deaktiviere sie komplett. Blockierung auf Server-Ebene:
    # Apache .htaccess
    <Files xmlrpc.php>
        Order Deny,Allow
        Deny from all
    </Files>
  • REST-API-Benutzer-Endpunkt einschränken: Standardmäßig gibt /wp-json/wp/v2/users Benutzernamen für jeden preis. Damit können Angreifer trivial gültige Login-Namen ermitteln. Beschränke diesen Endpunkt auf authentifizierte Anfragen, entweder mit einem Plugin oder einem eigenen Code-Snippet.
  • Benutzer-Enumeration über Autoren-Archive blockieren: Auch ohne REST API können Angreifer Benutzernamen ermitteln, indem sie /?author=1, /?author=2 usw. aufrufen. Blockiere dies durch Umleitung der Autoren-Archiv-Anfragen oder deaktiviere sie vollständig, wenn deine Seite sie nicht benötigt.
  • WordPress-Versionsnummer entfernen: WordPress gibt seine Version in einem Meta-Tag und in den URLs von Core-CSS/JS-Dateien aus. Das Entfernen der Version zwingt Angreifer zum Ausprobieren, anstatt einfach bekannte Schwachstellen für deine exakte Version nachzuschlagen.
  • Debug-Log absichern oder löschen: Wenn WP_DEBUG_LOG aktiviert ist, schreibt WordPress Fehler in /wp-content/debug.log. Diese Datei kann Datenbankabfragen, Dateipfade, Plugin-Fehler und andere für Angreifer nützliche Informationen enthalten. Lass Debug-Logging auf Produktivsystemen niemals aktiviert, und wenn die Datei existiert, lösche sie oder blockiere den Zugriff.
  • Starke, einzigartige Passwörter und Zwei-Faktor-Authentifizierung verwenden: Jedes WordPress-Konto sollte ein Passwort mit mindestens 16 Zeichen haben, das einzigartig für diese Seite ist. Füge Zwei-Faktor-Authentifizierung (2FA) mit einem Plugin wie WP 2FA oder Wordfence Login Security hinzu. Diese einzelne Maßnahme blockiert praktisch alle Brute-Force-Angriffe.
  • Login-Versuche begrenzen: WordPress erlaubt standardmäßig unbegrenzte Anmeldeversuche. Verwende ein Plugin wie Limit Login Attempts Reloaded, um IP-Adressen nach einigen fehlgeschlagenen Versuchen zu sperren, oder nutze eine Web Application Firewall (WAF) mit eingebautem Brute-Force-Schutz.
  • Standard-Datenbank-Tabellenpräfix ändern: WordPress verwendet wp_ als Standard-Präfix. Eine Änderung zu einem einzigartigen Wert bei der Installation erschwert automatisierte SQL-Injection-Angriffe leicht. Falls deine Seite bereits live ist, kannst du es nachträglich ändern, aber sichere vorher deine Datenbank.

WordPress-Dateiberechtigungen und Server-Sicherheit

Dateiberechtigungen bestimmen, wer Dateien auf deinem Server lesen, schreiben und ausführen darf. Falsche Berechtigungen gehören zu den häufigsten Sicherheitsfehlern.

  • Korrekte Dateiberechtigungen setzen: Verwende 644 für Dateien und 755 für Verzeichnisse. Die wp-config.php sollte auf 600 oder 640 gesetzt sein. Verwende niemals 777, da dies jedem vollen Lese-, Schreib- und Ausführungszugriff gibt.
  • wp-config.php vor Webzugriff schützen: Diese Datei enthält deine Datenbank-Zugangsdaten, Authentifizierungsschlüssel und Salts. Für Apache in der .htaccess:
    <Files wp-config.php>
        Order Allow,Deny
        Deny from all
    </Files>
    Einige Sicherheitsleitfäden empfehlen, wp-config.php ein Verzeichnis über den Web-Root zu verschieben. Das funktioniert bei den meisten Setups, kann aber bei manchen Hosting-Anbietern Probleme verursachen.
  • Den eingebauten Datei-Editor deaktivieren: WordPress enthält einen Datei-Editor im Admin-Panel, mit dem Administratoren Theme- und Plugin-Dateien direkt bearbeiten können. Wenn ein Angreifer Admin-Zugang erlangt, kann er über diesen Editor Schadcode in jede PHP-Datei einschleusen. Deaktiviere ihn mit dieser Zeile in der wp-config.php:
    define('DISALLOW_FILE_EDIT', true);
  • Zugriff auf sensible Dateien blockieren: Dateien wie readme.html, license.txt und wp-config-sample.php verraten Informationen über deine WordPress-Version und Konfiguration. Blockiere den öffentlichen Zugriff über deine Server-Konfiguration.
  • Verzeichnisauflistung deaktivieren: Wenn Directory Listing aktiviert ist, kann jeder deinen /wp-content/uploads/-Ordner durchbrowsen und jede hochgeladene Datei sehen. Deaktiviere dies mit Options -Indexes in deiner .htaccess.

WordPress-Backup-Strategie und Wiederherstellungsplanung

Kein Sicherheitskonzept ist vollständig ohne eine zuverlässige Backup-Strategie. Im schlimmsten Fall ist ein aktuelles Backup der Unterschied zwischen einer kleinen Unannehmlichkeit und einem Totalverlust.

  • Tägliche Backups automatisieren: Verwende ein Plugin wie UpdraftPlus, BlogVault oder BackWPup, um automatische Backups nach Zeitplan auszuführen. Sichere mindestens täglich. Seiten mit hohem Traffic oder WooCommerce-Shops sollten Echtzeit-Backups in Betracht ziehen.
  • Backups extern speichern: Bewahre Kopien auf einem externen Dienst wie Amazon S3, Google Cloud Storage oder Dropbox auf. Wenn dein Server kompromittiert wird, können lokale Backups ebenfalls betroffen sein.
  • Den Wiederherstellungsprozess testen: Ein Backup, das du nie getestet hast, ist ein Backup, dem du nicht vertrauen kannst. Stelle dein Backup mindestens einmal pro Quartal in einer Staging-Umgebung wieder her, um zu bestätigen, dass es funktioniert.
  • Mehrere Backup-Generationen vorhalten: Behalte mindestens 30 Tage täglicher Backups. Manche Infektionen bleiben wochenlang unentdeckt, daher brauchst du die Möglichkeit, auf einen bekannt sauberen Zustand zurückzurollen.

Laufende WordPress-Sicherheitsüberwachung

Sicherheit ist kein einmaliges Projekt. Regelmäßig werden neue Schwachstellen entdeckt, und die Konfiguration deiner Seite kann sich mit der Zeit verändern, wenn Plugins hinzugefügt oder Einstellungen geändert werden.

  • Ein Sicherheitsplugin installieren: Wordfence, Sucuri oder NinjaFirewall bieten Echtzeit-Schutz mit Firewall-Regeln, Malware-Scanning und Login-Sicherheit. Wähle eines (nicht mehrere, da sie sich gegenseitig stören können) und konfiguriere die Benachrichtigungen.
  • Automatische InspectWP-Scans einrichten: Plane regelmäßige Scans, um deine Sicherheitslage über die Zeit zu überwachen. InspectWP benachrichtigt dich über neue Probleme wie fehlende Header, exponierte Debug-Logs oder Versionsnummer-Leaks, sobald sie auftreten.
  • Update-Benachrichtigungen aktivieren: Stelle sicher, dass WordPress dir E-Mail-Benachrichtigungen sendet, wenn Core-, Plugin- oder Theme-Updates verfügbar sind. Sicherheitspatches müssen oft innerhalb von Stunden nach der Veröffentlichung eingespielt werden.
  • Benutzerkonten regelmäßig überprüfen: Entferne inaktive Konten, besonders solche mit Administrator- oder Redakteur-Rollen. Prüfe deine Benutzerliste mindestens monatlich und entziehe sofort den Zugriff für alle, die ihn nicht mehr benötigen.
  • Zugriffsprotokolle überwachen: Prüfe deine Server-Logs auf ungewöhnliche Muster, wie wiederholte Anfragen an /wp-login.php, /xmlrpc.php oder Pfade, die nicht existieren. Viele Sicherheitsplugins bieten eine vereinfachte Log-Ansicht.

WordPress-Sicherheit mit InspectWP überprüfen

Führe einen umfassenden InspectWP-Scan durch, um alle sicherheitsrelevanten Punkte auf einmal zu prüfen. Der Sicherheitsbereich deckt SSL-Konfiguration, HTTP-Sicherheitsheader, WordPress-Versionsanzeige, REST-API-Benutzer-Enumeration, Debug-Log-Zugänglichkeit und vieles mehr ab. Richte automatische Scans ein, um Benachrichtigungen zu erhalten, sobald sich deine Sicherheitslage ändert, damit du neue Probleme beheben kannst, bevor sie ausgenutzt werden.

Prüfe jetzt deine WordPress-Seite

InspectWP analysiert deine WordPress-Seite auf Sicherheitslücken, SEO-Probleme, DSGVO-Konformität und Performance — kostenlos.

Seite kostenlos analysieren