Object Caching speichert wiederkehrende Datenbankabfragen im Arbeitsspeicher und liefert sie beim nächsten Aufruf sofort aus, statt erneut MySQL zu befragen. In der Produktion sollten Sie einen persistenten Object Cache aktivieren, meistens mit Redis, denn das reduziert die Datenbanklast und beschleunigt Seitenaufbau spürbar. Voraussetzung dafür ist ein externer Speicher plus ein passendes object-cache.php Drop-in im wp-content-Verzeichnis.
Kurz gesagt:
- Ein persistentem Object Cache, vor allem mit Redis, kann die Datenbanklast deutlich reduzieren und die Seitenladezeiten bei hohem Traffic spürbar verbessern.
- Das Einrichten erfordert einen externen Redis-Server, die passende PHP-Extension und ein richtig konfiguriertes Drop-in im
wp-content.- Redis bietet durch optionale Persistenz und vielseitige Datenstrukturen die beste Skalierbarkeit für größere WooCommerce-Shops, während Memcached nur flüchtig arbeitet.
- Ohne das richtige Drop-in bleibt der Object Cache requests-gebunden und nutzt keinen externen Speicher, wodurch die Vorteile kaum zum Tragen kommen.
- Eine Überprüfung der Funktionalität erfolgt am besten mit Query Monitor und Redis-eigenen Kommandozeilen-Tools, um Cache-Hits und Fehlkonfigurationen zu erkennen.
Inhaltsverzeichnis
- Was ist WordPress Object Cache technisch gesehen?
- Redis, Memcached oder LiteSpeed LSMEM: Welches Backend passt?
- Wie richten Sie Redis als Object Cache ein?
- Wie prüfen Sie, ob der Object Cache wirklich läuft?
- Best Practices gegen typische Fallstricke
- Lohnt sich Object Caching für Ihr Projekt?
- Wie WERBEEINFACH Sie beim Object Cache unterstützt
- Quellen
- FAQ
Was ist WordPress Object Cache technisch gesehen?
WordPress cached von Haus aus schon einiges, aber eben nur für die Dauer eines einzelnen Requests. Genau das ist der Punkt, an dem viele Entwickler stolpern: Sie denken, „Object Caching“ laufe bereits, weil WordPress das Wort im Code verwendet. Tut es auch, nur eben nicht persistent.
Die Klasse WP_Object_Cache legt bei jedem Seitenaufruf einen frischen In-Memory-Speicher an, hält dort Ergebnisse von Datenbankabfragen fest und wirft alles wieder weg, sobald der Request beendet ist. Läuft eine Seite zehnmal in der Minute auf, werden dieselben Abfragen zehnmal neu ausgeführt. Das nennt man non-persistent Caching, und laut den WordPress Developer Resources ist genau das der Standardzustand jeder WordPress-Installation ohne zusätzliche Konfiguration.
Für dauerhaft gültige, aber zeitlich begrenzte Werte gibt es daneben die Transients API. Sie ist fast immer die bessere Wahl, wenn ein Plugin oder Theme Daten über mehrere Requests hinweg halten will, etwa API-Antworten oder berechnete Feed-Inhalte. Transients bringen eine Ablaufzeit mit und fallen automatisch auf die Datenbanktabelle wp_options zurück, falls kein persistenter Cache existiert. Die Transients API übernimmt damit eine andere Aufgabe als der Object Cache selbst: Sie ist für explizit befristete Daten gedacht, während der Object Cache generische Objekte während der Laufzeit hält.
Der entscheidende Hebel ist das Drop-in object-cache.php. Legen Sie diese Datei ins wp-content-Verzeichnis, überschreibt sie das Standardverhalten von WP_Object_Cache komplett und leitet Lese- und Schreibvorgänge an ein externes Backend weiter, etwa Redis oder Memcached. Ohne dieses Drop-in bleibt jeder Object Cache request-gebunden, egal wie viel RAM der Server hat.
Drei Dinge sollten Sie sich bei der Grundlage merken:
WP_Object_Cacheist von Natur aus flüchtig und überlebt keinen zweiten Request.- Die Transients API bietet Ablaufzeiten und einen DB-Fallback, ist aber kein Ersatz für einen echten persistenten Cache.
- Erst das Drop-in
object-cache.phpverbindet WordPress mit einem externen, request-übergreifenden Speicher.
Redis, Memcached oder LiteSpeed LSMEM: Welches Backend passt?
Die Wahl des Backends entscheidet, wie belastbar Ihr Setup unter echtem Traffic ist, nicht nur, wie schnell ein einzelner Testaufruf lädt. Redis und Memcached sind die beiden dominanten In-Memory-Systeme für WordPress, funktionieren aber nach unterschiedlicher Logik.
Redis speichert Daten optional persistent auf Festplatte und überlebt damit einen Neustart, während Memcached rein flüchtig arbeitet und nach einem Neustart komplett leer ist. Laut Memcached ist genau diese Schlankheit gewollt: Memcached verzichtet bewusst auf Zusatzfunktionen, um mit minimalem Overhead zu laufen und horizontal über viele Knoten zu skalieren. Redis dagegen bringt Datenstrukturen wie Listen, Sets und Hashes mit, kann als Session-Speicher dienen und unterstützt Pub/Sub-Mechanismen, was es zur deutlich vielseitigeren Wahl für WooCommerce-Shops mit Warenkorb- und Session-Logik macht.
LiteSpeed-Nutzer haben mit LSMEM eine dritte Option: einen lokalen Shared-Memory-Cache, der auf einem einzelnen Server sehr performant läuft. Der Haken laut einer Analyse von Atto WP liegt in der Skalierung: LSMEM funktioniert nicht über mehrere Server-Knoten hinweg und eignet sich daher kaum für verteilte oder Cluster-Umgebungen mit Load Balancing.
| Kriterium | Redis | Memcached | LiteSpeed LSMEM |
|---|---|---|---|
| Persistenz | Ja, optional konfigurierbar | Nein, rein flüchtig | Nein, lokal gebunden |
| Zusatzfunktionen | Datenstrukturen, Sessions, Pub/Sub | Keine, bewusst minimal | Keine |
| Skalierbarkeit | Single node und verteilt | Stark horizontal skalierbar | Nur Single node |
| Betriebskomplexität | Mittel, eigener Dienst nötig | Gering | Sehr gering, LiteSpeed-gebunden |
Für Multisite-Installationen gilt zusätzlich: Jede Subsite muss ihre Cache-Keys eindeutig kennzeichnen, sonst mischen sich Daten zwischen den Seiten. Ohne saubere Prefix-Strategie entstehen schwer nachvollziehbare Fehler, bei denen plötzlich Inhalte der falschen Subsite auftauchen.
Wie richten Sie Redis als Object Cache ein?
Der praktische Teil beginnt auf Serverebene, nicht in WordPress selbst. Sie brauchen einen laufenden Redis-Dienst, die PHP-Erweiterung phpredis und danach entweder ein Plugin oder ein manuell kopiertes Drop-in.
- Redis-Server installieren. Auf den meisten Linux-Distributionen reicht der Paketmanager, viele Hosting-Anbieter bieten Redis inzwischen auch als verwalteten Dienst an.
- phpredis-Erweiterung aktivieren. Ohne diese PHP-Extension kann WordPress nicht mit Redis kommunizieren, unabhängig vom gewählten Plugin.
- redis.conf konfigurieren. Setzen Sie
maxmemoryauf einen sinnvollen Wert und wählen Sieallkeys-lruals Eviction-Policy. Fehlt diese Konfiguration, drohen laut einem Setup-Guide für WordPress Redis Object Cache OOM-Fehler oder unkontrolliertes Verhalten, sobald der Speicher voll läuft. - Plugin oder Drop-in installieren. Am schnellsten geht es über WP-CLI:
wp plugin install redis-cache --activateinstalliert das Plugin,wp redis enableaktiviert das Drop-in. Das Plugin Redis Object Cache bringt genau diese CLI-Kommandos sowie ein Admin-UI mit, über das Sie den Cache-Status live einsehen. - wp-config.php ergänzen. Tragen Sie mindestens
WP_REDIS_HOST,WP_REDIS_PORTundWP_REDIS_PREFIXein. Der Prefix ist besonders bei Multisite oder mehreren WordPress-Installationen auf demselben Redis-Server entscheidend, um Key-Kollisionen zu verhindern. - Timeouts absichern. Ergänzen Sie
WP_REDIS_TIMEOUT,WP_REDIS_READ_TIMEOUTund aktivieren SieWP_REDIS_GRACEFUL, damit ein kurzer Verbindungsabbruch nicht die ganze Seite lahmlegt, sondern WordPress sauber auf die Datenbank zurückfällt.
Für Produktionsumgebungen empfehlen erfahrene Betreiber zusätzlich appendonly yes in der redis.conf, kombiniert mit einem überwachten maxmemory-Wert. Läuft Redis lokal auf demselben Server wie WordPress, sind Unix-Sockets minimal schneller als eine TCP-Verbindung über localhost.
Profi-Tipp: Setzen Sie bei entfernten Redis-Instanzen (etwa auf einem separaten Cache-Server) niemals auf Standard-Timeouts. Ein hängender Request wartet sonst mehrere Sekunden auf eine Antwort, bevor WordPress überhaupt merkt, dass die Verbindung tot ist. Ein aggressiv niedriger Timeout in Kombination mit WP_REDIS_GRACEFUL verhindert, dass ein Redis-Ausfall zum Totalausfall der Website wird.
Wer lieber ohne Plugin arbeitet, kopiert das passende object-cache.php direkt aus dem Plugin-Verzeichnis nach wp-content/object-cache.php. Das funktioniert, entzieht sich aber der komfortablen WP-CLI-Steuerung und den automatischen Updates, die das Plugin mitbringt.
Wie prüfen Sie, ob der Object Cache wirklich läuft?
Nach der Installation folgt die Kontrolle, und die überspringen erstaunlich viele Entwickler. Ein Plugin, das aktiviert aussieht, garantiert noch nicht, dass Redis tatsächlich Abfragen abfängt.
Query Monitor ist dafür das direkteste Werkzeug. Es zeigt an, ob ein persistentes Cache-Objekt aktiv ist und wie viele Datenbankabfragen trotzdem noch an MySQL durchgereicht werden. Bleibt die Query-Zahl hoch, stimmt entweder das Drop-in nicht oder einzelne Plugins umgehen den Cache gezielt. Zusätzlich lohnt ein direkter Check über die Kommandozeile: redis-cli ping muss mit PONG antworten, sonst läuft der Redis-Dienst gar nicht oder ist nicht erreichbar.
Auf Datenbankebene liefert Redis selbst die aussagekräftigsten Zahlen. Über redis-cli info stats sehen Sie keyspace_hits und keyspace_misses. Das Verhältnis der beiden Werte ergibt Ihre Cache-Hit-Rate, also den Anteil der Anfragen, die tatsächlich aus dem Cache bedient wurden statt neu berechnet zu werden.
Bei realen Benchmarks sinkt die Zahl der Datenbankabfragen häufig von mehreren Hundert auf wenige Dutzend pro Seitenaufruf, mit Reduktionen der Antwortzeit von 40 bis 60 Prozent, wie Messungen von TweaksWP zeigen.
Schlägt die Prüfung fehl, hilft eine kurze Checkliste zur Fehlersuche:
- Liegt
object-cache.phptatsächlich imwp-content-Verzeichnis und nicht nur im Plugin-Ordner? - Sind
WP_REDIS_HOSTundWP_REDIS_PORTkorrekt gesetzt und stimmen mit der tatsächlichen Redis-Instanz überein? - Zeigt das Plugin-Dashboard den Status „Connected“ oder eine Fehlermeldung?
- Wurde nach einer Konfigurationsänderung der Cache per
wp cache flushoderredis-cli FLUSHDBgeleert?
Best Practices gegen typische Fallstricke
Ein laufender Object Cache ist kein Selbstläufer. Die Stabilität entscheidet sich meist an drei Stellen: Eviction Policy, Multisite-Konfiguration und Deployment-Verhalten.
Setzen Sie auf einem dedizierten Redis-Server konsequent allkeys-lru als Eviction-Policy und definieren Sie maxmemory explizit. Ohne diese Kombination wächst der Speicherverbrauch unkontrolliert, bis Redis Anfragen mit Fehlermeldungen ablehnt statt einfach ältere Einträge zu verwerfen. Bei Multisite-Installationen brauchen Sie zusätzlich eine klare Prefix-Strategie pro Subsite, entweder über WP_REDIS_PREFIX oder durch getrennte Redis-Datenbanken je Site. Läuft mehr als eine WordPress-Installation auf demselben Redis-Server, gilt dieselbe Regel: eigene Prefixe, sonst mischen sich Caches unbemerkt.
Beim Deployment stellt sich regelmäßig die Frage, ob nach einem Release geflusht werden muss. Bei reinen Code-Änderungen ohne Datenstruktur-Umbau ist ein Flush meist unnötig, der Cache veraltet einfach organisch. Bei Änderungen an Datenbankschemata, Taxonomien oder Optionswerten sollten Sie dagegen gezielt flushen, um veraltete Objekte zu vermeiden.
- Eviction-Policy
allkeys-lruplus explizitesmaxmemoryverhindern OOM-Situationen. - Eindeutige Key-Prefixes pro Site schützen Multisite-Umgebungen vor Datenvermischung.
- Ein Flush gehört ins Deployment, sobald sich Datenstrukturen ändern, nicht bei jedem Release.
- Ein Monitoring-Alert auf Speicherauslastung meldet Probleme, bevor Nutzer sie merken.
Profi-Tipp: Richten Sie einen einfachen Cronjob oder ein Monitoring-Skript ein, das regelmäßig redis-cli info memory abfragt und Alarm schlägt, sobald die Auslastung nahe an maxmemory heranreicht. Das ist der Unterschied zwischen einem geplanten Eingriff und einem nächtlichen Ausfall.
Lohnt sich Object Caching für Ihr Projekt?
Nicht jedes Projekt braucht sofort Redis. Die Frage lässt sich anhand konkreter Signale beantworten, statt pauschal „ja“ oder „nein“ zu sagen.
- Prüfen Sie die Query-Last. Zeigt Query Monitor konstant hohe Abfragezahlen pro Seitenaufruf, vor allem bei WooCommerce mit Warenkorb- und Session-Logik, ist ein persistenter Object Cache fast immer die richtige nächste Investition.
- Schauen Sie auf die TTFB-Werte. Bleibt die Time to First Byte trotz Page-Cache-Lösung hoch, liegt das Problem oft in der Backend-Verarbeitung, genau dort, wo Object Caching greift.
- Klären Sie die Hosting-Situation. Nicht jeder Provider unterstützt Redis oder Memcached serverseitig. Fehlt diese Unterstützung, ist ein Wechsel des Hostings oft die Voraussetzung, bevor Sie überhaupt weiterplanen können.
- Ordnen Sie die Reihenfolge richtig. Page Caching und grundlegende Datenbankoptimierung sollten meist zuerst stehen. Object Caching ist der nächste Schritt, wenn diese Basics bereits sitzen und die Datenbanklast trotzdem hoch bleibt.
Wie WERBEEINFACH Sie beim Object Cache unterstützt
Ein Redis-Setup, das im Test funktioniert, aber unter echtem Black-Friday-Traffic zusammenbricht, ist ein Problem, das wir bei Werbeeinfach immer wieder in bestehenden WordPress-Projekten sehen. Die Konfiguration braucht eben nicht nur ein installiertes Plugin, sondern eine Eviction-Policy, Timeouts und Monitoring, die zum jeweiligen Hosting passen.
Werbeeinfach übernimmt genau diese technische Feinarbeit: die Implementierung von Redis oder Memcached, ein Performance-Audit Ihrer bestehenden Datenbankabfragen und die Automatisierung von Deployment-Routinen über WP-CLI, inklusive gezielter Cache-Flushes zum richtigen Zeitpunkt. Mit über 14 Jahren Erfahrung in der WordPress- und WooCommerce-Entwicklung kennen wir die Stolperfallen, die bei Multisite-Prefixes, Speicherlimits und entfernten Redis-Instanzen entstehen, aus eigenen Kundenprojekten. Für Shops mit hohem Bestellvolumen oder Content-Seiten mit starker Datenbanklast bauen wir das Setup so, dass es auch bei Lastspitzen stabil bleibt, eingebettet in einen Wartungsvertrag, der Monitoring und Updates dauerhaft übernimmt.
Wenn Sie unsicher sind, ob Ihr Projekt von einem persistenten Object Cache profitiert oder ob die aktuelle Konfiguration überhaupt richtig läuft, klären wir das in einer technischen Erstberatung. Sie bekommen eine ehrliche Einschätzung, bevor irgendetwas installiert wird. Für einen tieferen Blick auf verwandte Stellschrauben lohnt sich zusätzlich unser Leitfaden zur WordPress Performance-Optimierung, der Object Caching in einen größeren Optimierungsplan einordnet. Ergänzend hat Babylovegrowth eine Übersicht zu Caching-Plugins für WooCommerce zusammengestellt, falls Sie auch die Frontend-Seite des Cachings vergleichen wollen.

Quellen
Für den technischen Unterbau dieses Leitfadens lohnt sich ein Blick in die WordPress Developer Resources zu WP_Object_Cache sowie in die Dokumentation der Transients API. Wer das Redis-Plugin im Detail verstehen will, findet auf der Plugin-Seite von Redis Object Cache alle Konfigurationsoptionen, ergänzt durch den praxisnahen Setup-Guide zu Redis.
- WP_Object_Cache – Class – WordPress Developer Resources
- Redis Object Cache – WordPress plugin
- Memcached
- WordPress Redis Object Cache Setup Guide
FAQ
Wie lösche ich die object-cache.php Datei im wp-content-Verzeichnis?
Löschen Sie die Datei einfach per FTP oder Konsole aus dem wp-content-Ordner. WordPress fällt danach automatisch auf das nicht persistente Standardverhalten zurück, ganz ohne Fehlermeldung.
Sollte ich den WordPress Cache regelmäßig leeren?
Nein, ein routinemäßiges Leeren ist meist unnötig und kostet sogar Performance, weil der Cache erst wieder aufgebaut werden muss. Flushen Sie gezielt nach Deployments mit Datenstruktur-Änderungen, etwa über wp cache flush oder redis-cli FLUSHDB.
Was ist der Unterschied zwischen Object Cache und Page Cache?
Object Cache speichert einzelne Datenbankobjekte im Backend, während Page Cache ganze HTML-Seiten fertig gerendert ausliefert. Beide ergänzen sich: Page Cache entlastet PHP komplett, Object Cache greift bei jedem Request, der trotzdem noch dynamisch verarbeitet wird.
Brauche ich für einen Object Cache unbedingt Redis?
Nein, Memcached funktioniert ebenfalls als persistentes Backend und ist teils sogar ressourcenschonender. Redis bietet aber zusätzliche Datenstrukturen und Persistenz auf Festplatte, was es für WooCommerce-Shops mit Session-Handling meist zur robusteren Wahl macht.
Wie sicher ist eine Redis-Instanz für WordPress?
Redis sollte nie ohne Authentifizierung und nie offen ins öffentliche Internet erreichbar sein. Binden Sie den Dienst an localhost oder ein internes Netzwerk, setzen Sie ein Passwort über requirepass und beschränken Sie den Zugriff über die Firewall auf den Webserver selbst.
