Ein WordPress 403 Forbidden bedeutet: Der Server hat Ihre Anfrage verstanden, weigert sich aber, die Seite auszuliefern. Anders als beim Fehler 500 ist nichts abgestürzt. Irgendetwas hat bewusst „nein“ gesagt: eine Firewall, eine Regel in der .htaccess, falsche Dateirechte oder ein Sicherheits-Plugin. Die Kunst ist herauszufinden, wer. Oft trifft der 403 nur einen Teil der Seite, das Backend, den Medien-Upload oder das Speichern im Block-Editor, und genau das verrät die Ursache.
In 2 Minuten prüfen
- Anderes Netz testen. Rufen Sie die Seite mit dem Handy ohne WLAN auf. Geht es dort, ist Ihre IP-Adresse gesperrt, durch ein Sicherheits-Plugin, die Firewall des Hosters oder Cloudflare.
- Wo genau kommt der 403? Überall, nur unter
/wp-admin/, nur beim Hochladen, nur beim Speichern? Notieren Sie es, die Abschnitte unten sind danach sortiert. - Wie sieht die Fehlerseite aus? Eine schlichte Serverseite deutet auf
.htaccess, Dateirechte oder mod_security. Eine Seite mit Logo eines Sicherheitsdienstes oder einer „Ray ID“ kommt von Cloudflare. Eine gestaltete Sperrseite mit Hinweis auf „Zugriff eingeschränkt“ stammt meist von einem Sicherheits-Plugin. - Was hat sich geändert? Neues Sicherheits-Plugin, Umzug, geänderte
.htaccess, Rechte per FTP gesetzt: Der letzte Eingriff ist der erste Verdächtige.
403 oder fehlende Rechte in WordPress?
Nicht jede Zugriffssperre ist ein Serverfehler. Zeigt WordPress selbst „Du bist leider nicht berechtigt, auf diese Seite zuzugreifen.“, sind Sie zwar eingeloggt, aber Ihrem Benutzer fehlt die Rolle für diese Seite. Das passiert, wenn ein Konto versehentlich herabgestuft wurde, ein Rollen-Plugin Rechte entzogen hat oder nach einem Umzug das Tabellenpräfix geändert wurde, ohne die Rolleneinträge in der Datenbank anzupassen. Das ist ein anderes Problem als der 403 vom Server und wird in der Datenbank gelöst, nicht in der .htaccess. Kommen Sie gar nicht mehr ins Konto, stelle ich den Zugang zum Festpreis von 79 € wieder her.
Ursache 1: Die .htaccess
Die Datei .htaccess im Hauptverzeichnis steuert, was der Apache-Webserver erlaubt. Eine Zeile wie Require all denied, eine zu weit gefasste IP-Sperre oder Regeln eines Sicherheits-Plugins, die nach dessen Deinstallation zurückgeblieben sind, reichen für einen 403.
So prüfen Sie es:
- Per FTP die
.htaccessherunterladen und als Kopie sichern. - Auf dem Server in
.htaccess_altumbenennen und die Seite neu laden. - Ist der 403 weg, war es die Datei. Im Backend unter „Einstellungen → Permalinks“ einmal speichern, WordPress schreibt dann eine neue.
Eine saubere .htaccess für eine einfache WordPress-Installation enthält nur diesen Block (Quelle: developer.wordpress.org, Advanced Administration):
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Weitere Regeln aus der alten Datei übernehmen Sie danach einzeln, etwa Weiterleitungen oder Caching, und testen nach jeder. Prüfen Sie auch die Unterordner: Eine .htaccess in wp-admin oder wp-content/uploads kann einen 403 auslösen, der nur dort auftritt.
Ursache 2: Dateirechte
Der Webserver muss Ordner öffnen und Dateien lesen dürfen. Der übliche Standard für WordPress:
- Ordner: 755. Der Eigentümer darf schreiben, alle anderen lesen und öffnen.
- Dateien: 644. Der Eigentümer darf schreiben, alle anderen lesen.
- wp-config.php: strenger, 640 oder 600, wenn der Hoster das unterstützt.
Ein Ordner mit 700 oder eine Datei mit 600 an der falschen Stelle führt zum 403. Das passiert häufig nach einem Umzug oder wenn jemand Rechte „sicherheitshalber“ verschärft hat. Im FTP-Programm lassen sich Rechte über „Dateiberechtigungen“ rekursiv setzen, getrennt für Ordner und Dateien. Per SSH, im WordPress-Hauptverzeichnis:
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
Setzen Sie nie 777. Das öffnet Schreibrechte für alle und ist eine Einladung für Schadcode.
Ursache 3: Sicherheits-Plugin, Firewall des Hosters, Cloudflare
Die häufigste Ursache in meiner Praxis: Ihre eigene IP-Adresse wurde gesperrt. Nach mehreren falschen Passwörtern, durch eine Länderregel oder weil sich Ihre IP mit einem Bot geteilt hat.
Sicherheits-Plugins wie Wordfence. Benennen Sie den Ordner des Plugins in wp-content/plugins per FTP um. Achtung bei Wordfence: Die erweiterte Firewall lädt über einen Eintrag in der .user.ini oder .htaccess die Datei wordfence-waf.php aus dem Hauptverzeichnis, noch bevor WordPress startet. Das Umbenennen des Plugin-Ordners reicht dann nicht. Den Eintrag auto_prepend_file vorübergehend auskommentieren, nach dem Login die Sperre im Plugin aufheben und die eigene IP freigeben.
Firewall des Hosters (WAF). Viele Hoster setzen eine eigene Firewall vor die Seiten. Im Kundenmenü gibt es meist einen Bereich „Sicherheit“ oder „Firewall“ mit gesperrten Adressen. Sonst hilft eine kurze Nachricht an den Support mit Uhrzeit und Ihrer IP-Adresse.
Cloudflare. Zeigt die Fehlerseite eine „Ray ID“, sperrt Cloudflare. Im Cloudflare-Konto unter „Security → Events“ finden Sie mit der Ray ID die Regel, die gegriffen hat, und können sie für Ihre IP oder den betroffenen Pfad lockern.
Länder- und IP-Sperren. Länderfilter sind beliebt gegen Angriffe, sperren aber auch Sie aus, wenn Sie im Urlaub sind oder Ihr Mobilfunkanbieter über ein ausländisches Netz routet. Prüfen Sie Regeln in Plugin, Hoster-Firewall, Cloudflare und .htaccess.
Ursache 4: mod_security
mod_security ist ein Filter auf dem Server, den viele Hoster einsetzen. Er prüft jede Anfrage auf Muster, die nach Angriff aussehen. Beim Speichern einer Seite mit Code-Schnipseln, eingebetteten Skripten oder bestimmten Wörtern schlägt er gern falsch an. Typisches Bild: Die Seite lädt normal, aber ein bestimmter Beitrag lässt sich nicht speichern, oder ein Formular liefert beim Absenden 403.
Im Fehlerprotokoll des Hosters steht dann ein Eintrag mit „ModSecurity“ und einer Regelnummer (id). Mit dieser Nummer kann der Hoster genau diese Regel für Ihre Seite abschalten, ohne den ganzen Schutz zu entfernen. Bei manchen Hostern lässt sich mod_security im Kundenmenü auch selbst pro Domain steuern.
403 nur bei wp-admin, Upload, REST-API oder beim Speichern
Nur /wp-admin/ oder wp-login.php. Typisch für einen Login-Schutz: Passwortschutz des Hosters auf wp-admin, eine IP-Freigabeliste in der .htaccess oder ein Sicherheits-Plugin mit verstecktem Login. Prüfen Sie die .htaccess im Ordner wp-admin und die Einstellungen des Plugins.
Nur beim Hochladen von Medien. Rechte auf wp-content/uploads prüfen (755), eine .htaccess in diesem Ordner kontrollieren, dazu mod_security bei bestimmten Dateinamen oder Dateitypen.
Nur beim Speichern im Block-Editor. Der Editor speichert über die REST-Schnittstelle unter /wp-json/. Wird sie gesperrt, erscheint oft „Aktualisierung fehlgeschlagen. Die Antwort ist keine gültige JSON-Antwort.“, und im Hintergrund liefert der Server 403. Rufen Sie https://ihre-domain.de/wp-json/ im Browser auf. Kommt ein 403 statt einer langen Textausgabe, sperrt ein Sicherheits-Plugin, die Firewall oder mod_security die Schnittstelle. Die Schnittstelle darf für eingeloggte Benutzer nicht abgeschaltet sein.
Ursache 5: Die Index-Datei fehlt
Fehlt im Hauptverzeichnis die Datei index.php, weiß der Server nicht, was er ausliefern soll. Da die Auflistung von Ordnerinhalten aus Sicherheitsgründen abgeschaltet ist, antwortet er mit 403. Das passiert nach einem abgebrochenen Upload, einem missglückten Umzug oder einer Malware-Bereinigung, bei der die Datei mit gelöscht wurde. Prüfen Sie per FTP, ob index.php vorhanden ist; die Originaldatei steckt im WordPress-Paket von wordpress.org. Steht in der .htaccess eine Zeile DirectoryIndex, muss index.php darin vorkommen.
Ist die Datei verändert oder fehlt sie ohne erkennbaren Grund, und tauchen im Hauptverzeichnis Dateien auf, die Sie nicht kennen, kann ein Hack dahinterstecken. Dann lesen Sie WordPress gehackt.
Wann Sie mich rufen sollten
- Der Hoster hat die Seite gesperrt und spricht von Schadcode.
- Der 403 bleibt nach
.htaccess, Rechten und abgeschalteten Plugins. - Sie kommen nicht mehr ins Backend und wissen nicht, welche Firewall sperrt.
- Dateien im Hauptverzeichnis wurden verändert oder fehlen.
Diagnose kostenlos, Behebung zum Festpreis von 149 € netto bis zwei Stunden Arbeit. Braucht es mehr, nenne ich vorher den Festpreis. Antwort werktags innerhalb von 24 Stunden. Andere Fehlerbilder finden Sie in der Übersicht WordPress-Fehler beheben. Wie Sie Sperren durch Angriffe von vornherein vermeiden, steht unter WordPress-Sicherheit.
Häufige Fragen
Was bedeutet 403 Forbidden bei WordPress?
Der Server verweigert den Zugriff bewusst. Ursache ist fast immer eine Firewall, ein Sicherheits-Plugin, eine Regel in der .htaccess, falsche Dateirechte oder mod_security beim Hoster.
Warum bekomme ich 403 nur im Backend?
Meist sperrt ein Login-Schutz: ein Sicherheits-Plugin, eine IP-Freigabeliste in der .htaccess im Ordner wp-admin oder ein Passwortschutz des Hosters. Testen Sie aus einem anderen Netz.
Welche Dateirechte braucht WordPress?
Ordner 755, Dateien 644, die wp-config.php möglichst 640 oder 600. Niemals 777 setzen.
Ich habe mich mit Wordfence ausgesperrt. Was nun?
Den Plugin-Ordner per FTP umbenennen. Ist die erweiterte Firewall aktiv, zusätzlich den Eintrag auto_prepend_file in der .user.ini oder .htaccess vorübergehend auskommentieren, einloggen und die eigene IP freigeben.
Kann ein 403 bei Google schaden?
Ja, wenn er auch Suchmaschinen trifft. Seiten, die dauerhaft 403 liefern, nimmt Google aus dem Index. Länderfilter und Bot-Sperren sollten Googlebot deshalb nicht aussperren.
Was kostet es, wenn Sie den 403 beheben?
Die Diagnose ist kostenlos, die Behebung kostet 149 € netto bis zwei Stunden Arbeit. Mit Wartungsvertrag ist sie inklusive.
Notfall melden
Notfall melden
Drei Angaben, keine Registrierung. Sie bekommen sofort eine Eingangsbestätigung mit den Sofortmaßnahmen und werktags innerhalb von 24 Stunden meine Diagnose mit Festpreis-Angebot.
Ich lese jede Nachricht selbst und antworte werktags innerhalb von 24 Stunden. Kai Rauch
Sofortige Eingangsbestätigung, werktags innerhalb von 24 Stunden Diagnose und Angebot.