Supprimer un plugin WordPress : nettoyer aussi la base de données après la suppression

Supprimer un plugin WordPress se fait d'un clic dans l'administration, mais les tables et les réglages créés par le plugin restent souvent dans la base de données. Sur ce site aussi, 8 tables et 38 lignes d'options laissées par deux plugins de publicité et de commentaires, supprimés depuis longtemps, étaient encore là au 2026-10-09.
Cet article passe en revue, dans l'ordre, la suppression dans l'administration puis le nettoyage des shortcodes, des dossiers et des données restés en base.
1️⃣ Supprimer le plugin dans l'administration
Dans [Extensions] > [Extensions installées], cliquez d'abord sur [Désactiver], puis sur [Supprimer], qui apparaît sur la même ligne.

Si le plugin contient du code de nettoyage, il s'exécute à ce moment-là ; sinon, seuls les fichiers sont supprimés et les données restent.
2️⃣ Pourquoi des données restent après la suppression
Quand vous supprimez un plugin, WordPress exécute son fichier [uninstall.php] ou la fonction enregistrée avec [register_uninstall_hook]. L'effacement des données est confié à ce code : un plugin qui n'en a pas, ou dont le code n'efface qu'une partie, laisse des tables et des options derrière lui.
Certains développeurs laissent volontairement des données, pour retrouver les réglages en cas de réinstallation. Certains plugins, comme Wordfence, proposent dans leurs réglages une option pour effacer aussi les données, et le plugin multilingue Polylang offre la même option.

3️⃣ L'effet des données restantes sur le site
Parmi les options restantes, les lignes dont [autoload] est activé sont chargées en mémoire avec les autres réglages à chaque ouverture de page. Sur ce site, [wc_options] (15 Ko) de wpDiscuz et [advanced-ads-ab-module] (14 Ko) d'Advanced Ads faisaient partie de ces lignes.
Cela dit, le total autoload de ce site est d'environ 392 Ko, dont environ 39 Ko de lignes restantes : pas de quoi créer une différence de vitesse sensible. L'écran [Santé du site] de WordPress n'affiche un avertissement qu'au-delà de 800 Ko de total autoload.
Après avoir désactivé l'autoload des 23 lignes restantes, l'[Autoload size] d'Advanced Database Cleaner est passé de 391,52 Ko à 353,36 Ko.


Au quotidien, ce n'est pas un problème. Les visiteurs qui reçoivent des pages en cache ne passent pas par PHP : seules les requêtes qui contournent le cache chargent le paquet autoload, comme l'administration, la première visite juste après la purge du cache ou les robots. Mais si beaucoup de ces requêtes arrivent en même temps, chacune déploie le paquet autoload en mémoire : plus l'autoload d'un site est gros, plus la charge du serveur grimpe vite.
Les options dont l'autoload est désactivé et les tables restantes ne sont jamais lues sans leur plugin : elles n'ont aucun effet sur la vitesse et ne font que grossir la base de données et les sauvegardes.
4️⃣ Effacer les traces restantes
Avant de toucher à la base de données, faites d'abord une sauvegarde complète.
🔲 Shortcodes
Les shortcodes qu'un plugin insérait dans les articles apparaissent tels quels, entre crochets, dans le contenu une fois le plugin supprimé. En attendant de corriger chaque article, ajoutez la ligne ci-dessous au [functions.php] du thème pour que le shortcode n'affiche plus rien.
add_shortcode( 'pluginshortcode', '__return_false' );Ce site utilisait lui aussi une dizaine de shortcodes d'un plugin de tableaux ; en supprimant ce plugin pour un problème de sécurité, j'ai nettoyé un à un les shortcodes et les tables, et je n'utilise plus de shortcodes depuis.
🔲 Dossier du plugin
Un dossier que l'administration n'a pas supprimé s'efface directement sous [wp-content/plugins], par FTP, cPanel ou SSH.
🔲 Tables et lignes de la base (phpMyAdmin)
La plupart des hébergeurs proposent phpMyAdmin.

Pour les tables restantes, repérez dans l'onglet [Structure] celles qui portent le nom du plugin et supprimez-les. L'écran ci-dessous prend Yoast SEO comme exemple.

Les lignes comme les options se cherchent dans l'onglet [Rechercher] avec le joker [%], par exemple [%yoast%].


Un second filtrage avec [Filtrer les lignes] permet de vérifier que les lignes ne concernent que Yoast SEO.

Les lignes restent surtout dans [wp_options], [wp_postmeta] et [wp_usermeta], et le [wp_] devant le nom des tables peut varier selon le site. Supprimer d'après le seul nom risque d'effacer des lignes utilisées par d'autres plugins : ne supprimez que les lignes dont vous avez vérifié le plugin.
5️⃣ Plugins de nettoyage de la base
Pour nettoyer depuis l'administration plutôt que dans phpMyAdmin, utilisez Advanced Database Cleaner : il indique pour chaque option et chaque table, sous [Belongs to], le plugin auquel elle appartient, ce qui permet de repérer les lignes que l'on peut supprimer.
Les lignes marquées [Not scanned yet] sous [Belongs to] ne sont pas inutilisées : leur propriétaire est simplement encore inconnu. Sur ce site aussi, bon nombre de noms inconnus étaient les licences et les réglages de plugins encore actifs ; supprimer ces lignes fait sauter la licence ou réinitialise les réglages.
C'est pourquoi, même pour les lignes d'un plugin supprimé, on ne les efface pas tout de suite : on désactive d'abord leur autoload. Les valeurs restent en place et peuvent être rétablies à tout moment ; si le site tourne quelques jours sans problème, on les supprime alors.


WP-Optimize peut aussi supprimer les tables restantes dans sa version gratuite.


🔢 FAQ & contenus recommandés
Réglages
2 façons de supprimer la demande d'identifiants FTP
Deux façons de faire disparaître la fenêtre de saisie FTP qui s'affiche à chaque installation ou mise à jour d'un plugin.
Optimisation
Perfmatters : avis & guide
Les réglages d'optimisation des performances tirés de cinq ans d'utilisation.
Performances
Désactiver WP-Cron et utiliser le cron système
Comment désactiver wp-cron.php, qui s'exécutait à chaque ouverture de page, et le confier à une tâche cron du serveur.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.