Das pauschale Löschen aller Transients ist keine verlässliche Performance-Maßnahme. Gültige Transients sparen häufig Rechenzeit oder externe Anfragen. Werden sie entfernt, muss WordPress die Daten erneut erzeugen; die ersten Aufrufe können dadurch langsamer ausfallen.
WP-CLI eignet sich dennoch für eine kontrollierte Bereinigung. Du kannst abgelaufene Einträge entfernen, einzelne verdächtige Schlüssel untersuchen und das Ergebnis nachvollziehbar prüfen. Eine vollständige Löschung bleibt dabei die Ausnahme.
Was WordPress-Transients überhaupt speichern
Ein Transient ist ein zeitlich begrenzter Zwischenspeicher innerhalb der WordPress Transients API. Plugins, Themes und WordPress selbst können damit Ergebnisse ablegen, deren erneute Berechnung aufwendig wäre. Typische Inhalte sind Antworten externer Schnittstellen, berechnete Daten oder vorübergehend gespeicherte Statusinformationen.
Die hinterlegte Ablaufzeit beschreibt die maximale Lebensdauer. Nach ihrem Ablauf darf die Anwendung den Wert nicht mehr als gültig behandeln. Ein Transient kann allerdings auch früher verschwinden, etwa wenn ein Objekt-Cache geleert wird. Programmcode muss deshalb immer damit umgehen können, dass der erwartete Wert nicht mehr vorhanden ist.
Für die Wartung sind zwei Gruppen wichtig:
- Abgelaufene Transients dürfen regulär entfernt werden. Sie haben ihre vorgesehene Lebensdauer überschritten.
- Noch gültige Transients solltest du nur löschen, wenn du einen konkreten Schlüssel und einen nachvollziehbaren Grund hast.
Eine vollständige Löschung ist keine allgemeine Performance-Maßnahme. Sie kann sinnvoll sein, wenn ein Plugin nach einer Änderung fehlerhafte Daten weiterverwendet und der verantwortliche Cache-Schlüssel bekannt ist. Als Versuch nach dem Motto „mal sehen, ob es hilft“ liefert sie dagegen ein schlecht reproduzierbares Ergebnis.
Vor dem Löschen die richtige Installation prüfen
WP-CLI führt Befehle in der WordPress-Installation aus, auf die dein aktuelles Arbeitsverzeichnis oder deine übergebenen Parameter zeigen. Auf einem Server mit mehreren Projekten ist daher der erste Schritt keine Bereinigung, sondern eine kurze Zielkontrolle.
wp option get home
wp core version
Die ausgegebene Website-Adresse muss zur vorgesehenen Umgebung passen. Prüfe außerdem, ob du dich in Produktion, Staging oder einer lokalen Kopie befindest. Gerade bei gleich benannten Verzeichnissen verhindert diese Kontrolle, dass aus einer kleinen Wartungsaufgabe ein ungeplanter Live-Test wird.
Bei einer Multisite-Installation kannst du die betreffende Website explizit auswählen:
wp --url=https://example.org transient list
Der Parameter –url bestimmt in diesem Fall den Standort innerhalb des Netzwerks. Die Beispieldomain musst du natürlich durch die tatsächliche Adresse ersetzen.
Vorhandene Transients zuerst auflisten
Bevor du Daten entfernst, verschaffst du dir einen Überblick. Die offizielle Dokumentation zum WP-CLI-Transient-Befehl beschreibt die verfügbaren Operationen und Parameter.
wp transient list --fields=name,expiration --format=table
Die Liste hilft dir vor allem bei zwei Fragen: Gibt es auffällige Schlüssel eines bestimmten Plugins oder einer eigenen Funktion, und suchst du überhaupt im richtigen Speicherbereich? Aus der bloßen Anzahl der Einträge lässt sich dagegen noch kein Performance-Problem ableiten. Viele Transients können legitim sein, wenige können trotzdem eine teure Berechnung auslösen.
Wenn du bereits einen bestimmten Schlüssel kennst, kannst du dessen Wert einzeln abrufen:
wp transient get mein_cache_key
Produktionsdaten können dabei personenbezogene, vertrauliche oder schlicht sehr umfangreiche Inhalte enthalten. Kopiere die Ausgabe deshalb nicht ungeprüft in Tickets, Chats oder öffentlich zugängliche Protokolle.
Nur abgelaufene Transients entfernen
Für eine allgemeine, risikoarme Bereinigung ist der Schalter –expired die passende Auswahl:
wp transient delete --expired
Damit entfernst du reguläre Transients, deren Ablaufzeit bereits überschritten ist. Noch gültige Einträge bleiben bestehen und müssen nicht beim nächsten Seitenaufruf neu aufgebaut werden.
Site Transients bilden einen eigenen Namensraum. Sie werden unter anderem für installationsweite beziehungsweise in einer Multisite netzwerkweite Zwischenspeicher verwendet. Abgelaufene Einträge daraus bereinigst du separat:
wp site transient delete --expired
Beide Befehle kannst du nacheinander ausführen, sofern du beide Speicherbereiche bereinigen möchtest. Sie sind trotzdem kein Ersatz für eine Ursachenanalyse. Wenn abgelaufene Einträge ungewöhnlich schnell erneut anwachsen oder ein bestimmter Prozess fortlaufend neue Schlüssel erzeugt, liegt die eigentliche Aufgabe im verantwortlichen Plugin oder Anwendungscode.
Einen einzelnen fehlerhaften Transient löschen
Eine gezielte Löschung ist sinnvoll, wenn du den zuständigen Schlüssel eindeutig kennst. Das kann beispielsweise nach einer Anpassung eigener Integrationslogik der Fall sein: Der gespeicherte Wert entspricht noch dem alten Datenformat, während der Code bereits das neue Format erwartet.
wp transient delete mein_cache_key
Rufe anschließend genau die Funktion auf, die diesen Wert benötigt. Dadurch erkennst du, ob der Transient korrekt neu erzeugt wird. Bei einer externen API solltest du zusätzlich darauf achten, dass die Neuberechnung nicht unnötig oft erfolgt und Fehler der Gegenstelle sauber behandelt werden.
Vermeide dagegen eine pauschale Löschung aller Transients nach jedem Deployment. Ein Deployment ändert nicht automatisch sämtliche zwischengespeicherten Datenstrukturen. Wenn eine neue Version bestimmte Cache-Einträge ungültig macht, sollte der Deployment- oder Migrationsschritt genau diese Schlüssel löschen oder eine neue Schlüsselversion verwenden.
Das Ergebnis am betroffenen Vorgang prüfen
Nach der Bereinigung zählt nicht die Erfolgsmeldung des Befehls, sondern das Verhalten der Anwendung. Wiederhole denselben Vorgang, der den Verdacht ausgelöst hat: den Aufruf einer bestimmten Seite, einen Import, eine Schnittstellenabfrage oder eine Aktion im Backend.
Prüfe dabei:
- Wird die Seite oder Funktion weiterhin korrekt ausgeführt?
- Wird ein gezielt gelöschter Transient erwartungsgemäß neu angelegt?
- Treten PHP-, Datenbank- oder API-Fehler in den vorhandenen Logs auf?
- Ist eine beobachtete Verzögerung nach mehreren vergleichbaren Aufrufen reproduzierbar verändert?
Der erste Aufruf nach einer gezielten Löschung darf langsamer sein, weil der Wert neu berechnet werden muss. Für einen Vergleich solltest du deshalb zwischen dem kalten ersten Aufruf und späteren Aufrufen mit erneut gefülltem Cache unterscheiden.
Wenn nur eine bestimmte Seite langsam ist, bringt eine globale Cache-Bereinigung meist wenig Erkenntnis. Dann ist eine gezielte Analyse der langsamen WordPress-URL der bessere nächste Schritt.
Die Grenze bei persistenten Objekt-Caches
Ein persistenter Objekt-Cache speichert WordPress-Objekte über einzelne Seitenaufrufe hinaus, beispielsweise in einem separaten Cache-System. Bei einer solchen Konfiguration können Ablage, Sichtbarkeit und Löschverhalten von der konkreten Integration abhängen.
wp transient ist kein allgemeines Verwaltungswerkzeug für jedes Cache-Backend. Prüfe deshalb bei Redis-, Memcached- oder vergleichbaren Setups zusätzlich die Dokumentation und Werkzeuge der eingesetzten Integration. Ein vollständiges Leeren des Objekt-Caches betrifft außerdem weit mehr als nur den verdächtigen Transient und sollte entsprechend bewusst erfolgen.
Wenn du nicht sicher bestimmen kannst, ob ein Problem aus einem Transient, dem persistenten Objekt-Cache oder einer langsamen Berechnung stammt, trenne die Ebenen bei der Diagnose. Sonst verschwindet das Symptom kurzzeitig, ohne dass du weißt, welcher Eingriff dafür verantwortlich war.
Wann die Bereinigung die falsche Maßnahme ist
Transients zu löschen hilft nicht, wenn die langsame Ausführung an anderer Stelle entsteht. Dazu gehören langsame Datenbankabfragen, blockierende externe Dienste, umfangreiche Seitengenerierung oder ein überlasteter Server. Auch die Größe einer Transient-Liste beweist keinen solchen Zusammenhang.
Eine Bereinigung ist daher passend, wenn mindestens eine dieser Bedingungen erfüllt ist:
- Du möchtest abgelaufene Einträge im Rahmen einer kontrollierten Wartung entfernen.
- Du kennst den konkreten Schlüssel eines veralteten oder fehlerhaften Cache-Werts.
- Du prüfst nach einer Codeänderung bewusst, ob ein Transient korrekt neu aufgebaut wird.
Fehlt dieser Bezug, solltest du zuerst messen, welcher Vorgang tatsächlich Zeit verbraucht. Für wiederkehrende Wartung und eine breitere technische Einordnung findest du außerdem Informationen zu WordPress-Performance, Wartung und Sicherheit.
Gezielte Löschung schlägt den pauschalen Cache-Reset
WP-CLI macht das Löschen von Transients bequem. Gerade deshalb sollte die Auswahl präzise bleiben: Prüfe die Zielinstallation, liste die relevanten Einträge auf und entferne entweder nur abgelaufene Transients oder einen eindeutig identifizierten Schlüssel.
Damit erhältst du einen nachvollziehbaren Wartungsschritt statt eines schwer bewertbaren Rundumschlags. Bleibt eine Performance-Änderung aus, liefert das keinen Hinweis darauf, dass die Ursache in diesen Transients liegt. Die weitere Analyse kann dann an der tatsächlich langsamen Funktion ansetzen.
Häufige Fragen
Kurz beantwortet, damit du schneller einschätzen kannst, was für dein Projekt wichtig ist.
Kann ich alle WordPress-Transients bedenkenlos löschen?
WordPress und Plugins sollten gelöschte Transients neu erzeugen können. Eine vollständige Löschung kann trotzdem vorübergehend zusätzliche Last, langsamere erste Aufrufe oder erneute API-Anfragen verursachen. Lösche daher bevorzugt nur abgelaufene oder eindeutig identifizierte Einträge.
Wie lösche ich nur abgelaufene Transients mit WP-CLI?
Für reguläre Transients verwendest du „wp transient delete –expired“. Abgelaufene Site Transients entfernst du separat mit „wp site transient delete –expired“.
Macht das Löschen von Transients WordPress schneller?
Nicht automatisch. Die Bereinigung kann veraltete Einträge entfernen, behebt aber keine langsamen Datenbankabfragen, externen Dienste oder Serverprobleme. Gültige Transients zu löschen kann den nächsten Aufruf sogar verlangsamen, weil WordPress die Daten neu berechnen muss.
Was muss ich bei einem persistenten Objekt-Cache beachten?
Die tatsächliche Ablage und Löschung kann von der verwendeten Cache-Integration abhängen. WP-CLI ersetzt nicht die Diagnosewerkzeuge für Redis, Memcached oder andere Backends. Leere den gesamten Objekt-Cache nur, wenn du die Auswirkungen auf die Anwendung kennst.