
🧹 So entfernen Sie ein WordPress-Plugin vollständig: schrittweise Datenbank- und Dateibereinigung
Ihre Website wird quälend langsam, Backups schwellen auf ein Gigabyte an, und phpMyAdmin zeigt Dutzende Tabellen mit Präfixen von Plugins, die Sie vor einem Jahr „gelöscht" haben. Kommt Ihnen das bekannt vor?
Die standardmäßige Schaltfläche „Löschen" im Plugin-Bereich entfernt lediglich den Ordner aus wp-content/plugins. Alles andere (Tabellen, Optionen, Cron-Jobs, Shortcodes in Beiträgen) verbleibt in der Datenbank und auf dem Datenträger. Entwickler handhaben die Bereinigung unterschiedlich: Einige räumen gewissenhaft über uninstall.php auf, während andere alles unberührt lassen.
Nachfolgend finden Sie einen vollständigen Algorithmus, um ein Plugin spurlos zu entfernen: vom Dashboard bis hin zu manuellem SQL. Mit Backups in jeder Phase und präzisen Anleitungen für gängige Plugins.
💡 Kurzer Überblick:
- Das Löschen über das Dashboard ist nur der erste Schritt; Tabellen, Shortcodes und Cron-Jobs erfordern eine separate Bereinigung
- Erstellen Sie vor allen Datenbankoperationen ein vollständiges Backup (mit den integrierten Hosting-Tools oder einem Plugin)
- WooCommerce, Yoast SEO, Wordfence und andere gängige Plugins haben eigene Konstanten und SQL-Abfragen
- Ein deaktiviertes Plugin ist nicht „ausgeschaltet", sondern „schlafend"; seine Dateien bleiben für den direkten Zugriff erreichbar und stellen einen Angriffsvektor dar
Warum die Schaltfläche „Löschen" nicht ausreicht
WordPress ruft beim Löschen eines Plugins dessen uninstall.php oder einen Callback aus der Hauptdatei auf. Dies funktioniert jedoch nur, wenn der Entwickler eine solche Datei erstellt hat. In der Praxis fehlt bei etwa der Hälfte der Plugins aus dem WordPress.org-Katalog entweder die uninstall.php oder sie ist nur teilweise implementiert: Der Ordner wird gelöscht, die Datenbank bleibt jedoch unberührt.
Was nach der Standardlöschung übrig bleibt:
Art des Überrests | Wo zu suchen | Risiko |
|---|---|---|
Datenbanktabellen |
| Datenbankwachstum, langsamere Abfragen |
Zeilen in |
| Überladene |
Zeilen in |
| Tote Daten beim Abrufen von Beiträgen |
Shortcodes im Inhalt | Beitrags-/Seitentext | Defekte |
Cron-Jobs |
| Unnötige HTTP-Anfragen an wp-cron |
Dateien außerhalb des Plugin-Ordners |
| Datenmüll auf dem Datenträger |
Regeln in | Website-Stammverzeichnis | Konflikte mit neuen Plugins |
Besonders kritisch sind Zeilen mit dem autoload-Flag: WordPress lädt sie bei jeder Anfrage. Fünfzig zusätzliche autoload-Zeilen verlängern die Serverantwortzeit um 30 bis 80 ms. Das erscheint auf den ersten Blick vernachlässigbar, aber bei 100.000 monatlichen Seitenaufrufen ergibt sich eine spürbare Leistungseinbuße.
Deaktivierung vs. Löschung: Wo liegt der Unterschied
Der Unterschied ist grundlegend, und es ist hilfreich, ihn vor Beginn der Bereinigung zu verstehen.
Kriterium | Deaktivierung | Vollständige Löschung |
|---|---|---|
Plugin-Dateien | Verbleiben in | Gelöscht |
Code | Wird nicht ausgeführt, ist lesbar | Nicht vorhanden |
Datenbanktabellen | Bleiben erhalten | Hängt vom Entwickler ab |
Einstellungen | Bleiben erhalten | Hängt von |
Updates | Treffen ein (für kostenlose Plugins von.org) | Treffen nicht ein |
Sicherheitslücken | Code auf dem Server ist ein Angriffsvektor | Keine Bedrohung |
Umkehrbarkeit | Ein Klick und das Plugin ist wieder aktiv | Nur aus einem Backup |
Ein deaktiviertes Plugin ist nicht „ausgeschaltet", sondern „schlafend". Die PHP-Dateien befinden sich physisch auf dem Server. Wird eine Sicherheitslücke im Code entdeckt, kann ein Angreifer über den Pfad in wp-content/plugins/ direkt auf die Datei zugreifen und so die WordPress-Logik umgehen. WAF-Firewalls lösen dieses Problem nicht: Der beste Schutz ist, ungenutzten Code vollständig vom Server zu entfernen.
Die Regel ist einfach: Wenn Sie ein Plugin länger als eine Woche nicht genutzt haben, löschen Sie es. Eine Neukonfiguration ist schneller, als sich mit einem Angriff über eine Lücke in verwaistem Code auseinanderzusetzen.
Schritt-für-Schritt-Bereinigung: 4 Phasen
Schritt 1: Löschung über das Dashboard
Die erste Phase ist Standard. Gehen Sie zu Plugins → Installierte Plugins und suchen Sie das gewünschte. Aktive Plugins sind mit einem blauen Balken hervorgehoben, deaktivierte nicht.
Klicken Sie unter dem Namen auf „Löschen" und bestätigen Sie mit der Schaltfläche „Ja, diese Dateien löschen". WordPress ruft die uninstall.php des Plugins auf (sofern vorhanden) und löscht den Ordner aus wp-content/plugins.

Bei einfachen Plugins (einem leichtgewichtigen Widget, einem Logo-Ersatz für die Anmeldeseite) endet die Bereinigung hier. Sie erstellen keine Tabellen und schreiben nicht in wp_postmeta. Caching-, SEO-, Sicherheits-, Galerie- und Page-Builder-Plugins erfordern jedoch weitere Maßnahmen.
Schritt 2: Dateibereinigung per FTP
Einige Plugins erstellen Ordner außerhalb von wp-content/plugins/. Typische Speicherorte:
wp-content/uploads/plugin-name/: Cache, komprimierte Bilder, exportierte Dateienwp-content/ngg/: NextGEN Gallerywp-content/ewww/: EWWW Image Optimizerwp-content/backup/: Backup-Plugins
Verbinden Sie sich per FTP (FileZilla, WinSCP) oder über den Dateimanager des Hostings mit dem Server. Navigieren Sie zu wp-content/, suchen Sie den Ordner mit dem Plugin-Namen und löschen Sie ihn. Laden Sie den Ordner vor dem Löschen lokal herunter; falls er Benutzer-Uploads enthielt, stellen Sie diese wieder her.
Caching-Plugins (WP Rocket, W3 Total Cache, LiteSpeed Cache) schreiben zusätzlich in wp-content/cache/ und erstellen wp-content/advanced-cache.php. Löschen Sie die Datei advanced-cache.php manuell per FTP und suchen und entfernen Sie in wp-config.php diese Zeile:
1 define('WP_CACHE', true);
Schritt 3: Shortcodes aus Inhalten entfernen
Plugins, die Shortcodes hinzufügen (Formulare, Galerien, Slider, Tabellen), hinterlassen nach der Löschung nackte [shortcode] im Beitragstext. Das sieht unschön aus und verwirrt die Leser.
Ein schneller Weg, ungenutzte Shortcodes stummzuschalten, ist eine Zeile in der functions.php Ihres aktiven Themes:
1 add_shortcode('pluginshortcode', '__return_false');

Ersetzen Sie pluginshortcode durch Ihren Shortcode-Tag. Zum Beispiel: nggallery, gravityform oder contact-form-7. Die Funktion __return_false gibt false zurück, und der Shortcode verschwindet aus dem Frontend, ohne aus dem Beitragstext entfernt zu werden.
Fügen Sie den Code über ein Child-Theme oder das Plugin Code Snippets hinzu; Änderungen an der functions.php des Parent-Themes gehen beim nächsten Update verloren. Sollten Sie das Plugin später wiederherstellen wollen, entfernen Sie einfach diese Zeile.
Schritt 4: Datenbankbereinigung
Die kritischste Phase. Erstellen Sie vor jeder SQL-Löschabfrage ein vollständiges Datenbank-Backup; ein Export über phpMyAdmin dauert eine halbe Minute und bewahrt Sie vor irreversiblen Fehlern.
4a. Finden Sie die Tabellen des Plugins. Gehen Sie zu phpMyAdmin (über cPanel oder das Admin-Panel Ihres Hostings), wählen Sie die Datenbank der Website aus. Suchen Sie nach Tabellen mit dem Plugin-Präfix: wp_wc_* (WooCommerce), wp_yoast_* (Yoast SEO), wp_wf* (Wordfence). Wählen Sie sie aus, wählen Sie unten „Löschen" → bestätigen Sie.
4b. Automatisierung mit Advanced Database Cleaner. Wenn Sie nicht direkt in phpMyAdmin arbeiten möchten, installieren Sie Advanced Database Cleaner. Dieses kostenlose Plugin durchsucht die Datenbank, findet verwaiste Tabellen und Einträge und löscht sie mit einem Klick.
4c. Bereinigung von wp_options. Selbst wenn das Plugin keine eigenen Tabellen angelegt hat, hat es mit hoher Wahrscheinlichkeit in wp_options geschrieben. Führen Sie in phpMyAdmin (Tab SQL) aus:
1 SELECT * FROM wp_options WHERE option_name LIKE '%pluginname%';
Ersetzen Sie pluginname durch einen Teil des Plugin-Namens. Prüfen Sie, ob die Zeilen tatsächlich zum gelöschten Plugin gehören, und dann:
1 DELETE FROM wp_options WHERE option_name LIKE '%pluginname%';
4d. Cron-Jobs bereinigen. Manche Plugins registrieren eigene Cron-Ereignisse. Installieren Sie WP Crontrol; es zeigt alle registrierten Cron-Jobs in einer Liste an. Suchen Sie nach Ereignissen mit dem Plugin-Namen und löschen Sie diese manuell.
Besonderheiten beim Entfernen beliebter Plugins
Jedes größere Plugin hinterlässt eine eigene Spur. Nachfolgend finden Sie präzise Anleitungen für die gängigsten Fälle.
WooCommerce
WooCommerce legt über 16 Tabellen in der Datenbank an. Damit diese beim Löschen automatisch bereinigt werden, fügen Sie in die wp-config.php (vor der Zeile /* That's all, stop editing! */) Folgendes ein:
1 define('WC_REMOVE_ALL_DATA', true);
Diese Konstante zwingt WooCommerce, beim Löschen sein vollständiges uninstall.php aufzurufen; alle wp_woocommerce_*- und wp_wc_*-Tabellen werden gelöscht, einschließlich Produkte, Bestellungen und Gutscheine. Der Vorgang ist irreversibel, ein Backup ist daher zwingend erforderlich.
Prüfen Sie nach dem Löschen des Plugins zusätzlich die wp_options, da WooCommerce dort dutzende Zeilen mit dem Präfix woocommerce_ schreibt:
1 SELECT * FROM wp_options WHERE option_name LIKE '%wc_%';

Werden Zeilen gefunden und das Plugin ist bereits gelöscht, führen Sie die DELETE-Abfrage mit derselben Bedingung aus.
Yoast SEO
Yoast SEO hinterlässt Einträge in wp_postmeta und wp_usermeta sowie eigene Tabellen wp_yoast_indexable und wp_yoast_seo_links.
Bereinigen Sie zuerst die wp_postmeta:
1 SELECT * FROM wp_postmeta WHERE meta_key LIKE '%yoast%';

Nachdem Sie bestätigt haben, dass es sich um Yoast-Daten handelt, führen Sie aus:
1 DELETE FROM wp_postmeta WHERE meta_key LIKE '%yoast%';
Anschließend die wp_usermeta:
1 SELECT * FROM wp_usermeta WHERE meta_key LIKE '%yoast%';

Löschen Sie die gefundenen Einträge mit einer analogen DELETE-Abfrage. Yoast registriert außerdem das Cron-Event wpseo_onpage_fetch; entfernen Sie es über WP Crontrol. Löschen Sie die Tabellen wp_yoast_indexable und wp_yoast_seo_links manuell über phpMyAdmin.
Akismet
Akismet ist das standardmäßige Plugin zum Schutz vor Kommentar-Spam, das mit WordPress vorinstalliert ist. Nach der Löschung verbleiben seine Daten in wp_commentmeta:
1 SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet_%';

Anschließend:
1 DELETE FROM wp_commentmeta WHERE meta_key LIKE '%akismet_%';
Wenn die Website Tausende von Kommentaren hat, kann wp_commentmeta dutzende Megabyte wiegen. Optimieren Sie die Tabelle nach der Bereinigung:
1 OPTIMIZE TABLE wp_commentmeta;
Weitere Methoden zur Spam-Bekämpfung finden Sie in unserem Artikel WordPress-Kommentar-Spam stoppen: alle 18 Lösungen.
Gravity Forms
Gravity Forms legt 9 Tabellen in der Datenbank an (wp_gf_*, wp_rg_*). Gehen Sie vor der Löschung zu Forms → Einstellungen → Deinstallation und bestätigen Sie. Löschen Sie das Plugin anschließend über das Dashboard.
Prüfen Sie nach der Löschung wp_options:
1 SELECT * FROM wp_options WHERE option_name LIKE '%gravity%' OR option_name LIKE '%gf_%';

Löschen Sie die gefundenen Zeilen mit einer analogen DELETE-Abfrage.
Wordfence
Wordfence ist eines der „schwersten" Sicherheits-Plugins: Es legt 23 Tabellen mit dem Präfix wp_wf* an. Die Standard-Löschung über das Dashboard bereinigt diese nicht.
Das offizielle Hilfs-Plugin Wordfence Assistant wurde vom Entwickler im Dezember 2025 eingestellt. Daher bereinigen wir manuell: Löschen Sie das Haupt-Plugin Wordfence über das Dashboard, gehen Sie dann in phpMyAdmin und führen Sie aus:
1 SELECT * FROM wp_options WHERE option_name LIKE '%wordfence%' OR option_name LIKE '%wf%';
Löschen Sie die gefundenen Zeilen mit einer DELETE-Abfrage unter Verwendung derselben Bedingung. Suchen und löschen Sie anschließend alle Tabellen mit dem Präfix wp_wf (üblicherweise sind es 23, von wp_wfblockediplog bis wp_wflivetraffichuman). Löschen Sie per FTP den Ordner wp-content/wflogs/ und die Datei wordfence-waf.php im Wurzelverzeichnis der Website, falls diese noch vorhanden sind.
NextGEN Gallery
Das Plugin legt 3 Tabellen (wp_ngg_*) und einen Ordner wp-content/ngg/ mit hochgeladenen Galerien an.
Löschen Sie zunächst das Plugin über das Dashboard. Löschen Sie anschließend per FTP den Ordner wp-content/ngg/, nachdem Sie die Galeriebilder zuvor gesichert haben, falls Sie diese noch benötigen. Führen Sie in phpMyAdmin aus:
1 SELECT * FROM wp_options WHERE option_name LIKE '%ngg%';
Löschen Sie die gefundenen Zeilen mit einer DELETE-Abfrage unter Verwendung derselben Bedingung. Löschen Sie die Tabellen wp_ngg_pictures, wp_ngg_galleries und wp_ngg_album manuell.
EWWW Image Optimizer
EWWW speichert Daten zu jedem optimierten Bild in der Tabelle wp_ewwwio_images: Dateipfad, Originalgröße, Größe nach der Komprimierung. Es legt zudem einen Ordner wp-content/ewww/ mit Cache-Daten an.
Löschen Sie den Ordner per FTP. Anschließend in phpMyAdmin:
1 SELECT * FROM wp_options WHERE option_name LIKE '%ewww%';

Löschen Sie, was Sie finden, und entfernen Sie die Tabelle wp_ewwwio_images.
WP All Export
Das Plugin legt 4 Tabellen in der Datenbank an. Nach der Löschung über das Dashboard gehen Sie in phpMyAdmin, suchen Sie Tabellen mit dem Präfix wp_pmxe_*, wählen Sie diese aus und führen Sie „Drop" aus. Prüfen Sie zusätzlich wp_options auf den Schlüssel pmxe; das Plugin speichert dort die letzten Exporteinstellungen.
Weitere Details zum vollständigen Plugin-Entfernungszyklus finden Sie im Video-Tutorial unten.
⁉️🤔 Häufig gestellte Fragen
Ist es sicher, Plugin-Tabellen direkt über phpMyAdmin zu löschen?
Es ist unter zwei Bedingungen sicher: Sie haben ein vollständiges Datenbank-Backup erstellt und die Tabellen zweifelsfrei als zu einem bereits gelöschten Plugin gehörend identifiziert. Tabellen von Drittanbieter-Plugins haben stets einen erkennbaren Präfix:
wp_wc_,wp_yoast_oderwp_wf. Fassen Sie WordPress-Systemtabellen (wp_posts, wp_options, wp_users, wp_comments, wp_postmeta und wp_usermeta) nicht mitDROPan; Sie können sie nur mit gezieltenDELETE-Befehlen bereinigen.
Was tun, wenn die Website nach der Plugin-Löschung einen weißen Bildschirm zeigt?
Stellen Sie das Plugin aus dem Backup wieder her: Laden Sie den Ordner per FTP hoch, importieren Sie seine Tabellen. Die Ursache liegt höchstwahrscheinlich in der
functions.phpdes Themes, wo ein Aufruf einer Plugin-Funktion ohne Fallback verblieben sein könnte. Suchen Sie solche Aufrufe und umschließen Sie sie mitfunction_exists()oder entfernen Sie sie, und wiederholen Sie dann die Plugin-Löschung.
Wie finde ich alle Spuren eines Plugins in der Datenbank?
Installieren Sie das Advanced Database Cleaner Plugin. Es durchsucht alle Tabellen nach verwaisten Daten und zeigt eine vollständige Liste: Tabellen, Einträge in
wp_optionsundwp_postmeta, Cron-Jobs. Das ist schneller und sicherer als die manuelle Suche über phpMyAdmin.
Sollte ich Plugins löschen, die mit dem Theme gebündelt waren?
Ja, wenn Sie sie nicht nutzen. Mit Themes gebündelte Plugins (WPBakery Page Builder, Slider Revolution, ACF Pro) kommen oft mit eingeschränkten Lizenzen, und Sicherheitsupdates erreichen sie nicht. Ein deaktivierter, veralteter WPBakery mit einer bekannten Schwachstelle ist ein direkter Weg zu einem Sicherheitsvorfall. Wenn Sie ihn nicht nutzen, löschen Sie ihn.
Kann ich ein Plugin nach vollständiger Löschung wiederherstellen?
Nur aus einem Backup. Nach der Bereinigung der Tabellen und
wp_optionssind alle Plugin-Einstellungen dauerhaft verloren. Genau deshalb ist der obige Algorithmus von einfach bis radikal aufgebaut: zuerst die Standardlöschung (reversibel), dann die Dateibereinigung und erst am Ende die Datenbank. Gehen Sie die Stufen nacheinander durch; springen Sie nicht direkt zu phpMyAdmin.
Bleiben Plugin-Daten in WordPress Multisite erhalten?
In Multisite hat jede Unterseite ihre eigenen Tabellen:
wp_2_options,wp_2_postmetaund so weiter. Prüfen Sie nach der Löschung eines Plugins über den Super-Admin die Tabellen jeder Unterseite (wp_*_optionsundwp_*_postmetafür alle Blog-IDs). Das Plugin könnte auf einzelnen Seiten im Netzwerk aktiviert gewesen sein und dort Einträge in den Tabellen hinterlassen haben.
Fazit: Wann sich die vollständige Bereinigung lohnt
Wenn Sie eine kleine Website betreiben und alle sechs Monate ein Plugin löschen, genügt die Standardlöschung über das Dashboard plus eine einmalige Bereinigung von wp_options.
Ist Ihre Website jedoch mehrere Jahre alt, sind Dutzende Plugins durchgelaufen und die Backups auf ein Gigabyte angewachsen, dann wird eine chirurgische Bereinigung nach der obigen Anleitung die Datenbank spürbar verkleinern und das Admin-Panel beschleunigen. In der Praxis haben wir Tausende verwaiste Einträge in wp_postmeta und Dutzende überflüssige Tabellen bereinigt, und die Antwortzeit des Admin-Panels reduzierte sich nahezu um die Hälfte.
Machen Sie es sich zur Gewohnheit: Gehen Sie nach jeder Plugin-Löschung die Checkliste durch (FTP → wp_options → Cron → Tabellen). Zehn Minuten heute ersparen Ihnen morgen Stunden, wenn eine aufgeblähte Datenbank Ihre Website bei Spitzenlast abstürzen lässt.
Welches Plugin hat bei Ihrer Website den meisten Datenmüll nach der Löschung hinterlassen? Teilen Sie es uns in den Kommentaren mit.



