Update vom 20.08.2026 – 10:46 Uhr: WP Rocket hat Hotfix bereitgestellt:
Dear partner,
I am pleased to announce that a hotfix for the fatal error on WP 7.1 has been released.
The compatibility issue with WordPress 7.1 has been fixed in WP Rocket 3.23.2.2. To ensure a smooth update process, please update WP Rocket first. Once updated, you can safely upgrade your site to WordPress 7.1 if you choose to do so.
Das Problem
Nach einem Update auf WordPress 7.1 kann es in Kombination mit dem Plugin WP Rocket zu einem kritischen Fehler kommen: Du kannst dich nicht mehr ins WordPress-Backend einloggen.
Die Lösung: Du setzt den WordPress-Core von 7.1 auf eine ältere Version zurück, zum Beispiel auf 7.0.4. Das geht ganz einfach mit dem Plugin Core Rollback.

Die Ursache
Das Problem ist beim WP-Rocket-Team bereits offiziell gemeldet: GitHub-Issue #8596.
Offizielle Meldung von WP Rocket: https://docs.wp-rocket.me/article/1927-fatal-error-on-wordpress-7-1
Der Fehler tritt auf, weil in der Cloudflare-Integration von WP Rocket ein Array-Schlüssel, der eigentlich ein String sein sollte, von PHP automatisch in eine Ganzzahl umgewandelt wird, was zu einem TypeError führt, wenn dieser Wert an die Funktion substr() übergeben wird. Ausgelöst wird der Fehler beim Hook init, der bei so gut wie jedem Seitenaufruf feuert – auch beim Login unter wp-login.php. Deshalb äußert sich der Fehler bei euch als kompletter Aussperrungseffekt aus dem Backend, obwohl die eigentliche Ursache in der Cloudflare-Klasse von WP Rocket liegt, nicht im Login-Mechanismus selbst.
Betroffen ist laut Meldung WP Rocket 3.22.1 in Kombination mit WordPress 7.1 auf PHP 8.3, wobei ein weiteres aktives Plugin oder Theme einen entsprechenden Hook auf deleted_post oder transition_post_status registrieren muss, damit der Fehler ausgelöst wird.
Warum tritt der Fehler nicht auf jeder Installation auf?
Wichtig zu wissen: Nicht jede Seite mit WordPress 7.1 und derselben WP-Rocket-Version ist betroffen. Der Fehler tritt nur auf, wenn zusätzlich ein bestimmtes anderes Plugin oder Theme aktiv ist – konkret eines, das einen Callback auf den Hook deleted_post oder transition_post_status registriert, dessen intern erzeugte Callback-ID rein numerisch ist (z. B. „12345″).
Der Hintergrund: WordPress erzeugt für jeden Hook-Callback über _wp_filter_build_unique_id() eine eindeutige ID. Ist diese ID rein numerisch, speichert PHP sie als Integer im Array – rein numerische String-Schlüssel werden von PHP-Arrays automatisch in Ganzzahlen umgewandelt. Genau diesen Integer-Wert übergibt die Cloudflare-Klasse von WP Rocket ungeprüft an substr(), was ab PHP 8 zum Fatal Error führt.
Deshalb kann eine zweite Seite mit identischer WordPress- und WP-Rocket-Version völlig unauffällig bleiben, wenn dort kein Plugin oder Theme mit einem entsprechend numerischen Hook-Namen aktiv ist. Die Version allein ist also kein verlässlicher Indikator dafür, ob eine Installation betroffen ist – entscheidend ist die individuelle Plugin-/Theme-Kombination.
So erkennst du das Problem im debug.log
Wenn du Zugriff auf das debug.log der betroffenen Installation hast, kannst du den Fehler eindeutig identifizieren. Er sieht so aus:
PHP Fatal error: Uncaught TypeError: substr(): Argument #1 ($string) must be of type string, int given in .../wp-content/plugins/wp-rocket/inc/ThirdParty/Plugins/CDN/Cloudflare.php:562
Typisch für dieses Problem: Der Fehler taucht bei jedem Request auf – egal ob Frontend, Backend, wp-cron.php, admin-ajax.php oder WP-CLI-Aufrufe. Das erklärt, warum auch der Login komplett blockiert ist: WordPress stürzt bereits beim Hochfahren (init-Hook) ab, lange bevor die Login-Seite überhaupt gerendert wird.
So gehst du vor, um das Problem zu lösen:
1. WP Rocket deaktivieren
Da du dich nicht ins Backend einloggen kannst, deaktivierst du WP Rocket zunächst über das Plesk Control Panel:
- Logge dich in dein Plesk Control Panel ein
- Navigiere zu deiner WordPress-Installation
- Deaktiviere dort das Plugin WP Rocket
Danach solltest du wieder normal ins Backend gelangen.
2. Core Rollback installieren
Sobald du wieder im Backend bist, installierst du das Plugin Core Rollback:
👉 Core Rollback im Plugin-Verzeichnis
3. Ältere WordPress-Version auswählen
- Öffne das Core Rollback-Plugin
- Wähle die gewünschte, ältere Core-Version aus, zum Beispiel 7.0.4
- Klicke auf „Zurücksetzen“

Du wirst danach automatisch auf die „Aktualisieren“-Seite von WordPress weitergeleitet.
4. Alte Version installieren
Auf der „Aktualisieren“-Seite installierst du die alte Version erneut. Damit ist dein WordPress-Core wieder auf dem funktionierenden Stand.

5. WP Rocket wieder aktivieren
Jetzt kannst du WP Rocket problemlos wieder aktivieren. Das Backend bleibt erreichbar, und alles funktioniert wie gewohnt.
Wie geht es weiter?
Aktuell gibt es noch keinen offiziellen Fix von WP Rocket für die Kompatibilität mit WordPress 7.1. Bis dieser veröffentlicht wird, empfehlen wir, auf der zurückgesetzten Version zu bleiben und nicht erneut auf WordPress 7.1 zu aktualisieren, solange WP Rocket aktiv ist.
Sobald WP Rocket ein kompatibles Update veröffentlicht, informieren wir dich hier.