Du optimierst deine WordPress-Datenbank in fünf Schritten. Zuerst misst du, ob die Datenbank wirklich bremst. Dann ziehst du ein vollständiges Backup und löschst Datenmüll wie Spam, abgelaufene Transients und überzählige Revisionen. Danach optimierst du die Tabellen und misst das Ergebnis erneut. Bei WooCommerce kommen Bestellungen, Warenkorb-Sitzungen und die Umstellung auf HPOS dazu. Hier bekommst du die Reihenfolge, die wir bei WordPress- und WooCommerce-Projekten für sinnvoll halten, mit Befehlen, Risiken und klaren Grenzen.
Kurz gesagt
- Erst diagnostizieren, dann löschen: Eine hohe Time to First Byte und auffällige Abfragen im Query Monitor zeigen, ob die Datenbank die Ursache ist. Oft sind es Bilder, Skripte oder fehlendes Caching.
- Ohne Backup keine Bereinigung: Datenbank exportieren, am besten in einer Staging-Kopie testen und danach Login, Formulare, Warenkorb und Checkout prüfen.
- Geringes Risiko: Spam, Papierkorb und abgelaufene Transients. Erst prüfen: Revisionen, verwaiste Metadaten, Tabellen gelöschter Plugins.
- WooCommerce: Bestellungen nie pauschal löschen. Alte Sessions, Checkout-Entwürfe und fehlgeschlagene Bestellungen lassen sich gezielt bereinigen, HPOS entlastet die Bestelltabellen dauerhaft.
- Regelmäßig statt einmalig: Datenbankpflege gehört in die laufende Wartung, nicht in die Notfallreparatur.
Inhaltsverzeichnis
- Liegt das Problem wirklich in der Datenbank?
- Vor dem ersten Klick: Backup und Staging
- Was du sicher löschen kannst und was bleibt
- Revisionen dauerhaft begrenzen
- Plugin, phpMyAdmin oder WP-CLI: drei Wege zur Optimierung
- WooCommerce-Datenbank optimieren: Bestellungen, Sessions und HPOS
- So prüfst du, ob die Optimierung gewirkt hat
- Wie oft solltest du die Datenbank warten?
- Datenbankpflege als Teil deiner WordPress-Wartung
- Häufige Fragen
- Quellen
Liegt das Problem wirklich in der Datenbank?
Die häufigste Zeitverschwendung bei der Datenbankoptimierung ist eine Bereinigung auf Verdacht. Du löschst tausende Revisionen, die Datenbank schrumpft um ein paar Megabyte, und die Seite lädt genauso langsam wie vorher. Der Grund: Viele Ladezeitprobleme entstehen im Frontend, durch große Bilder, zu viele Skripte oder fehlendes Seiten-Caching. Prüfe deshalb zuerst, wo die Zeit tatsächlich verloren geht.
Schritt 1: Serverantwortzeit messen
Ein guter erster Hinweis ist die Time to First Byte (TTFB). Sie zeigt, wie lange der Server braucht, bis er das erste Byte der Seite ausliefert. Ist die TTFB bei ungecachten Seiten deutlich hoch, obwohl das Frontend schlank ist, rückt der Server und damit oft auch die Datenbank in den Fokus. Wie du die TTFB misst und gezielt senkst, zeigen wir dir in unserem Beitrag TTFB in WordPress senken.
Schritt 2: Abfragen sichtbar machen
Das kostenlose Plugin Query Monitor zeigt Datenbankabfragen mit Hinweisen auf langsame, doppelte oder fehlerhafte Queries. Du kannst die Liste nach Abfragetyp, verantwortlicher Komponente und aufrufender Funktion filtern. So siehst du schnell, ob ein bestimmtes Plugin, das Theme oder der WordPress-Core die Last verursacht. Zusätzlich listet Query Monitor PHP-Fehler und HTTP-API-Aufrufe, die ebenfalls bremsen können.
Wichtig: Query Monitor verlangsamt die Seitengenerierung selbst geringfügig und braucht bei hunderten Abfragen mehr Speicher. Nutze es zur Analyse, am besten auf Staging, und deaktiviere es danach wieder.
Wenn du mit der Kommandozeile arbeitest, kannst du mit wp profile queries Abfragen und ihre Ausführungszeiten profilieren. Der Befehl gehört zum Profile-Paket von WP-CLI und muss gegebenenfalls zusätzlich installiert werden.

Schritt 3: Autoload-Daten prüfen
Ein häufiger Bremsklotz liegt in der Tabelle wp_options. Optionen mit aktiviertem Autoload lädt WordPress bei jedem Seitenaufruf, egal ob sie gebraucht werden. Viele Plugins legen hier Einstellungen, Caches oder Logdaten ab und räumen bei der Deinstallation nicht auf. Mit dieser Abfrage in phpMyAdmin siehst du, wie groß die automatisch geladenen Daten sind (passe das Präfix wp_ an deine Installation an):
SELECT SUM(LENGTH(option_value)) / 1024 AS autoload_kb
FROM wp_options
WHERE autoload NOT IN ('no', 'off', 'auto-off');
Und so findest du die größten Einträge:
SELECT option_name, LENGTH(option_value) / 1024 AS kb
FROM wp_options
WHERE autoload NOT IN ('no', 'off', 'auto-off')
ORDER BY kb DESC
LIMIT 20;
Erkennst du Optionsnamen von Plugins, die längst nicht mehr installiert sind, hast du einen konkreten Ansatzpunkt. Lösche solche Einträge aber erst, wenn du sicher bist, dass kein aktives Plugin sie nutzt.
Vor dem ersten Klick: Backup und Staging
Jede Bereinigung verändert Daten unwiderruflich. Deshalb gilt ohne Ausnahme: erst sichern, dann optimieren.
- Vollständiges Backup erstellen: Exportiere die Datenbank als SQL-Datei, per Backup-Plugin, über das Hosting-Panel oder mit
wp db export. Sichere zusätzlich die Dateien, falls du auch Plugins entfernst. - Backup prüfen: Ein Backup zählt erst, wenn du weißt, dass es sich zurückspielen lässt. Prüfe zumindest die Dateigröße und ob die Datei vollständig ist.
- Auf Staging testen: Führe die Bereinigung zuerst auf einer Kopie der Website durch. Viele Hoster bieten dafür eine Staging-Funktion an.
- Kernfunktionen testen: Prüfe nach der Optimierung Login, Kontaktformulare, Suche und bei Shops unbedingt Warenkorb und Checkout.
- Ruhige Zeit wählen: Gehe live, wenn wenig Traffic herrscht, und plane bei großen Shops ein kurzes Wartungsfenster ein, denn das Optimieren großer Tabellen kann den Server kurzzeitig belasten.
Was du sicher löschen kannst und was bleibt
Nicht jeder Datensatz, den ein Cleanup-Plugin als „überflüssig“ markiert, ist es auch. Diese Übersicht hilft dir bei der Einschätzung:
| Datentyp | Risiko | Empfehlung |
|---|---|---|
| Spam-Kommentare und Papierkorb | gering | regelmäßig löschen |
| Abgelaufene Transients | gering | löschen, WordPress baut sie bei Bedarf neu auf |
| Auto-Drafts | gering bis mittel | vorher kurz prüfen, ob noch an Inhalten gearbeitet wird |
| Post-Revisionen | mittel | ältere löschen, aktuelle Versionen behalten |
| Verwaiste Post-, Kommentar- und Term-Metadaten | mittel | kontrolliert löschen, vorher Backup |
| Tabellen gelöschter Plugins | mittel bis hoch | nur löschen, wenn das Plugin sicher nicht mehr genutzt wird |
| WooCommerce-Bestellungen | hoch | nur nach Prüfung der Aufbewahrungspflichten |
| Nutzer, Produkte, Seiten | hoch | nicht per Datenbank-Cleanup anfassen |
Zu den Transients gibt es ein Detail, das oft übersehen wird: Die Core-Funktion delete_expired_transients löscht abgelaufene Transients aus der Datenbank, sofern kein externer Object Cache wie Redis oder Memcached genutzt wird. Läuft ein Object Cache, liegen die Transients dort und nicht in wp_options. Ein Cleanup in der Datenbank bringt dann wenig.
Bei Plugin-Tabellen hilft ein Blick auf den Tabellennamen: Tabellen wie wp_xyz_logs verraten meist, welches Plugin sie angelegt hat. Ist es seit Monaten deinstalliert und brauchst du keine Daten mehr daraus, kannst du die Tabelle nach dem Backup entfernen. Bei Statistik-, Formular- oder Newsletter-Plugins lohnt der zweite Blick. Dort stecken oft Daten, die du als Nachweis oder aus Datenschutzgründen bewusst aufbewahren oder bewusst löschen musst.
Revisionen dauerhaft begrenzen
Revisionen sind praktisch, wenn du eine ältere Fassung eines Beitrags zurückholen willst. Ohne Begrenzung speichert WordPress aber jede Version. Bei einem Blog mit vielen langen Beiträgen, die oft überarbeitet werden, wächst wp_posts dadurch spürbar.
Mit einer Zeile in der wp-config.php begrenzt du die Zahl der Revisionen pro Beitrag:
define( 'WP_POST_REVISIONS', 3 );
Die Zeile gehört oberhalb des Kommentars „That’s all, stop editing!“. Bestehende Revisionen bleiben davon unberührt. Die räumst du einmalig mit einem Plugin oder per WP-CLI auf. Drei bis fünf Revisionen sind für die meisten Unternehmensseiten ein guter Kompromiss zwischen Sicherheit und schlanker Datenbank.
Plugin, phpMyAdmin oder WP-CLI: drei Wege zur Optimierung
Nach der Bereinigung folgt die eigentliche Tabellenoptimierung. Sie ordnet die Daten neu, gibt ungenutzten Platz frei und aktualisiert die Statistiken, die MySQL oder MariaDB für schnelle Abfragen nutzt. Welcher Weg zu dir passt, hängt von deinem Zugang und deiner Erfahrung ab.
| Weg | Geeignet für | Vorteile | Nachteile |
|---|---|---|---|
| Cleanup-Plugin (z. B. WP-Optimize, WP-Sweep) | Websites ohne Server-Zugang, Einsteiger | bequeme Oberfläche, teils planbar | zusätzliches Plugin, Kategorien oft grob |
| phpMyAdmin | gezielte Eingriffe, einzelne Tabellen | volle Kontrolle, SQL-Abfragen möglich | Fehler wirken sofort, kein Rückgängig |
| WP-CLI | Agenturen, Entwickler, große Datenbanken | schnell, skriptbar, keine Timeouts im Browser | SSH-Zugang nötig |
Mit einem Plugin
Installiere ein etabliertes Cleanup-Plugin, wähle aus der Tabelle oben die Kategorien mit geringem Risiko und starte die Bereinigung. Aktiviere die Tabellenoptimierung im selben Durchgang. Viele Plugins bieten eine zeitgesteuerte Bereinigung an. Nutze sie nur für unkritische Kategorien wie Spam und Transients, nie für Metadaten oder Plugin-Tabellen.
Manuell über phpMyAdmin
- Melde dich im Hosting-Panel an und öffne phpMyAdmin.
- Wähle links die Datenbank deiner WordPress-Installation.
- Markiere die Tabellen, die du optimieren willst, oder wähle „Alle auswählen“.
- Wähle im Auswahlmenü unter der Tabelle „Optimiere Tabelle“.
Bei InnoDB-Tabellen meldet phpMyAdmin dabei häufig, dass die Tabelle neu erstellt und analysiert wird. Das ist normal und kein Fehler.
Per WP-CLI
Mit wp db optimize optimierst du alle Tabellen über die Kommandozeile. Der Befehl ruft im Hintergrund mysqlcheck mit der Option --optimize=true auf. Ein typischer Ablauf sieht so aus:
wp db export backup-vor-optimierung.sql
wp transient delete --expired
wp post delete $(wp post list --post_type=revision --format=ids) --force
wp db optimize
Der Revisionsbefehl löscht alle Revisionen. Wenn du ältere Fassungen behalten willst, nutze lieber ein Plugin mit Altersfilter. Bei sehr vielen Revisionen arbeitest du besser in Teilmengen, damit die Befehlszeile nicht zu lang wird.
WooCommerce-Datenbank optimieren: Bestellungen, Sessions und HPOS
Ein Onlineshop erzeugt deutlich mehr Daten als eine Unternehmenswebsite: Bestellungen, Kundensitzungen, geplante Aufgaben, Logs von Zahlungs- und Versand-Plugins. Hier ist Vorsicht wichtiger als Tempo, denn ein falscher Klick löscht Umsatzbelege.
Bestellungen nur mit Plan bereinigen
Abgeschlossene Bestellungen sind Geschäftsunterlagen. In Deutschland unterliegen sie handels- und steuerrechtlichen Aufbewahrungspflichten. Kläre mit deiner Steuerberatung, wie lange du welche Daten aufbewahren musst und ob sie außerhalb des Shops, etwa in der Buchhaltung, bereits gesichert sind. Erst dann ist ein Löschen alter Bestellungen überhaupt ein Thema.
Unkritischer sind Datensätze ohne Umsatzbezug. Mit Bulk Cleanup für WooCommerce lassen sich Checkout-Entwürfe, veraltete fehlgeschlagene Bestellungen und abgelaufene Warenkorb-Sitzungen nach festgelegten Altersgrenzen bereinigen. Bestellungen kannst du dort nach Status und Alter filtern. Prüfe die Treffer immer in der Vorschau, bevor du löschst.
HPOS: die nachhaltigste Optimierung für Shops
Früher speicherte WooCommerce Bestellungen als Beitragstyp in wp_posts und alle Details in wp_postmeta. Bei tausenden Bestellungen wird diese Tabelle zum Engpass, weil sich Bestellungen dort Platz mit Seiten, Produkten und Revisionen teilen. High-Performance Order Storage (HPOS) nutzt eigene, für WooCommerce-Abfragen optimierte Tabellen für Bestellungen und Adressen. Indizes verringern Lese- und Schreibvorgänge und entlasten die übrigen Tabellen.
Für neue Shops ist HPOS ab WooCommerce 8.2 der Standard. Ältere Shops müssen oft noch migriert werden. So gehst du vor:
- Prüfe unter WooCommerce, Einstellungen, Erweitert, Funktionen, welcher Bestellspeicher aktiv ist.
- Kontrolliere, ob alle Erweiterungen mit HPOS kompatibel sind. WooCommerce zeigt inkompatible Plugins an.
- Aktiviere die Synchronisation im Kompatibilitätsmodus, damit beide Speicher parallel befüllt werden.
- Teste auf Staging Bestellungen, Rückerstattungen, Rechnungs-Plugins und Schnittstellen zu Warenwirtschaft oder Buchhaltung.
- Lege erst danach HPOS als führenden Bestellspeicher fest.
Gerade bei individuellen Schnittstellen oder selbst entwickelten Plugins, die direkt auf wp_postmeta zugreifen, lohnt sich die Prüfung durch jemanden, der den Code lesen kann. Sonst fehlen nach der Umstellung plötzlich Daten im ERP.
Geplante Aufgaben und Logs im Blick behalten
WooCommerce und viele Erweiterungen nutzen den Action Scheduler für Hintergrundaufgaben. Erledigte und fehlgeschlagene Aufgaben bleiben eine Zeit lang in eigenen Tabellen gespeichert. Häufen sich dort hunderttausende Einträge, ist das meist ein Symptom: Ein Plugin plant Aufgaben in einer Endlosschleife oder Aufgaben scheitern dauerhaft. Sieh unter WooCommerce, Status, Geplante Aktionen nach, welche Hooks dominieren, und behebe die Ursache, statt nur zu löschen.
So prüfst du, ob die Optimierung gewirkt hat
Eine Optimierung ohne Vorher-nachher-Vergleich ist Bauchgefühl. Miss deshalb dieselben Werte wie bei der Diagnose:
- TTFB ungecachter Seiten, zum Beispiel einer Kategorieseite oder der Shop-Suche, mehrfach gemessen.
- Anzahl und Dauer der Abfragen im Query Monitor auf denselben Seiten.
- Größe der Autoload-Daten mit der SQL-Abfrage von oben.
- Backend-Tempo beim Öffnen der Bestellübersicht oder der Beitragsliste.
Bei der Datenbankgröße ist Vorsicht geboten: Die Angabe in phpMyAdmin kann gerade bei InnoDB-Tabellen vom tatsächlichen Speicherverbrauch auf dem Server abweichen. Ob du Speicherplatz gewonnen hast, zeigt dir die Übersicht in deinem Hosting-Panel verlässlicher. Und selbst wenn die Datenbank kaum kleiner wird, kann die Seite schneller sein, weil die entscheidende Verbesserung in einer schlankeren wp_options oder in besser genutzten Indizes liegt.
Wenn sich die Werte nicht verbessern, liegt die Bremse woanders. Dann lohnt der Blick auf den gesamten Ablauf, den wir in unserem Workflow zur Ladezeit-Optimierung beschreiben.
Wie oft solltest du die Datenbank warten?
Eine feste Regel gibt es nicht. Der Rhythmus hängt davon ab, wie viel auf deiner Website passiert. Aus unserer Sicht hat sich diese Orientierung bewährt:
| Website-Typ | Leichte Pflege (Spam, Transients) | Gründliche Prüfung (Autoload, Metadaten, Tabellen) |
|---|---|---|
| Unternehmenswebsite mit wenigen Änderungen | vierteljährlich | einmal im Jahr und nach Plugin-Wechseln |
| Blog oder Magazin mit viel Content | monatlich | halbjährlich |
| WooCommerce-Shop | monatlich | vierteljährlich und vor Saisonspitzen |
Dazu kommen Anlässe, die eine Prüfung außerhalb des Rhythmus rechtfertigen: nach dem Entfernen großer Plugins, nach einem Relaunch, nach Datenimporten und wenn das Backend spürbar träger wird. Wächst dein Shop stark, wird Datenbankpflege zur Architekturfrage. Wie du WordPress dafür aufstellst, liest du in unserem Leitfaden zur WordPress-Skalierbarkeit für Unternehmen.
Datenbankpflege als Teil deiner WordPress-Wartung
Du willst dich nicht selbst durch SQL-Abfragen, Plugin-Tabellen und HPOS-Migrationen arbeiten? Bei Werbeeinfach kümmern wir uns seit über 14 Jahren um WordPress-Websites und WooCommerce-Shops. Datenbankpflege ist für uns kein einmaliger Kraftakt, sondern Teil einer stabilen und sicheren Website: mit Backup vor jedem Eingriff, Tests auf Staging und einer transparenten Dokumentation, was wir geändert haben.
In unserer WordPress Wartung betreuen wir deine Website langfristig, inklusive Performance-Optimierung und Sicherheit. Ist dein Shop gerade akut langsam, wirft er Fehler oder funktioniert nach einer Bereinigung etwas nicht mehr, hilft dir unsere WordPress Problemlösung gezielt weiter.
Häufige Fragen
Macht eine Datenbankoptimierung meine Website automatisch schneller?
Nein, nicht automatisch. Sie wirkt dann deutlich, wenn die Datenbank tatsächlich der Engpass ist, etwa durch große Autoload-Daten, langsame Abfragen oder eine überlastete wp_postmeta. Liegt das Problem bei Bildern, Skripten oder fehlendem Caching, bringt die Bereinigung kaum messbaren Gewinn.
Kann ich beim Optimieren meine Website beschädigen?
Ja, wenn du die falschen Daten löschst, etwa Plugin-Tabellen, die noch genutzt werden, oder Bestellungen. Das reine Optimieren der Tabellen ist dagegen unkritisch. Mit einem geprüften Backup und einem Test auf Staging kannst du jeden Fehler rückgängig machen.
Brauche ich dauerhaft ein Cleanup-Plugin?
Nicht unbedingt. Du kannst ein Plugin für die Bereinigung nutzen und es danach wieder deaktivieren. Revisionen begrenzt du dauerhaft über die wp-config.php, abgelaufene Transients räumt WordPress selbst auf. Jedes zusätzliche Plugin ist auch Code, der gepflegt werden muss.
Ist HPOS für jeden WooCommerce-Shop sinnvoll?
Für wachsende Shops mit vielen Bestellungen ist HPOS die nachhaltigste Datenbankoptimierung, weil Bestellungen nicht mehr mit Seiten und Produkten um dieselbe Tabelle konkurrieren. Voraussetzung ist, dass alle Erweiterungen und Schnittstellen kompatibel sind. Teste die Umstellung deshalb immer zuerst auf Staging.
Quellen
- Query Monitor, WordPress.org Plugin-Verzeichnis
- wp profile, WP-CLI-Dokumentation
- delete_expired_transients, WordPress Developer Reference
- wp-config.php, WordPress Developer Resources
- wp db optimize, WP-CLI-Dokumentation
- Bulk Cleanup Documentation, WooCommerce
- High-Performance Order Storage Documentation, WooCommerce




