Kurz gesagt: Die Meldung Fatal error: Allowed memory size of 41943040 bytes exhausted bedeutet, dass ein PHP-Skript mehr Arbeitsspeicher braucht, als ihm erlaubt ist. Trag in der wp-config.php die Zeile define( 'WP_MEMORY_LIMIT', '256M' ); ein. Reicht das nicht, ist das Limit deines Hosters (memory_limit in PHP) die Obergrenze, das erhöhst du im Kundenmenü oder in einer php.ini. Tritt der Fehler trotz hohem Limit auf, frisst meist ein Plugin oder Theme zu viel Speicher.
Was die Fehlermeldung verrät
Die vollständige Meldung sieht etwa so aus:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /var/www/html/wp-content/plugins/beispiel-plugin/inc/import.php on line 312
- Die erste Zahl ist das aktuelle Limit in Bytes. 134217728 Bytes sind 128 MB, 41943040 Bytes sind 40 MB, 67108864 Bytes sind 64 MB.
- „tried to allocate“ zeigt, wie viel das Skript zuletzt noch haben wollte. Diese Zahl ist meist klein und sagt wenig.
- Der Dateipfad ist der wichtigste Hinweis: Steht dort ein Plugin- oder Theme-Ordner, weißt du, wer den Speicher gerade gebraucht hat. Das muss aber nicht der eigentliche Verursacher sein.
Siehst du statt der Meldung nur eine weiße Seite oder „Es gab einen kritischen Fehler auf dieser Website“, steht die Meldung im PHP-Fehlerprotokoll deines Hosters oder in der E-Mail, die WordPress an die Admin-Adresse schickt.
Zwei Limits: WordPress und PHP
| Einstellung | Wo | Standard | Bedeutung |
|---|---|---|---|
memory_limit | PHP-Konfiguration des Servers | häufig 128 MB oder mehr, je nach Hoster | harte Obergrenze für jedes PHP-Skript |
WP_MEMORY_LIMIT | wp-config.php | 40 MB (Multisite 64 MB) | was WordPress im Frontend anfordert |
WP_MAX_MEMORY_LIMIT | wp-config.php | 256 MB | was WordPress im Backend anfordert, etwa für Bildbearbeitung |
WordPress hebt das Limit nur an, wenn der Server es zulässt. Liegt das PHP-memory_limit des Hosters bereits höher als WP_MEMORY_LIMIT, gilt der höhere Wert. Steht das Hoster-Limit bei 128 MB, bringt ein WP_MEMORY_LIMIT von 512 MB nichts. Welches Limit tatsächlich gilt, siehst du unter Werkzeuge → Website-Zustand → Bericht → Server (PHP-Arbeitsspeicherlimit) und im Abschnitt „WordPress-Konstanten“.
Anleitung: Speicherlimit erhöhen
1. WordPress-Limit in der wp-config.php setzen
Öffne per SFTP oder über den Dateimanager deines Hosters die Datei wp-config.php im WordPress-Hauptverzeichnis. Füge oberhalb der Zeile /* That's all, stop editing! Happy publishing. */ ein:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
Speichern und die Seite neu laden. Ist der Fehler weg, bist du fertig.
2. PHP-Limit beim Hoster erhöhen
Bleibt der Fehler, begrenzt der Server. Je nach Hoster gibt es dafür verschiedene Wege:
- Kundenmenü: In Plesk unter „PHP-Einstellungen“ der Domain, bei vielen anderen Hostern unter „PHP-Konfiguration“. Dort
memory_limitauf 256M oder 512M setzen. - Eigene php.ini oder .user.ini: Bei PHP-FPM oder FastCGI legst du im Hauptverzeichnis eine Datei
.user.inimit der Zeilememory_limit = 256Man. Die Änderung wirkt je nach Server erst nach einigen Minuten. - .htaccess:
php_value memory_limit 256Mfunktioniert nur, wenn PHP als Apache-Modul läuft. Bei den meisten modernen Hostern führt die Zeile zu einem Fehler 500. Dann entfernst du sie wieder.
Erlaubt dein Tarif keine Erhöhung, frag den Support oder überlege einen Wechsel des Tarifs. Mehr als 512 MB brauchen normale Websites praktisch nie.
Wenn mehr Speicher nicht hilft: den Verursacher finden
Ein Fehler trotz 256 oder 512 MB deutet fast immer auf ein Problem im Code hin, etwa eine Endlosschleife, einen Import, der alles auf einmal lädt, oder ein Plugin, das riesige Datenmengen in eine Option schreibt. So gehst du vor:
- Merk dir den Pfad aus der Fehlermeldung und deaktiviere zuerst genau dieses Plugin.
- Hilft das nicht, deaktiviere alle Plugins und aktiviere sie einzeln wieder. Kommst du nicht mehr ins Backend, benenne per SFTP den Ordner
wp-content/pluginsvorübergehend um. - Wechsle testweise auf ein Standard-Theme wie Twenty Twenty-Five.
- Prüfe die Tabelle
wp_optionsauf riesige automatisch geladene Einträge (siehe unten).
Die allgemeine Fehlersuche beschreibt unsere Antwort Wie gehe ich vor, wenn Fehler in WordPress auftreten?
Für Fortgeschrittene: Speicherverbrauch messen
Mit WP-CLI prüfst du Limits und große Optionen, ohne ins Backend zu müssen:
# PHP-Limit der Kommandozeile (kann vom Webserver abweichen!)
php -r 'echo ini_get("memory_limit"), PHP_EOL;'
# WordPress-Konstanten auslesen
wp config get WP_MEMORY_LIMIT
wp config get WP_MAX_MEMORY_LIMIT
# Gesamtgröße aller automatisch geladenen Optionen in Bytes
wp option list --autoload=on --format=total_bytes
# Die 10 größten automatisch geladenen Optionen
wp option list --autoload=on --fields=option_name,size_bytes --format=csv | sort -t, -k2 -n -r | head -n 10
# Plugins nacheinander deaktivieren, ohne Backend
wp plugin deactivate --all
wp plugin activate beispiel-plugin
Beachte: Die PHP-Konfiguration der Kommandozeile ist oft eine andere als die des Webservers. Das für Besucher geltende Limit zeigt dir der Website-Zustand im Backend. Wer tiefer einsteigen will, nutzt das Plugin Query Monitor: Es zeigt für jeden Seitenaufruf den Speicherverbrauch an.
Aufgeräumt: große Autoload-Optionen entschärfen
Automatisch geladene Optionen landen bei jedem Seitenaufruf im Speicher. Alte Installationen schleppen hier oft Reste längst gelöschter Plugins mit, manchmal mehrere Megabyte. Aktuelle WordPress-Versionen warnen im Website-Zustand, wenn die Summe zu groß wird. So gehst du vor:
- Mit dem Befehl oben die größten Einträge ermitteln und am Namensanfang (Präfix) erkennen, zu welchem Plugin sie gehören.
- Gehört eine Option zu einem Plugin, das nicht mehr installiert ist, kann sie nach einem Backup weg:
wp option delete optionsname. - Wird die Option noch gebraucht, aber nur selten, stellst du das automatische Laden ab:
wp option set-autoload optionsname off(in aktuellen WP-CLI-Versionen). - Abgelaufene Transients räumst du mit
wp transient delete --expiredauf.
Optionen, deren Herkunft du nicht kennst, löschst du nicht auf Verdacht. Frag im Zweifel im Forum nach und nenne den Optionsnamen.
Frage dazu? Poste deine vollständige Fehlermeldung im Forum „Fehler & Probleme“: Zum WPDE-Forum
Häufige Fragen
Wie viel Speicher braucht WordPress?
Eine schlanke Installation kommt mit 64 MB aus. Mit Page-Builder, WooCommerce oder vielen Plugins sind 256 MB ein sinnvoller Wert.
Ist ein hohes Speicherlimit gefährlich?
Nicht direkt. Das Limit verhindert aber, dass ein fehlerhaftes Skript den ganzen Server lahmlegt. Setz es deshalb so hoch wie nötig, nicht so hoch wie möglich.
Der Fehler kommt nur beim Hochladen von Bildern. Warum?
Beim Hochladen erzeugt WordPress mehrere Bildgrößen, das braucht bei großen Fotos viel Speicher. Verkleinere Bilder vor dem Hochladen oder erhöhe WP_MAX_MEMORY_LIMIT. Mehr dazu unter Probleme beim Hochladen von Dateien.