Skip to content

Alles für WordPress, Webentwicklung — und mehr

🧹 So entfernen Sie ein WordPress-Plugin vollständig: schrittweise Datenbank- und Dateibereinigung

🧹 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

wp_* (Plugin-Präfix)

Datenbankwachstum, langsamere Abfragen

Zeilen in wp_options

option_name LIKE %pluginname%

Überladene autoload-Optionen

Zeilen in wp_postmeta

meta_key LIKE %pluginname%

Tote Daten beim Abrufen von Beiträgen

Shortcodes im Inhalt

Beitrags-/Seitentext

Defekte [shortcode] im Frontend

Cron-Jobs

wp_optionscron

Unnötige HTTP-Anfragen an wp-cron

Dateien außerhalb des Plugin-Ordners

wp-content/uploads/

Datenmüll auf dem Datenträger

Regeln in .htaccess

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 wp-content/plugins/

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 uninstall.php ab

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.

WordPress-Plugin-Liste mit Löschen-Schaltfläche

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 Dateien
  • wp-content/ngg/: NextGEN Gallery
  • wp-content/ewww/: EWWW Image Optimizer
  • wp-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:

1define('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:

1add_shortcode('pluginshortcode', '__return_false');
Code in functions.php zum Deaktivieren eines Plugin-Shortcodes

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:

1SELECT * 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:

1DELETE 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:

1define('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:

1SELECT * FROM wp_options WHERE option_name LIKE '%wc_%';
SQL-Abfrage zum Finden von WooCommerce-Datensätzen in der Datenbank

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:

1SELECT * FROM wp_postmeta WHERE meta_key LIKE '%yoast%';
Yoast-SEO-Metadaten in der Tabelle wp_postmeta finden

Nachdem Sie bestätigt haben, dass es sich um Yoast-Daten handelt, führen Sie aus:

1DELETE FROM wp_postmeta WHERE meta_key LIKE '%yoast%';

Anschließend die wp_usermeta:

1SELECT * FROM wp_usermeta WHERE meta_key LIKE '%yoast%';
Yoast-SEO-Datensätze in der Tabelle wp_usermeta finden

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:

1SELECT * FROM wp_commentmeta WHERE meta_key LIKE '%akismet_%';
SQL-Abfrage zum Finden von Akismet-Daten in Kommentaren

Anschließend:

1DELETE 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:

1OPTIMIZE 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:

1SELECT * FROM wp_options WHERE option_name LIKE '%gravity%' OR option_name LIKE '%gf_%';
SQL-Abfrage zum Bereinigen von wp_options für Gravity Forms

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:

1SELECT * 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.

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:

1SELECT * 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:

1SELECT * FROM wp_options WHERE option_name LIKE '%ewww%';
SQL-Abfrage zum Bereinigen der EWWW Image Optimizer-Optionen

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_ oder wp_wf. Fassen Sie WordPress-Systemtabellen (wp_posts, wp_options, wp_users, wp_comments, wp_postmeta und wp_usermeta) nicht mit DROP an; Sie können sie nur mit gezielten DELETE-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.php des Themes, wo ein Aufruf einer Plugin-Funktion ohne Fallback verblieben sein könnte. Suchen Sie solche Aufrufe und umschließen Sie sie mit function_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_options und wp_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_options sind 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_postmeta und so weiter. Prüfen Sie nach der Löschung eines Plugins über den Super-Admin die Tabellen jeder Unterseite (wp_*_options und wp_*_postmeta fü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.