Un site WordPress qui ralentit alors que le cache est bien configuré et l’hébergement correct : neuf fois sur dix, le coupable se cache dans la base de données. Transients expirés, révisions accumulées, options orphelines chargées à chaque requête. Voici la méthode complète pour nettoyer sans rien casser.
Sommaire
Pourquoi votre base de données grossit sans que vous le voyiez
Chaque plugin installé, chaque article publié, chaque formulaire soumis laisse une trace dans la base de données. C’est normal. Le problème arrive quand ces traces ne sont jamais nettoyées : révisions infinies, transients qui ne s’auto-suppriment pas, tables abandonnées par un plugin désinstallé trois ans plus tôt.
Sur un site de cinq ans avec une trentaine de plugins passés, il n’est pas rare de trouver une base de données de 300 à 800 Mo, dont la moitié est du bruit pur. Chaque requête SQL devient plus lente, chaque sauvegarde plus longue, et le serveur travaille pour rien.
Donnée fraîche
Sur les audits que je mène, la table wp_options dépasse fréquemment les 10 000 lignes sur un site de plus de trois ans avec un empilement de plugins non maîtrisé, contre 1 500 à 2 500 lignes sur une installation propre. L’écart de temps de réponse serveur (TTFB) mesuré est régulièrement de 100 à 300 ms.
L’autoload wp_options, le vrai responsable
C’est le point que la plupart des tutoriels survolent. La table wp_options stocke les réglages de WordPress et de vos plugins. Chaque ligne porte un attribut autoload : à yes, WordPress charge cette donnée à CHAQUE chargement de page, même si elle ne sert qu’une fois par mois.
Un plugin mal codé qui stocke un cache de 2 Mo en autoload, et c’est 2 Mo chargés en mémoire sur chaque page vue, y compris pour un visiteur qui ne passe que sur votre page d’accueil. C’est souvent plus impactant que les révisions ou les transients réunis.
Pour mesurer le poids réel de l’autoload, exécutez cette requête via phpMyAdmin ou WP-CLI :
| Requête | Ce qu’elle révèle |
|---|---|
| SELECT SUM(LENGTH(option_value)) FROM wp_options WHERE autoload=’yes’; | Poids total (en octets) chargé sur chaque page |
| SELECT option_name, LENGTH(option_value) AS size FROM wp_options WHERE autoload=’yes’ ORDER BY size DESC LIMIT 20; | Les 20 options les plus lourdes, à investiguer une par une |
Au-dessus de 1 Mo d’autoload total, le site souffre. Au-dessus de 3 Mo, c’est un signal d’alarme. Chaque option suspecte identifiée doit être recherchée par son nom pour retrouver le plugin propriétaire avant toute suppression.
Nettoyer les transients expirés
Les transients sont un cache temporaire natif de WordPress : ils sont censés disparaître seuls à expiration. En pratique, si un utilisateur ne visite jamais la page qui déclenche leur suppression automatique, ils restent en base indéfiniment. Certains plugins de flux RSS, de météo ou de réseaux sociaux en génèrent des centaines.
- Vérifier l’accès WP-CLISi votre hébergement le propose (LWS, o2switch, WP Engine, etc.), c’est la méthode la plus sûre et la plus rapide.
- Supprimer les transients expirésCommande
wp transient delete --expired. Ne touche qu’aux transients arrivés à échéance, sans risque pour le site. - Vider les transients orphelins sans WP-CLISans accès en ligne de commande, un plugin dédié comme WP-Optimize ou Advanced Database Cleaner fait le travail via une interface, en gardant une trace de ce qui a été supprimé.
- Recontrôler l’autoload après nettoyageRelancez la requête de mesure de l’autoload : un nettoyage de transients efficace fait souvent baisser le poids autoloadé de 20 à 40 %.
Maîtriser les révisions d’articles
Par défaut, WordPress enregistre une révision à chaque sauvegarde automatique ou manuelle d’un article. Sur un article travaillé sur plusieurs jours, cela peut représenter 50 à 100 révisions stockées pour un seul contenu publié. Multipliez par le nombre d’articles du site : la table wp_posts gonfle rapidement.
La bonne pratique n’est pas de tout supprimer une fois, mais de plafonner ce comportement dans la durée. Dans le fichier wp-config.php, ajoutez avant la ligne /* C'est tout, ne touchez pas à ce qui suit ! */ :
define('WP_POST_REVISIONS', 5);
Cette limite conserve les cinq dernières versions d’un article, suffisant pour revenir en arrière en cas d’erreur, sans accumulation infinie. Pour l’existant, WP-CLI supprime les révisions déjà en base avec une boucle ciblée, ou un plugin de nettoyage traite la purge en une passe.
Identifier et supprimer les tables orphelines
Chaque désinstallation de plugin ne nettoie pas forcément ses propres tables. Un plugin de formulaire remplacé il y a deux ans peut laisser trois tables vides ou obsolètes dans votre base. Elles ne ralentissent pas directement le site, mais alourdissent les sauvegardes et compliquent la maintenance.
Pour les repérer, listez les tables via phpMyAdmin et comparez leur préfixe aux plugins réellement actifs. Une table dont le nom ne correspond à aucun plugin installé est une candidate à la suppression, à condition de vérifier au préalable qu’elle n’est pas utilisée par une intégration tierce (CRM, outil marketing).
Point de vigilance
Ne supprimez jamais une table sans sauvegarde complète préalable. Une table qui semble orpheline peut être appelée par un shortcode ou un widget encore présent sur une page rarement visitée.
Méthode pas à pas, sans risque
- Sauvegarder avant toute interventionBase de données complète, via votre hébergeur ou un plugin comme UpdraftPlus. Sans exception.
- Mesurer l’état initialPoids de la base, poids de l’autoload, nombre de révisions et de transients. Ces chiffres serviront de référence après nettoyage.
- Nettoyer par ordre de risque croissantTransients expirés d’abord (sans risque), puis révisions en excès, puis options orphelines identifiées individuellement, enfin tables orphelines confirmées.
- Vérifier le site après chaque étapeNaviguez sur les pages clés, testez les formulaires, contrôlez le panier si c’est un site e-commerce.
- Optimiser les tablesUne fois le ménage fait, une commande
OPTIMIZE TABLE(ou l’équivalent dans votre plugin de cache) récupère l’espace disque libéré par InnoDB.
Prévenir plutôt que nettoyer tous les six mois
Le nettoyage ponctuel soulage, mais sans discipline en amont, la base regrossit en quelques mois. Trois réflexes limitent durablement l’accumulation : plafonner les révisions dès l’installation du site, désinstaller proprement les plugins abandonnés (et pas seulement les désactiver), et programmer une purge mensuelle automatique des transients expirés via une tâche cron ou l’Action Scheduler de WooCommerce si vous êtes en e-commerce.
Un audit technique complet permet aussi de repérer les plugins responsables d’un autoload excessif avant qu’ils ne deviennent un problème. C’est un des points que je vérifie systématiquement lors d’un audit SEO technique WordPress, au même titre que le cache et la configuration serveur.
En résumé
Une base de données WordPress propre, ce n’est pas un plugin qu’on installe et qu’on oublie. C’est une méthode : mesurer l’autoload, traiter les transients et les révisions dans l’ordre, vérifier avant et après chaque étape, puis verrouiller les réglages pour que le problème ne revienne pas. Combiné à un bon plugin de cache comme WP Rocket ou LiteSpeed Cache, ce nettoyage a un impact direct et mesurable sur le TTFB, donc sur vos Core Web Vitals côté serveur.
Le nettoyage de la base de données améliore-t-il le référencement ?
Indirectement, oui. Une base allégée réduit le TTFB (temps de réponse serveur), un facteur qui pèse sur le LCP et donc sur les Core Web Vitals, eux-mêmes pris en compte par Google dans son évaluation de l’expérience de page.
À quelle fréquence faut-il nettoyer sa base de données WordPress ?
Un contrôle mensuel léger (transients, révisions) suffit sur un site actif. Un audit complet avec vérification de l’autoload et des tables orphelines une à deux fois par an est raisonnable pour la plupart des sites.
Un plugin de nettoyage suffit-il, ou faut-il passer par SQL ?
Un bon plugin (WP-Optimize, Advanced Database Cleaner) couvre l’essentiel pour un usage courant. Le SQL ou WP-CLI reste utile pour diagnostiquer précisément l’autoload et traiter des cas que l’interface graphique ne détaille pas.
Peut-on casser son site en nettoyant la base de données ?
Oui, si une table ou une option encore utilisée est supprimée sans vérification. D’où l’importance d’une sauvegarde complète avant toute intervention et d’un contrôle du site après chaque étape.
Faut-il limiter les révisions dès la création du site ?
C’est la meilleure pratique. Ajouter define('WP_POST_REVISIONS', 5); dans le wp-config.php dès le lancement évite l’accumulation plutôt que de devoir la traiter a posteriori.
L’autoload de wp_options a-t-il plus d’impact que les transients ?
Souvent oui. Une seule option lourde en autoload se charge sur chaque page vue, alors que les transients expirés n’impactent que les requêtes qui les consultent. Mesurer l’autoload est la première chose à faire.
À propos de l’auteur
Aymeric Maingé
Consultant SEO senior avec plus de 10 ans d’expérience, côté agence et annonceur. Il accompagne des sites WordPress, e-commerce et lead gen sur des problématiques de SEO technique, de performance web, de Core Web Vitals et d’expérience utilisateur. Son approche croise audit terrain, priorisation métier et recommandations actionnables pour les équipes marketing et IT. Votre consultant SEO pour WordPress.
Méthodologie utilisée
Analyse basée sur des audits de bases de données WordPress menés en clientèle (mesure de l’autoload via requêtes SQL directes, comparaison avant/après nettoyage), croisée avec la documentation technique WordPress.org sur les transients et les révisions, et les retours d’expérience de plusieurs guides spécialisés en optimisation de base de données.
À lire aussi
Les autres articles sur le sujet
Core Web Vitals WordPress : la checklist complète LCP, INP, CLS avec seuils exacts, protocole de test et articles liés avant…
Lire l’article
Images, lazy loading, WebP, AVIF : la checklist réelle et complète pour accélérer un site WordPress et améliorer durablement votre…
Lire l’article
Scripts CSS/JS inutiles sur WordPress : comment les identifier et les désactiver page par page, avec ou sans plugin, sans casser…
Lire l’article
LCP WordPress en 2026 : causes fréquentes (TTFB, images, preload) et solutions concrètes pour passer sous les 2,5 secondes visées…
Lire l’article
Le CLS fait fuir vos visiteurs et pénalise votre référencement. Images, polices web, publicités : les vraies causes et les…
Lire l’article
WP Rocket booste-t-il vraiment votre SEO ? Configuration réglage par réglage, erreurs à éviter, diagnostic des ralentissements et…
Lire l’article
À environnement comparable, Gutenberg part avec un avantage natif sur la vitesse et la légèreté du code, là où Elementor offre…
Lire l’article
Guide expert pour améliorer l’INP d’un site WordPress sous Elementor : diagnostic Search Console et DevTools, structure DOM,…
Lire l’article

