---
title: "WordPress-Speicherlimit erhöhen: memory_limit und WP_MEMORY_LIMIT richtig setzen"
date: 2026-09-30T22:05:52+02:00
modified: 2026-11-08T22:09:24+01:00
category: wordpress
type: how_to
author: Marcel Schönfelder
canonical: https://s-edv.com/anleitungen/wordpress-speicherlimit-erhoehen-memory-limit-wp-memory-limit
keywords:
  - WordPress
  - PHP
  - memory_limit
  - wp-config.php
  - Fehlerbehebung
reading_time: 8
---

# WordPress-Speicherlimit erhöhen: memory_limit und WP_MEMORY_LIMIT richtig setzen

Die Meldung „Allowed memory size of … bytes exhausted“ im Fehlerprotokoll oder eine weiße Seite beim Hochladen großer Bilder, beim Import oder im Seitenbaukasten deuten auf ein zu knappes Speicherlimit hin. In WordPress wirken dabei zwei Ebenen zusammen: die PHP-Einstellung `memory_limit`, die der Server vorgibt, und die WordPress-Konstanten `WP_MEMORY_LIMIT` und `WP_MAX_MEMORY_LIMIT`. Wer nur eine Ebene ändert, wundert sich oft, warum nichts passiert. Diese Anleitung erklärt, wie beide Ebenen zusammenspielen, wo Sie den aktuellen Wert ablesen und auf welchem Weg Sie das Limit bei Ihrem Hosting tatsächlich anheben. Alle Kombinationen haben wir in einer Testinstanz mit WordPress 7.1.2 und PHP 8.4 unter Apache nachgestellt.

**Kurzfassung:** Lesen Sie die aktuellen Werte unter **Werkzeuge > Website-Zustand > Bericht** im Abschnitt „Server“ ab. Setzen Sie in der `wp-config.php` `define( 'WP_MEMORY_LIMIT', '256M' );` oberhalb der Zeile „That's all, stop editing!“. WordPress kann das PHP-Limit damit nur anheben, wenn der Hoster das zulässt. Sonst ändern Sie `memory_limit` direkt: im Hosting-Kundenmenü, per `.user.ini` (PHP-FPM/CGI) oder per `.htaccess` (nur Apache mit mod_php). Ein höheres Limit behebt kein Speicherleck; suchen Sie bei wiederkehrenden Fehlern die Ursache.

## Voraussetzungen

- [ ] **WordPress:** eine aktuelle Version.
- [ ] **PHP:** mindestens 7.4, wie von WordPress empfohlen.
- [ ] **Zugriff:** SFTP, FTP oder SSH auf das WordPress-Hauptverzeichnis, alternativ das Kundenmenü Ihres Hosters für die PHP-Einstellungen.
- [ ] **Rolle:** Administrator im Backend, damit Sie den Website-Zustand aufrufen können.
- [ ] **Backup:** eine Sicherung von `wp-config.php` und `.htaccess`. Ein Tippfehler in einer dieser Dateien legt die Website sofort lahm.
- [ ] **Arbeitsspeicher des Servers:** Auf einem eigenen Server bestimmt der freie RAM, wie weit Sie gehen können. Das Limit gilt pro PHP-Prozess; 10 gleichzeitige Prozesse mit je 256 MB können bis zu 2,5 GB belegen.

## Schritt 1: Zusammenspiel der drei Werte verstehen

Laut PHP-Handbuch legt `memory_limit` fest, wie viel Speicher ein einzelnes Skript höchstens belegen darf; der Wert `-1` bedeutet ohne Grenze. WordPress setzt darauf auf. Aus dem Quelltext von `wp-includes/default-constants.php` ergibt sich folgendes Verhalten:

| Wert | Standard | Wirkung |
| --- | --- | --- |
| `memory_limit` (PHP) | vom Hoster | aktuell wirksame Grenze pro Aufruf, je nach Server zur Laufzeit änderbar |
| `WP_MEMORY_LIMIT` | 40M (Multisite 64M) | Ziel für Frontend und normale Aufrufe |
| `WP_MAX_MEMORY_LIMIT` | 256M | Ziel im Backend, bei Bildbearbeitung und Cron |

Entscheidend ist die Regel: WordPress hebt `memory_limit` per `ini_set()` nur an, wenn der Konstantenwert höher ist als der aktuelle PHP-Wert. Senken kann `WP_MEMORY_LIMIT` das Limit nicht. Das Handbuch zur `wp-config.php` formuliert es so: Hat PHP bereits 64 MB, ist ein Eintrag von 64M überflüssig. In unserem Test mit PHP-Standard 128M blieb es bei `WP_MEMORY_LIMIT` 40M und 64M jeweils bei `memory_limit=128M`.

Im Backend ruft WordPress zusätzlich `wp_raise_memory_limit( 'admin' )` auf und hebt das Limit auf `WP_MAX_MEMORY_LIMIT` an. Deshalb laufen Aktionen im Backend oft noch, während dieselbe Last im Frontend scheitert.

Verbietet der Hoster das Ändern von `memory_limit` zur Laufzeit, übernimmt WordPress den PHP-Wert für beide Konstanten und ändert nichts. Dann hilft nur ein Weg aus Schritt 4.

> **Prüfen:** Sie können für Ihre Fehlermeldung sagen, ob sie im Frontend (gilt `WP_MEMORY_LIMIT`) oder im Backend (gilt `WP_MAX_MEMORY_LIMIT`) auftritt.

## Schritt 2: Aktuelle Werte ablesen

Öffnen Sie **Werkzeuge > Website-Zustand** und dort den Reiter **Bericht**. Klappen Sie den Abschnitt **Server** auf. In unserer Testinstanz standen dort nach der Änderung aus Schritt 3:

```powershell
PHP-Arbeitsspeichergrenze (memory_limit)                    256M
PHP-Arbeitsspeichergrenze (nur für die Administration)      512M
```

Die zweite Zeile erscheint nur, wenn sich der Wert im Backend vom normalen Wert unterscheidet. Im Abschnitt **WordPress-Konstanten** finden Sie `WP_MEMORY_LIMIT` und `WP_MAX_MEMORY_LIMIT`.

Mit SSH und WP-CLI lesen Sie die Konstanten so aus:

```bash
$ wp eval 'echo WP_MEMORY_LIMIT, " ", WP_MAX_MEMORY_LIMIT, "\n";'
```

Den PHP-Wert fragen Sie über WP-CLI nicht zuverlässig ab: Die Kommandozeile nutzt oft eine eigene Konfiguration. In unserem Test meldete `ini_get( 'memory_limit' )` über WP-CLI `-1`, der Webserver dagegen `128M`. Maßgeblich ist der Wert im Website-Zustand.

Die Fehlermeldung selbst nennt die Grenze in Byte. 268435456 Byte sind 256 MB, 134217728 Byte sind 128 MB. So sehen Sie, welches Limit gegriffen hat. Wie Sie das Fehlerprotokoll aktivieren und lesen, zeigt die Anleitung [WordPress Debug-Modus aktivieren und Error-Logs analysieren](https://s-edv.com/anleitungen/wordpress-debug-modus-error-logs-fehler-beheben).

> **Prüfen:** Sie haben den aktuellen Wert von `memory_limit` und beiden Konstanten notiert.

## Schritt 3: WP_MEMORY_LIMIT in der wp-config.php setzen

Das ist der erste Weg, weil er nur WordPress betrifft und keine Serverkonfiguration braucht. Sichern Sie die `wp-config.php`, öffnen Sie sie und fügen Sie oberhalb der Zeile `/* That's all, stop editing! Happy publishing. */` ein:

Datei: `wp-config.php`

```php
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); // optional, nur wenn das Backend mehr braucht
```

Mit WP-CLI geht es ohne Editor; der Befehl setzt die Konstante an die richtige Stelle:

```bash
$ wp config set WP_MEMORY_LIMIT 256M
```

Die Position zählt: Nach der Zeile mit `wp-settings.php` hat WordPress seine Standardwerte schon gesetzt, und Ihre Konstante wirkt nicht mehr. Nehmen Sie keine Werte „auf Vorrat“. Erhöhen Sie nur so weit, wie die Fehlermeldung es belegt.

In unserem Test lieferte ein Prüfskript nach dem Eintrag `WP_MEMORY_LIMIT=256M memory_limit=256M`. Ein Skript, das absichtlich Speicher füllte, brach danach mit dieser Meldung im Serverprotokoll ab:

Ausgabe:

```plaintext
PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 1052672 bytes)
```

> **Prüfen:** Im **Bericht** des Website-Zustands zeigt „PHP-Arbeitsspeichergrenze (memory_limit)“ den neuen Wert. Bleibt der alte Wert stehen, lässt Ihr Hoster keine Änderung zur Laufzeit zu oder `memory_limit` liegt schon höher. Weiter mit Schritt 4.

## Schritt 4: memory_limit direkt beim Server anheben

Liegt die Obergrenze beim Hoster, ändern Sie `memory_limit` selbst. Welcher Weg funktioniert, hängt davon ab, wie PHP bei Ihnen läuft. Den Typ zeigt der Bericht im Abschnitt **Server** in der Zeile „PHP-SAPI“: `apache2handler` steht für mod_php, `fpm-fcgi` für PHP-FPM.

- **Kundenmenü des Hosters:** Viele Hoster bieten PHP-Einstellungen im Kundenmenü an. Das ist der sauberste Weg, weil er auch Updates überlebt.
- **`.user.ini` im WordPress-Verzeichnis:** Laut PHP-Handbuch liest PHP diese Datei nur unter CGI/FastCGI, also typisch bei PHP-FPM. Inhalt: `memory_limit = 256M`. Änderungen greifen erst nach Ablauf von `user_ini.cache_ttl`, standardmäßig 300 Sekunden.
- **`.htaccess`:** nur bei Apache mit PHP als Modul (mod_php). Zeile oberhalb von `# BEGIN WordPress`: `php_value memory_limit 256M`.
- **Eigener Server:** eine eigene INI-Datei im Konfigurationsverzeichnis von PHP, danach Webserver oder PHP-FPM neu laden.

```plaintext
; .user.ini (PHP-FPM / CGI)
memory_limit = 256M
```

```apache
# .htaccess (nur Apache mit mod_php), oberhalb von # BEGIN WordPress
php_value memory_limit 256M
```

In der Testinstanz (Apache mit mod_php) wirkten die Wege unterschiedlich: Eine Zeile `php_value memory_limit 64M` in der `.htaccess` setzte das Limit auf 64M. Eine `.user.ini` mit 512M blieb ohne Wirkung, wie im Handbuch beschrieben. Eine eigene INI-Datei im Verzeichnis `conf.d` setzte nach Neuladen von Apache 512M; WordPress übernahm diesen Wert auch als `WP_MAX_MEMORY_LIMIT`, weil er über 256M lag.

Ein Sonderfall zeigte sich ebenfalls: Mit `.htaccess`-Wert 64M und `WP_MEMORY_LIMIT` 256M in der `wp-config.php` lief WordPress mit 256M. Ein Wert per `php_value` lässt sich also zur Laufzeit überschreiben. Hoster, die ein Limit festschreiben wollen, nutzen dafür andere Mittel.

> **Prüfen:** Der Website-Zustand zeigt den neuen Wert. Nach einer Änderung an der `.htaccess` laden Sie die Startseite und das Backend: Beide müssen ohne Fehler 500 erscheinen.

## Schritt 5: Ursache prüfen statt Limit immer weiter erhöhen

Das Handbuch zur `wp-config.php` warnt ausdrücklich: Ein höheres Limit kann die eigentliche Ursache verdecken, bis sie mit dem nächsten Plugin wieder auftritt. Tritt der Fehler trotz 256M erneut auf, prüfen Sie die Datei und Zeile in der Fehlermeldung. Liegt sie in einem bestimmten Plugin, testen Sie in einer Kopie der Website ohne dieses Plugin. Wie Sie eine solche Kopie anlegen, zeigt [WordPress-Staging-Umgebung mit WP-CLI einrichten](https://s-edv.com/anleitungen/wordpress-staging-umgebung-wp-cli-einrichten). Typische Auslöser sind Importe großer Dateien, Bildbearbeitung sehr großer Fotos und Berichte, die alle Bestellungen oder Beiträge auf einmal laden.

Speicherfehler kommen häufig nach Updates von Plugins oder PHP. Wer Updates und die Kontrolle danach nicht selbst übernehmen möchte, kann sie abgeben: Die [WordPress-Wartung von wordpressupdate.de](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=artikel&utm_campaign=78) spielt Updates von WordPress, Plugins und Themes innerhalb von 48 Stunden mit Kompatibilitätsprüfung ein und sichert die Website wöchentlich auf externen Speicher.

> **Prüfen:** Die Aktion, die vorher scheiterte, läuft durch, und im Fehlerprotokoll erscheint keine neue Zeile „Allowed memory size“.

## Typische Fehler

**Konstante nach dem Laden von `wp-settings.php` eingetragen**

WordPress hat seine Standardwerte dann schon gesetzt. Platzieren Sie die Definition vor dem Laden dieser Datei, üblicherweise oberhalb von „stop editing“.

**Wert ohne Einheit**

`256` statt `256M` bedeutet 256 Byte. Schreiben Sie immer `M` oder `G` dahinter.

**Fehler 500 nach Änderung der `.htaccess`**

Läuft PHP als FPM, versteht Apache `php_value` nicht. Bereits `php_admin_value` in der `.htaccess` kann zu HTTP 500 führen, mit dem Protokolleintrag `/var/www/html/.htaccess: php_admin_value not allowed here`. Entfernen Sie die Zeile per SFTP und nutzen Sie `.user.ini`.

**`.user.ini` ohne Wirkung**

Entweder läuft PHP als Apache-Modul (dann `.htaccess`) oder der Cache von 300 Sekunden ist noch nicht abgelaufen.

**`WP_MEMORY_LIMIT` kleiner als das PHP-Limit**

Senkt nichts. Mit 64M bleibt es bei 128M.

**Limit auf `-1` gesetzt**

ohne Grenze. Ein fehlerhaftes Plugin kann dann den gesamten Arbeitsspeicher des Servers belegen. Nutzen Sie feste Werte.

## Häufige Fragen

### Welcher Wert ist sinnvoll?

Einen festen Wert nennt die WordPress-Dokumentation nicht. Starten Sie mit dem Wert, der den konkreten Fehler behebt, häufig 256M, und erhöhen Sie nur mit Begründung. Auf einem Server mit wenig RAM zählt, wie viele PHP-Prozesse gleichzeitig laufen.

### Warum läuft es im Backend, aber nicht im Frontend?

Im Backend hebt WordPress das Limit auf `WP_MAX_MEMORY_LIMIT` an, standardmäßig 256M. Im Frontend gilt `WP_MEMORY_LIMIT` beziehungsweise der PHP-Wert.

### Hilft ein Plugin zum Erhöhen des Speicherlimits?

Solche Plugins setzen dieselben Konstanten oder Einträge wie oben. Sie unterliegen denselben Grenzen des Hosters. Der direkte Eintrag ist nachvollziehbarer und braucht kein weiteres Plugin.

## Fazit

Das Speicherlimit in WordPress hat zwei Ebenen. `WP_MEMORY_LIMIT` in der `wp-config.php` hebt an, was PHP zulässt; reicht das nicht, ändern Sie `memory_limit` über den Weg, der zu Ihrer PHP-Variante passt. Prüfen Sie jede Änderung im Website-Zustand und suchen Sie bei wiederkehrenden Fehlern die Ursache, statt das Limit weiter zu erhöhen. Wenn Sie Updates und die Kontrolle danach auslagern möchten, übernimmt das die [WordPress-Wartung](https://wordpressupdate.de/?utm_source=s-edv.com&utm_medium=fazit&utm_campaign=78).

## Weiterführende Anleitungen und Quellen

- [WordPress Debug-Modus aktivieren und Error-Logs analysieren](https://s-edv.com/anleitungen/wordpress-debug-modus-error-logs-fehler-beheben)
- [WordPress-Update-Fehler beheben: weiße Seite und kritischer Fehler](https://s-edv.com/anleitungen/wordpress-update-fehler-beheben-weisse-seite-kritischer-fehler)
- [wp-config.php härten](https://s-edv.com/anleitungen/wordpress-wp-config-haerten-salts-dateibearbeitung-debug)
- [WordPress-Staging-Umgebung mit WP-CLI einrichten](https://s-edv.com/anleitungen/wordpress-staging-umgebung-wp-cli-einrichten)

Quellen:

- [Advanced Administration Handbook: wp-config.php (Increasing memory allocated to PHP)](https://developer.wordpress.org/advanced-administration/wordpress/wp-config/)
- [Code Reference: wp_raise_memory_limit()](https://developer.wordpress.org/reference/functions/wp_raise_memory_limit/)
- [WP-CLI: wp config set](https://developer.wordpress.org/cli/commands/config/set/)
- [PHP-Handbuch: memory_limit](https://www.php.net/manual/de/ini.core.php)
- [PHP-Handbuch: .user.ini-Dateien](https://www.php.net/manual/de/configuration.file.per-user.php)
- [PHP-Handbuch: Konfiguration ändern (php_value in .htaccess)](https://www.php.net/manual/de/configuration.changes.php)
