WordPress speichert alles in einer MySQL- (oder MariaDB-) Datenbank. Mit der Zeit bläht sich diese Datenbank auf und sammelt unnötige Daten, was Abfragen und die gesamte Website verlangsamen kann. Eine größere Datenbank bedeutet längere Backup-Zeiten, langsame SELECT-Abfragen und einen erhöhten Time To First Byte (TTFB).
In diesem umfassenden Leitfaden für Entwickler gehen wir durch die fortgeschrittene Datenbankoptimierung, von der einfachen Bereinigung über die Analyse von Abfragen bis hin zur InnoDB-Konfiguration.
Warum eine volle Datenbank WordPress langsam macht
Im Jahr 2026, wenn ein TTFB unter 100ms der Standard ist, ist eine “schwere” Datenbank ein Anker für Ihre Website. Selbst wenn Sie einen superschnellen Server (PHP 8.4, NVMe) haben, können schlecht optimierte SQL-Abfragen die Leistung killen.
Was macht die WordPress-Datenbank langsam?
- Bloatwäre (Datenüberschuss): Beitragsrevisionen, Kommentarspam, verwaiste Metadaten.
- Autoloaded Options: Daten, die bei jedem Seitenaufruf geladen werden, auch wenn sie nicht verwendet werden.
- Fehlende Indizes: Abfragen, die die gesamte Tabelle scannen müssen (Full Table Scan).
- Tabellenfragmentierung: Lücken in den Daten, die die Dateigröße auf der Festplatte erhöhen.
WordPress-Datenbank bereinigen und Revisionen löschen
Beginnen wir mit dem Entfernen des Mülls. Sie können dies mit einem Plugin (WP-Optimize) tun, aber als Entwickler sollten Sie wissen, wie man es “manuell” mit SQL oder WP-CLI erledigt.
Beitragsrevisionen in WordPress löschen
Jedes Mal, wenn Sie auf “Entwurf speichern” klicken, wird eine neue Kopie des Beitrags erstellt. Bei langen Bearbeitungssitzungen können Sie Hunderte von Revisionen für einen einzigen Artikel haben.
SQL-Abfrage zum Prüfen der Revisionsanzahl:
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';Löschen von Revisionen (SQL):
DELETE FROM wp_posts WHERE post_type = 'revision';Empfohlen: Verwenden Sie WP-CLI (Sicherer):
wp post delete $(wp post list --post_type='revision' --format=ids) --forceSpam-Kommentare und Papierkorb leeren
Es macht keinen Sinn, Spam oder gelöschte Beiträge zu behalten.
SQL:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
DELETE FROM wp_comments WHERE comment_approved = 'trash';Abgelaufene Transients löschen
Transients sind Cache-Daten, die in der Datenbank (wp_options) gespeichert werden. Manchmal werden abgelaufene Transients nicht automatisch entfernt.
SQL zum Löschen abgelaufener Transients:
DELETE FROM wp_options WHERE option_name LIKE ('_transient_timeout%') OR option_name LIKE ('_transient_%');WP-CLI (Beste Methode):
wp transient delete --allwp_options optimieren und Autoload reduzieren
Die Tabelle wp_options enthält eine Spalte autoload. Wenn diese auf yes gesetzt ist, wird diese Option bei jedem Seitenaufruf geladen. Plugins hinterlassen hier oft Müll nach der Deinstallation.
Autoload-Größe der wp_options-Tabelle prüfen
Prüfen Sie, wie viele Daten (in Bytes) automatisch geladen werden:
SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload = 'yes';Wenn das Ergebnis 800 KB - 1 MB überschreitet, haben Sie ein Problem.
Die größten Autoload-Optionen finden
SELECT option_name, LENGTH(option_value) as option_size
FROM wp_options
WHERE autoload = 'yes'
ORDER BY option_size DESC
LIMIT 10;Sie werden hier oft alte Daten von Cache-Plugins, Buildern oder Logs finden. Wenn das Plugin nicht mehr verwendet wird, können Sie diese Optionen sicher löschen oder autoload auf no ändern.
MyISAM-Tabellen in InnoDB umwandeln
Im Jahr 2026 sollten Sie die MyISAM-Engine nicht mehr verwenden. InnoDB ist der Standard und bietet:
- Sperren auf Zeilenebene (Row-level locking): MyISAM sperrt die gesamte Tabelle beim Schreiben.
- ACID-Transaktionen: Datensicherheit.
- Fremdschlüssel: Konsistenz der Beziehungen.
Tabellen-Engine in MySQL prüfen
SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'ihr_datenbankname';Engine mit ALTER TABLE umstellen
Wenn Sie MyISAM-Tabellen finden, konvertieren Sie sie:
ALTER TABLE wp_posts ENGINE=InnoDB;
ALTER TABLE wp_comments ENGINE=InnoDB;
ALTER TABLE wp_options ENGINE=InnoDB;
-- und so weiter für alle TabellenMySQL-Indizes für WordPress anlegen
WordPress hat normalerweise gute Standardindizes, aber Plugins fügen oft eigene Tabellen ohne ordnungsgemäße Indizes hinzu. Ein fehlender Index bei einer WHERE- oder JOIN-Abfrage bedeutet, dass MySQL jede Zeile in der Tabelle scannen muss.
Warum ist die Bestellsuche in WooCommerce ohne Index langsam?
Wenn Sie einen Shop mit 100.000 Bestellungen haben und ein Plugin Bestellungen nach meta_key ohne Index sucht, kann die Seite “Mein Konto” 10 Sekunden zum Laden benötigen.
Lösung: Fügen Sie Indizes zu Spalten hinzu, nach denen Sie häufig suchen oder sortieren.
CREATE INDEX idx_meta_key_value ON wp_postmeta (meta_key(191), meta_value(50));(Hinweis: Indizierung von meta_value ist schwierig, da es TEXT ist. Vermeiden Sie die Suche nach meta_value, wenn möglich).
Wie verhindert man Datenbank-Müll mit der wp-config.php?
Statt ständig aufzuräumen, ist es besser, nicht zu verschmutzen. Konfigurieren Sie WordPress klug.
Revisionen, Papierkorb und Autosave begrenzen
Fügen Sie dies zur wp-config.php hinzu:
// Auf 5 letzte Versionen begrenzen
define( 'WP_POST_REVISIONS', 5 );
// Papierkorb alle 7 Tage leeren (Standard ist 30)
define( 'EMPTY_TRASH_DAYS', 7 );
// Autosave-Intervall erhöhen (weniger AJAX-Anfragen im Editor)
define( 'AUTOSAVE_INTERVAL', 300 ); // SekundenDateieditor in WordPress deaktivieren
Für Sicherheit und Hygiene:
define( 'DISALLOW_FILE_EDIT', true );Langsame Datenbankabfragen mit Query Monitor finden
Raten Sie nicht, was die Seite verlangsamt. Installieren Sie das Plugin Query Monitor. Nach der Installation sehen Sie in der Admin-Leiste die Seitengenerierungszeit und die Anzahl der SQL-Abfragen.
- Klicken Sie auf die Statistiken in der Leiste.
- Gehen Sie zum Tab “Queries”.
- Sortieren Sie nach “Time”.
Wenn Sie eine Abfrage sehen, die 0,5s oder mehr dauert, das ist Ihr Optimierungsziel. Es stammt oft von einem schlecht geschriebenen Plugin (“Zuletzt angesehene Produkte”, “Besucherzähler” usw.).
Checkliste zur WordPress-Datenbankoptimierung
- Backup: Machen Sie immer ein Backup, bevor Sie an der Datenbank arbeiten.
- Engine: Stellen Sie sicher, dass alle Tabellen InnoDB sind.
- Autoload: Prüfen Sie die Größe der
autoloaded options(Ziel < 800KB). - Bereinigung: Entfernen Sie Revisionen, Spam und abgelaufene Transients.
- Indizes: Prüfen Sie, ob schwere Abfragen Indizes verwenden.
- Prävention: Konfigurieren Sie
wp-config.php, um die Müllproduktion zu begrenzen.
Wenn Ihre Datenbank schlank und schnell ist, verbraucht PHP weniger Speicher und die Benutzer erhalten Inhalte sofort. Das ist die Grundlage für modernes WordPress.
Mehr über unsere WordPress-Geschwindigkeitsoptimierung.







