Eine der häufigsten WordPress Fehlermeldungen lautet sinngemäß "Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in /wp-includes/...". Sie taucht meistens im ungünstigsten Moment auf: mitten im Plugin Update, beim Speichern einer langen Seite im Editor, beim Medien Upload oder direkt nach dem Wechsel auf ein anspruchsvolleres Theme. Die Lösung ist fast immer, das PHP Memory Limit hochzusetzen. Der Haken: es gibt nicht ein Memory Limit, sondern mindestens drei in WordPress, plus ein viertes auf PHP Ebene, und sie hängen auf eine Art zusammen, die viele Leute überrascht. Diese Anleitung erklärt, welches Limit in welcher Situation greift, und wie du es auf den verschiedenen Hosting Setups sauber anhebst.
Welches "Memory Limit" ist eigentlich gemeint?
Wenn eine WordPress Seite aufgerufen wird, kommen potenziell vier Limits ins Spiel:
- PHP
memory_limitin derphp.ini. Das harte Maximum, das PHP selbst durchsetzt. Nichts innerhalb von WordPress kann je darüber hinausgehen. Typische Defaults moderner Hoster sind 128M oder 256M. WP_MEMORY_LIMIT. WordPress eigene Konstante, definiert in derwp-config.php. Default 40M. WordPress hebt das PHP Limit beim Boot auf diesen Wert, aber nur, wennWP_MEMORY_LIMIThöher ist als das aktuelle PHP Limit. Ist das PHPmemory_limitbereits 256M, hat diese Konstante keinen Effekt.WP_MAX_MEMORY_LIMIT. Eine separate Konstante, die nur innerhalb vonwp-adminwirkt (Dashboard, Bearbeiten Seiten, Plugin und Theme Verwaltung, Mediathek). Default 256M. Diesen Wert hochsetzen, wenn Admin Seiten ihr Speicher Limit reißen, das Frontend aber problemlos läuft.- Hoster Overrides. Viele Shared und Managed Hoster deckeln PHP
memory_limithart auf Server Ebene, unabhängig davon, was deinephp.inioderwp-config.phpsagt. Auf solchen Hosts läuft das eigene Hochsetzen still ins Leere, und es bleibt nur der Weg über den Support.
Das praktische Mental Model: WP_MEMORY_LIMIT betrifft das Frontend, WP_MAX_MEMORY_LIMIT den Admin, und beide sind Untergrenzen, keine Obergrenzen. Sie können das effektive Limit nur anheben, niemals unter den PHP Wert drücken. Die echte Obergrenze ist immer die PHP Einstellung.
Wie viel Speicher braucht eine WordPress Seite tatsächlich?
Eine brauchbare Daumenregel, basierend auf dem, was InspectWP über tausende Scans hinweg sieht:
- 64M. Eine saubere WordPress Installation mit kleinem Theme und fünf gutmütigen Plugins. Realistisch heute nur noch auf sehr einfachen Seiten, und auch da knapp.
- 128M. Das De facto Minimum für jede ernst zu nehmende Seite im Jahr 2026. Default Theme, zehn bis fünfzehn Plugins, kein Page Builder. Die meisten Hoster liefern diesen Wert ab Werk aus.
- 256M. Der vernünftige Zielwert für die meisten Seiten. Page Builder (Elementor, Divi, Bricks, Beaver Builder), WooCommerce, größere Theme Frameworks, Bild Optimierungs Plugins. Genau der Default Wert von
WP_MAX_MEMORY_LIMITfür den Admin, und das ist kein Zufall. - 512M. WooCommerce Shops mit ein paar hundert Bestellungen und vielen Erweiterungen. Seiten mit schweren SEO Suites neben einem Page Builder. Bildverarbeitung auf großen Mediatheken.
- 768M bis 1024M. Größere WooCommerce Shops, mehrsprachige Seiten mit WPML oder Polylang, Mitglieder Bereiche mit komplexer Rollen Logik, Seiten, die regelmäßig Imports einplanen.
- Über 1024M. Wenn du auf einer normalen Seite ernsthaft so viel brauchst, ist meistens etwas anderes schief. Ein bestimmtes Plugin leakt Speicher, ein Import lädt die ganze Datenbank in einen einzelnen PHP Prozess, oder ein Theme tut etwas, das es nicht tun sollte. Das Limit hochzusetzen kuriert das Symptom, der eigentliche Fix liegt woanders.
Speicher ist billig, aber unbegrenzter Speicher versteckt Bugs. Der richtige Weg ist, das Limit gerade so hoch zu setzen, dass die Seite komfortabel läuft, nicht "vorsichtshalber" auf 4G.
Option 1: WP_MEMORY_LIMIT in der wp-config.php hochsetzen
Das ist die einfachste und portabelste Änderung. Öffne die wp-config.php im WordPress Wurzelverzeichnis und füge folgende Zeilen irgendwo oberhalb des Kommentars /* Das war's, Schluss mit dem Bearbeiten! Viel Spaß. */ ein:
define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');
Datei speichern. WordPress wendet die neuen Limits beim nächsten Request an. Das Frontend hat ab sofort bis zu 256M zur Verfügung, der Admin bis zu 512M. Kein Neustart nötig.
Wichtiger Haken: Das funktioniert nur, wenn das PHP memory_limit mindestens so hoch ist wie der gesetzte Wert. Wenn PHP vom Hoster auf 128M gedeckelt ist, ist WP_MEMORY_LIMIT auf 512M wirkungslos. WordPress versucht das Limit anzuheben, PHP weigert sich, die Fehlermeldung bleibt unverändert. Weiter bei Option 2.
Option 2: PHP memory_limit auf PHP Ebene hochsetzen
Wenn WP_MEMORY_LIMIT alleine nicht reicht, muss die eigentliche PHP Einstellung mit hoch. Wo man die ändert, hängt vom Hoster ab:
Auf Managed Hosting (Raidboxes, Kinsta, WP Engine, Cloudways, SiteGround, Pressable)
Diese Hoster haben fast alle eine Einstellung im Dashboard. Such nach "PHP Einstellungen", "PHP memory limit" oder ähnlich. Die Änderung greift in der Regel binnen Sekunden, kein Neustart auf deiner Seite nötig. Manche Hoster (Raidboxes, WP Engine) deckeln das Maximum aus Performance Gründen bei 512M oder 768M. Wenn du wirklich mehr brauchst, kann der Support meistens auf Anfrage höher gehen, fragt aber sinnvollerweise erst nach dem Grund.
Auf Shared Hosting mit cPanel/Plesk (IONOS, All Inkl, Hostinger, DomainFactory, Strato)
cPanel und Plesk haben beide ein PHP Einstellungen Panel, in dem sich memory_limit pro Domain setzen lässt. Such nach "MultiPHP INI Editor" (cPanel) oder "PHP Einstellungen" (Plesk). Wert wählen, speichern, fertig. Manche Hoster verstecken die Einstellung in einem "PHP Optionen" Untermenü.
Falls das Panel fehlt oder die Einstellung keine Wirkung hat, lege eine .user.ini Datei im WordPress Wurzelverzeichnis an mit dieser einen Zeile:
memory_limit = 256M
Der .user.ini Mechanismus wird von jedem modernen PHP Setup unterstützt, das CGI, FastCGI oder PHP FPM nutzt, also faktisch jedem Hoster heute. PHP zieht die Datei automatisch; einzige Eigenheit ist eine Standard Cache Zeit von fünf Minuten, danach gilt das neue Limit beim nächsten Request.
Auf einem selbst verwalteten VPS oder Root Server
Direkt die php.ini bearbeiten. Den aktiven Pfad findest du mit php --ini auf der Kommandozeile; der Pfad variiert je nach Distribution und PHP Version. Die memory_limit Zeile suchen, Wert ändern, speichern. PHP FPM neu laden mit sudo systemctl reload php8.2-fpm (Versionsnummer anpassen) oder Apache neu starten, falls du mod_php nutzt.
Nur Apache: .htaccess (Legacy)
Auf älteren Apache Setups mit mod_php (auf modernem Hosting selten) kann php_value memory_limit 256M in der .htaccess funktionieren. Wenn dein Hoster PHP über FastCGI oder PHP FPM ausliefert, wird die Direktive schlicht ignoriert. Dann .user.ini nutzen.
So prüfst du, welches Limit tatsächlich aktiv ist
Welches der vier Limits gerade greift, lässt sich in dreißig Sekunden klären:
- Im WordPress Admin Werkzeuge, Website Zustand, Bericht öffnen (Englisch: Tools, Site Health, Info).
- Den Abschnitt Server ausklappen. Dort steht das aktive PHP
memory_limit. - Den Abschnitt WordPress Konstanten ausklappen. Dort stehen
WP_MEMORY_LIMITundWP_MAX_MEMORY_LIMITmit ihren aktuellen Werten.
Wenn die WordPress Konstanten deine neuen Werte zeigen, das PHP memory_limit aber niedriger ist, deckelt der Hoster auf Server Ebene. Dann zum Support oder das Hoster Panel aus Option 2 nutzen.
Für eine punktgenaue Prüfung von außerhalb des Dashboards eignet sich eine temporäre Datei unter wp-content/mu-plugins/check-memory.php:
<?php
add_action('init', function () {
if (current_user_can('manage_options') && isset($_GET['check_memory'])) {
wp_die('PHP memory_limit: ' . ini_get('memory_limit'));
}
});
Dann eingeloggt als Admin https://deinedomain.de/?check_memory=1 aufrufen. Die Seite zeigt das Limit, das PHP für genau diesen Request anwendet. Datei nach der Prüfung wieder entfernen.
Was, wenn das Hochsetzen den Fehler nicht behebt?
Wenn "Allowed memory size exhausted" auch nach dem Anheben aller Limits auf sinnvolle Werte bestehen bleibt, ist das eigentliche Problem nicht mehr "WordPress braucht mehr Speicher". Such nach einer dieser Ursachen:
- Ein bestimmtes Plugin ist die Quelle. Plugins eines nach dem anderen deaktivieren und neu laden. Die Fehlermeldung verrät das Plugin im Pfad:
/wp-content/plugins/PLUGINNAME/.... Dieses Plugin hat entweder ein Memory Leak oder macht tatsächlich etwas Speicherintensives, das in kleineren Häppchen laufen müsste. - Massenoperationen. Tausende Produkte über den WooCommerce CSV Importer einlesen, Thumbnails für eine ganze Mediathek neu erzeugen, ein vollständiges SEO Audit laufen lassen. All das kann jedes Memory Limit reißen. Der saubere Weg ist hier meistens WP CLI. Die CLI hat ein eigenes, in der Regel deutlich höheres Memory Limit und arbeitet Aufgaben in Batches ab, ohne den vollen Request Lifecycle Overhead.
- WP Cron hängt an einer schweren Aufgabe. Hintergrund Jobs, die über
wp-cron.phplaufen, teilen sich das Memory Limit mit normalen Requests. Wenn ein geplanter Task versucht, eine riesige Queue auf einmal abzuarbeiten, scheitert er still und immer wieder, ohne offensichtliches Frontend Symptom. Internes WP Cron deaktivieren und stattdessen über System Cron laufen lassen hilft meistens. - Object Cache falsch konfiguriert. Eine zu kleine Redis oder Memcached Instanz in Kombination mit dem persistenten Object Cache von WordPress kann unter Last für eigenartigen Speicherdruck sorgen. Wert prüfen, wenn du eines davon einsetzt und das Problem nur unter Traffic auftritt.
Häufige Fehler
WP_MEMORY_LIMITniedriger als das PHP Default setzen. Bringt nichts. WordPress hebt das Limit nur an, senkt es nie ab.define('WP_MEMORY_LIMIT', '32M')auf einem Host mit PHP auf 256M ist wirkungslos.WP_MEMORY_LIMITundWP_MAX_MEMORY_LIMITauf den gleichen Wert setzen. Funktioniert, gibt aber den ganzen Sinn der zwei Konstanten auf, dem Admin mehr Speicher zuzugestehen als dem Frontend.- Wert ohne Einheit angeben.
define('WP_MEMORY_LIMIT', 256)setzt das Limit auf 256 Byte, nicht 256 Megabyte. Immer mit Einheit in Anführungszeichen:'256M'. - Falsche wp-config.php bearbeitet. Wenn die Installation in einem Unterordner liegt, kann es sowohl im Installations als auch im Elternordner eine
wp-config.phpgeben. Vom WordPress Verzeichnis aus aufwärts prüfen und die bearbeiten, die WordPress tatsächlich lädt.
Für die allermeisten Seiten lösen zwei Zeilen in der wp-config.php plus ein vernünftiges PHP memory_limit aus dem Hoster Panel den Fehler dauerhaft. Wenn nicht, liegt das Problem nicht am Speicher, und das Limit weiter hochzudrehen verschiebt nur den nächsten Crash.