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

Mention d'affiliation v3.1
Mention d'affiliation v3.2 (mobile)

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.

Supprimer un plugin WordPress - page d'administration

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.

Supprimer et désactiver un plugin WordPress - Wordfence et son option de suppression
Option de suppression du plugin Wordfence

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.

Advanced Database Cleaner, Autoload size 391.52KB (avant le nettoyage)
Advanced Database Cleaner, Autoload size 353.36KB (après le nettoyage)

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.

WordPress phpMyAdmin - chemin après sélection d'une table

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.

WordPress phpMyAdmin - chercher une table dans Structure et la supprimer

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

WordPress phpMyAdmin - chercher des lignes dans Rechercher et les supprimer 1
WordPress phpMyAdmin - chercher des lignes dans Rechercher et les supprimer 2

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

WordPress phpMyAdmin - chercher des lignes dans Rechercher et les supprimer 3

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.

Options restantes d'un plugin supprimé - autoload auto
Options restantes d'un plugin supprimé - autoload off

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

Plugin WP-Optimize - supprimer les tables restantes de la base de données
Fonction de suppression des tables de WP-Optimize
Plugin (enseigne au néon sur un mur de pierre)

🔢 FAQ & contenus recommandés

WordPress ne charge que les plugins actifs : le code d'un plugin désactivé ne s'exécute pas à l'ouverture des pages. Mais tant que les fichiers restent sur le serveur, il faut continuer à les mettre à jour ; si vous ne comptez plus l'utiliser, supprimez-le.

[Supprimer] n'apparaît pas pour un plugin actif : cliquez d'abord sur [Désactiver]. S'il n'apparaît toujours pas, vérifiez si [DISALLOW_FILE_MODS] est réglé sur true dans wp-config.php. Si c'est le cas, l'installation, la mise à jour et la suppression des plugins sont toutes bloquées. En multisite, seul le super administrateur peut supprimer des plugins.

[wp plugin uninstall nom-du-plugin --deactivate] désactive le plugin, exécute son code de nettoyage et supprime aussi les fichiers. [wp plugin delete] ne supprime que les fichiers, sans code de nettoyage : pour effacer aussi les données, utilisez uninstall.

Les fichiers du dossier [wp-content/mu-plugins] sont des plugins indispensables (must-use), toujours exécutés sans étape d'activation : l'administration n'affiche donc pas de lien [Supprimer]. Pour les retirer, supprimez directement le fichier de ce dossier par FTP ou SSH.

ℹ️ 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Prouvez que vous êtes humain : 5   +   4   =