Chaque chargement de page, soumission de formulaire, opération de plugin et session utilisateur dans WordPress implique des requêtes de base de données. Au fil du temps, la base de données accumule des éléments superflus : anciennes révisions de publications, transitoires expirés, métadonnées orphelines, commentaires indésirables et tables inutilisées provenant de plugins désactivés. Cet encombrement ralentit les requêtes, augmente la taille des sauvegardes et dégrade la performance globale du site. Ce guide couvre comment identifier l'encombrement de la base de données, le nettoyer en toute sécurité et empêcher son retour.
Ce que WordPress stocke dans la base de données
Comprendre ce qui se trouve dans votre base de données vous aide à identifier ce qui peut être supprimé en toute sécurité. Une installation standard de WordPress utilise 12 tables principales, et les plugins ajoutent leurs propres tables si nécessaire.
| Table | Stocke | Source courante d'encombrement |
|---|---|---|
| wp_posts | Publications, pages, révisions, pièces jointes, types de publication personnalisés | Révisions de publications, brouillons automatiques |
| wp_postmeta | Métadonnées pour les publications (champs personnalisés, données de plugin) | Métadonnées orphelines provenant de publications supprimées |
| wp_options | Paramètres du site, paramètres des plugins, transitoires | Transitoires expirés, anciens paramètres de plugin |
| wp_comments | Commentaires et rétroliens | Commentaires indésirables, commentaires dans la corbeille |
| wp_commentmeta | Métadonnées pour les commentaires | Métadonnées Akismet pour les commentaires supprimés |
| wp_usermeta | Métadonnées utilisateur | Jetons de session, données utilisateur du plugin |
| wp_termmeta | Métadonnées pour les catégories et les étiquettes | Métadonnées de terme orphelines |
Sources courantes d'encombrement de la base de données
Révisions de publications
WordPress enregistre une révision chaque fois que vous cliquez sur "Enregistrer le brouillon" ou "Mettre à jour" sur une publication ou une page. Une publication modifiée 50 fois a 50 révisions stockées dans la table wp_posts, chacune avec son propre ensemble d'entrées postmeta. Sur un site avec des centaines de publications, les révisions peuvent représenter des milliers de lignes de base de données inutiles.
Transitoires
Les transitoires sont des données temporaires stockées dans la table wp_options par le noyau WordPress et les plugins. Ils ont des temps d'expiration, mais WordPress ne supprime pas automatiquement les transitoires expirés. Ils s'accumulent au fil du temps et peuvent faire croître considérablement la table des options, en particulier sur les sites avec de nombreux plugins.
Données orphelines
Lorsque vous supprimez une publication, ses métadonnées (entrées wp_postmeta) peuvent ne pas être supprimées. De même, la suppression de commentaires, d'utilisateurs ou de termes peut laisser des lignes de métadonnées orphelines. Les plugins désactivés et supprimés laissent souvent leurs tables de base de données, consommant de l'espace et encombrant votre base de données.
Contenu indésirable et dans la corbeille
Les commentaires indésirables, les publications dans la corbeille et les commentaires dans la corbeille restent dans la base de données jusqu'à ce qu'ils soient vidés manuellement. Les sites avec Akismet ou d'autres filtres anti-spam peuvent accumuler des milliers de commentaires indésirables qui nécessitent un nettoyage périodique.
Brouillons automatiques
WordPress crée des publications de brouillon automatique lorsque vous cliquez sur "Ajouter nouveau" dans l'éditeur de publication, même si vous ne publiez jamais. Ceux-ci s'accumulent au fil du temps et ne servent à rien après la fin de la session d'édition.
Nettoyage manuel de la base de données via SQL
Pour ceux qui sont à l'aise avec SQL, vous pouvez nettoyer directement en utilisant phpMyAdmin ou un client de base de données. Sauvegardez toujours votre base de données avant d'exécuter des requêtes de nettoyage.
Supprimer les révisions de publications
-- Supprimer toutes les révisions de publications
DELETE FROM wp_posts WHERE post_type = 'revision';
-- Supprimer les postmeta orphelins (métadonnées pour les publications supprimées)
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts p ON pm.post_id = p.ID
WID EST NULL;
Nettoyer les Transients
-- Supprimer les transients expirés
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_timeout_%'
AND option_value < UNIX_TIMESTAMP();
-- Supprimer les données des transients pour les transients expirés
DELETE FROM wp_options
WHERE option_name LIKE '%_transient_%'
AND option_name NOT LIKE '%_transient_timeout_%';
Supprimer les Commentaires de Spam et les Commentaires dans la Corbeille
-- Supprimer les commentaires de spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';
-- Supprimer les commentaires dans la corbeille
DELETE FROM wp_comments WHERE comment_approved = 'trash';
-- Supprimer les métadonnées des commentaires orphelins
DELETE cm FROM wp_commentmeta cm
LEFT JOIN wp_comments c ON cm.comment_id = c.comment_ID
WHERE c.comment_ID IS NULL;
Nettoyage de la Base de Données Basé sur des Plugins
Si vous préférez une approche basée sur une interface graphique, plusieurs plugins gèrent l'optimisation de la base de données avec des capacités de planification :
WP-Optimize
WP-Optimize est un plugin gratuit qui nettoie les révisions, les brouillons, le spam, les transients et les données orphelines. Il optimise également les tables de la base de données et prend en charge les nettoyages planifiés. La version Pro ajoute le support multisite et une planification avancée.
Optimisation de la Base de Données WP Rocket
WP Rocket comprend un onglet Base de Données qui gère les révisions, les auto-brouillons, les articles dans la corbeille, les commentaires de spam, les transients et l'optimisation des tables. Étant donné que WP Rocket est principalement un plugin de mise en cache, vous obtenez un nettoyage de la base de données en même temps qu'une optimisation des performances dans un seul outil.
Advanced Database Cleaner
Ce plugin va plus loin en détectant les tables laissées par des plugins désactivés et les événements cron orphelins. Il catégorise les tables comme étant du cœur de WordPress, créées par des plugins ou inconnues, vous aidant à identifier quelles tables peuvent être supprimées en toute sécurité.
| Plugin | Version Gratuite | Nettoyage Planifié | Détection de Tables |
|---|---|---|---|
| WP-Optimize | Oui | Oui | Basique |
| WP Rocket | Non (Premium uniquement) | Oui | Non |
| Advanced Database Cleaner | Oui | Pro uniquement | Oui (détaillé) |
Optimisations wp-config.php
Prévenez le gonflement de la base de données à la source en ajoutant ces constantes à votre fichier wp-config.php :
Limiter les Révisions de Postes
// Garder seulement 5 révisions par poste (recommandé)
define( 'WP_POST_REVISIONS', 5 );
// Désactiver complètement les révisions (non recommandé pour la plupart des sites)
define( 'WP_POST_REVISIONS', false );
Définir les révisions à 5 fournit suffisamment d'historique pour récupérer des erreurs tout en empêchant une croissance illimitée des révisions. Pour les sites riches en contenu avec des modifications fréquentes, 10 révisions est une alternative raisonnable.
Vider Automatiquement la Corbeille
// Vider la corbeille tous les 7 jours (la valeur par défaut est 30)
define( 'EMPTY_TRASH_DAYS', 7 );
// Désactiver la corbeille (les éléments sont supprimés immédiatement - à utiliser avec précaution)
define( 'EMPTY_TRASH_DAYS', 0 );
Intervalle d'Autosave
// Augmenter l'intervalle d'autosave à 5 minutes (la valeur par défaut est 60 secondes)
define( 'AUTOSAVE_INTERVAL', 300 );
Optimisation des Tables de la Base de Données
Après avoir supprimé des lignes, exécutez une opération OPTIMIZE pour récupérer de l'espace fragmenté :
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_options, wp_comments, wp_commentmeta;
Planifiez cela mensuellement ou après de grandes opérations de nettoyage. La plupart des plugins de nettoyage incluent l'optimisation des tables dans leurs tâches planifiées.
Planification de Nettoyage Automatique
Configurez des horaires automatisés : nettoyage hebdomadaire des transitoires et des spams, suppression des révisions mensuelles et optimisation des tables, et audits trimestriels des tables de plugins orphelins. WP-Optimize et WP Rocket prennent tous deux en charge le nettoyage programmé. Configurez-les pendant les heures creuses.
Surveillance de la Taille de la Base de Données
Suivez la taille de votre base de données pour détecter les gonflements tôt. Exécutez cette requête pour voir les tailles des tables individuelles :
SELECT table_name AS 'Table',
ROUND(data_length / 1024 / 1024, 2) AS 'Données (MB)',
table_rows AS 'Lignes'
FROM information_schema.tables
WHERE table_schema = 'your_database_name'
ORDER BY (data_length + index_length) DESC
LIMIT 20;
Si wp_options dépasse 5 Mo ou si wp_postmeta dépasse 100 Mo, il est temps de faire un nettoyage. Ces tables sont fréquemment interrogées, donc leur taille affecte directement les temps de chargement des pages.
Pour une approche complète d'optimisation des performances qui inclut l'optimisation de la base de données ainsi que la mise en cache, l'optimisation des images et la configuration du serveur, lisez notre guide d'optimisation de la vitesse WordPress. Pour maintenir la santé de la base de données dans le cadre de votre routine de maintenance, consultez notre guide de maintenance WordPress.
Pour plus de détails, consultez la documentation officielle : API de Base de Données WordPress.
Questions Fréquemment Posées
Est-il sûr de supprimer les révisions de posts de la base de données ?
Oui, supprimer les révisions de posts est sûr et n'affecte pas votre contenu publié. Les révisions sont des instantanés historiques des modifications de brouillon. Une fois votre contenu finalisé, les révisions ne servent à rien pour la plupart des sites. Cependant, sauvegardez toujours votre base de données avant d'effectuer un nettoyage.
L'optimisation de la base de données améliorera-t-elle visiblement la vitesse de mon site ?
L'amélioration dépend de la taille de votre base de données. Les sites avec plus de 50 000 lignes orphelines ou une table wp_options dépassant 10 Mo verront des améliorations notables des temps de chargement des pages et de la réactivité du tableau de bord admin. Les sites plus petits peuvent voir des gains marginaux. L'optimisation de la base de données fonctionne en parallèle avec la mise en cache et d'autres mesures de performance pour une amélioration cumulative.
À quelle fréquence devrais-je optimiser ma base de données WordPress ?
Pour les sites actifs avec des mises à jour de contenu régulières, une optimisation mensuelle est une bonne base. Les sites à fort trafic avec des commentaires fréquents, des transactions WooCommerce ou des soumissions de formulaires peuvent bénéficier d'un nettoyage hebdomadaire des transitoires et des spams avec une optimisation mensuelle des tables.
Les plugins de nettoyage de base de données peuvent-ils casser mon site ?
Les plugins réputés comme WP-Optimize et WP Rocket sont conçus pour être sûrs. Ils ciblent des catégories de gonflement connues (révisions, transitoires, spams) et ne touchent pas aux données essentielles. Le risque augmente lorsque vous supprimez manuellement des tables spécifiques aux plugins. Si vous n'êtes pas sûr qu'une table soit nécessaire, laissez-la en place et recherchez d'abord son utilité.
Quelle est la différence entre OPTIMIZE TABLE et la suppression de lignes ?
La suppression de lignes enlève des données de la table. OPTIMIZE TABLE réorganise le stockage physique de la table après que des lignes ont été supprimées, récupérant de l'espace disque et défragmentant le fichier de données. Pensez-y comme à la suppression de fichiers (suppression de lignes) par rapport à la défragmentation de votre disque dur (optimisation de la table).
Dois-je utiliser InnoDB ou MyISAM pour les tables WordPress ?
WordPress utilise InnoDB par défaut depuis la version 5.5, et c'est le moteur de stockage recommandé. InnoDB prend en charge le verrouillage au niveau des lignes (meilleur pour les utilisateurs simultanés), les transactions et la récupération après un crash. MyISAM est plus rapide pour les opérations lourdes en lecture mais manque de ces fonctionnalités de fiabilité. Si vous trouvez des tables MyISAM dans votre base de données, il est généralement recommandé de les convertir en InnoDB.
Comment identifier les tables laissées par des plugins désactivés ?
Le plugin Advanced Database Cleaner peut détecter et catégoriser les tables non essentielles. Alternativement, exécutez la requête SQL SHOW TABLES et comparez les noms des tables avec les tables de base de WordPress et vos plugins actuellement actifs. Les tables avec des préfixes correspondant à des plugins désactivés sont des candidates à la suppression.
WooCommerce ajoute-t-il un gonflement significatif à la base de données ?
Oui. WooCommerce stocke des données de commande, des métadonnées de produit, des sessions clients et des transitoires qui augmentent considérablement sur les magasins actifs. Utilisez WooCommerce > Statut > Outils pour effacer régulièrement les transitoires et les sessions expirés.
Optimisez les Performances sous Tous les Angles
WP Rocket gère la mise en cache, le nettoyage de la base de données et l'optimisation des performances dans un seul plugin, afin que vous puissiez garder votre site en bon état de fonctionnement.
Découvrez WP Rocket →


