Ist mehr PHP-Speicher erforderlich, weil meine Website langsam ist? Wir erklären, wie es wirklich ist.

Wie funktioniert der PHP-Speicher?

Keine Sorge, wir werden nicht zu tief in die Technik einsteigen 🙂

Ok, jetzt kommt’s: PHP ist die Programmiersprache, mit der WordPress funktioniert. PHP beschreibt, was zu tun ist, um etwas auf den Bildschirm zu bekommen oder um z. B. aus einem neuen Kommentar eine E-Mail zu versenden.
Alle diese Anweisungen (von WordPress selbst, aber auch von Plugins) befinden sich in separaten Dateien (den ‚.php‘-Dateien wie ‚wp-login.php‘, die Sie manchmal zum Einloggen verwenden).

Wenn Sie Ihre WordPress-Website in Ihrem Browser aufrufen oder einen Beitrag bearbeiten, geschieht Folgendes unter Wasser, und zwar in dieser globalen Reihenfolge:

  1. Die Standardkomponenten von WordPress werden gesammelt und für Sie geladen
  2. Alle mu-Plugins und im Multisite-Netzwerk aktivierten Plugins werden gesammelt und geladen
  3. Alle aktiven Plugins werden gesammelt und geladen
  4. Ihr Theme wird geladen

📌 Hinweis: Für die Geeks unter uns: Öffnen Sie einfach die Datei „wp-settings.php“ in Ihrem Lieblingseditor.

Sie sehen also, dass einige Schritte erforderlich sind, um alles zu aktivieren, was WordPress braucht, um (zum Beispiel) Ihre Beiträge und Seiten abzurufen. Alle diese php-Dateien und Anweisungen werden in den temporären Serverspeicher (auch RAM genannt) geladen.
Außerdem kann es vorkommen, dass die PHP-Anweisungen bereits Daten von Ihrer Datenbank anfordern und diese zur Verwendung vorübergehend speichern wollen. Auch das kostet Sie zusätzlichen PHP-Speicher. Übrigens wird standardmäßig auch die Optionstabelle ausgelesen, die z.B. Ihren Site-Namen und Ihre Site-Beschreibung enthält.

Also: Je mehr Plugins Sie zusätzlich installieren, desto mehr PHP-Speicher wird benötigt.


Plus: Im Allgemeinen hat die Anzahl der Revisionen und Meldungen keinen großen Einfluss auf Ihren Speicherbedarf. Allerdings belegen sie Platz in Ihrer Datenbank und ihr Inhalt wird normalerweise nur abgerufen, wenn Sie eine Nachricht anzeigen oder bearbeiten.
Außerdem: Es kann durchaus sein, dass Ihre zehn Plugins mit nur ein paar einfachen php-Anweisungen genauso viel Speicher benötigen wie zwei „schwerere“ Plugins. Sie können also nicht die Anzahl der Plugins vergleichen. Aber Sie können messen, wie viel PHP-Speicher Sie verbrauchen.

Wie viel Speicher verbraucht meine Website tatsächlich? Messen heißt wissen.

Glücklicherweise brauchen Sie dafür keine Programmierkenntnisse; es gibt ein einfaches Plugin dafür.
Gehen Sie zu Plugins und klicken Sie auf „Hinzufügen“, suchen Sie dann nach „Speicher“ und installieren Sie dieses kleine Plugin: ‚Server IP & Memory Usage Display‘.

Plugin Server IP & Memory Usage Display
Nachdem Sie es installiert haben, können Sie es in Ihrem WordPress-Admin unten sehen.

Ich habe bei uns eine Standard-WordPress-Installation verwendet, bei der nur das Plugin „Server IP & Memory Usage Display“, unsere eigenen Plugins und das (etwas ältere) TwentyFourteen-Theme aktiviert sind.
Dies ist ein Ausschnitt des angezeigten Textes:

Speicher: 21,57 von 128 MB (17%) | WP LIMIT: 40 MB

Was können wir daraus ableiten?

  • Allein um eine Standard-WordPress-Installation + einige kleine Plugins zu laden, benötigt man 21,57 Megabyte PHP-Speicher auf dem Server.
  • Der Server, auf dem ich diesen Test durchführe, hat eine maximale Zuweisung von 128 MB PHP-Speicher pro Aufruf.
  • Und es gibt einen Fehler im Plugin, der zwar die Verwendung von maximal 128 MB zulässt, aber ein Limit von 40 MB angibt. Das können Sie ignorieren.

Es ist ganz normal, dass eine durchschnittliche Website mit einer Reihe von Plugins etwa 45 Megabyte PHP-Speicher benötigt. Achten Sie also darauf, wenn Sie Ihren WordPress-Hosting-Anbieter auswählen. Wir garantieren Ihnen bei allen unseren Paketen mindestens 92 MB PHP-Speicher.

Welche Plugins verbrauchen viel Ladezeit?

Hinweis: Diese Liste ist nicht erschöpfend und kann je nach den Möglichkeiten Ihres WordPress-Hosting-Providers von Plugin zu Plugin variieren.
Diese Plugins können relativ viel PHP-Speicher verbrauchen oder Ihre Website erheblich verlangsamen. Glücklicherweise macht die Verwendung von (Objekt-)Caching einige Plugins schneller.

  • WPML
  • Jetpack
  • Woocommerce (insbesondere bei Verwendung mit WPML)
  • Noch ein Plugin für verwandte Beiträge
  • WP-PostViews
  • WP-Slimstat

Was passiert, wenn Sie mehr als die verfügbaren Megabytes an Speicher benötigen?

Dann kann WordPress nicht alle Plugins oder Daten laden und Sie erhalten die Meldung „fatal error: php memory exhausted“ auf Ihrer Seite. Und das passiert oft, bei Google finde ich schon eine halbe Million Treffer zu diesem Suchbegriff.

php memory exhausted

Wenn Sie das vermeiden wollen, haben Sie 2 Möglichkeiten: Vereinbaren Sie mit Ihrem Webhoster, dass Sie mehr PHP-Speicher erhalten, oder optimieren Sie. Unter dem Gesichtspunkt der Geschwindigkeit ist eine Optimierung immer besser. Aber wie können Sie Ihren PHP-Speicher reduzieren?

Speichernutzung reduzieren

In der Regel ist dies die einfachste und schnellste Option: Entfernen Sie WordPress-Plugins oder verwenden Sie ein besseres Theme. Ein besseres Theme bedeutet hier: eines, das den PHP-Speicher effizienter nutzt.
Benutzen Sie ein bestimmtes Plugin nicht mehr? Dann schalten Sie es aus (und entfernen Sie es aus Sicherheitsgründen auch).
Wenn es nur um die Geschwindigkeit geht, sollten Sie sich auch ein Plugin ansehen: P3 (Plugin Performance Profiler), das messen kann, wie viel Ladezeit jedes Plugin Ihrem Server abverlangt.

Sie können auch in der Datenbank Verbesserungen vornehmen: Schauen Sie sich Ihre Optionstabelle in der Datenbank an, gibt es dort irgendwelche sehr großen Werte, die autoload = yes haben? Setzen Sie sie auf autoload = no, damit nicht bei jeder Anfrage alles geladen wird. Befürchten Sie, dass Ihre Website dadurch beschädigt wird? Keine Sorge, wenn eine Option benötigt wird, die nicht standardmäßig geladen wird, wird sie trotzdem in einer kleinen separaten Anfrage abgerufen und alles funktioniert weiterhin.
Sie können auch die Transienten, die auf autoload = yes gesetzt sind, auf no setzen. Übrigens ist es auch viel besser, Transient/Objekt-Caching mit memcached oder APC zu machen. Das können Sie mit W3TotalCache erreichen.

Was auch immer Sie tun: Messen Sie den Unterschied. Normalerweise ist eine Website schneller, wenn sie weniger PHP-Speicher verbraucht. Das liegt daran, dass sie weniger Anweisungen laden muss. Aber das sagt nicht alles aus. Angenommen, ein kleines Plugin muss unter Wasser Informationen von einer anderen Website abrufen und das dauert jedes Mal 10 Sekunden, dann können Sie immer noch eine langsame Website haben und wenig PHP-Speicher verwenden.

Sie wollen Ihre Website auch schneller machen? Bei uns erhalten Sie standardmäßig Objekt-Caching und W3TotalCache arbeitet bei uns wirklich am schnellsten, auch in Kombination mit Ecommerce Hosting. Wir denken auch gerne mit Ihnen mit, um Ihre Website zu optimieren. Neben der Überprüfung Ihres PHP-Speichers können wir Ihnen helfen, Ihre Ladezeiten zu beschleunigen, um Besucher und Suchmaschinen wieder glücklich zu machen.

Ich will auch eine schnelle Seite