Sur les sites lents que nous recevons en dépannage, nous ouvrons phpMyAdmin avant de toucher au moindre plugin. Le diagnostic tombe vite. Une table wp_options à 80 Mo, quatre cents révisions sur la page d’accueil, des tables laissées par des extensions supprimées il y a deux ans. Le propriétaire n’a rien cassé. Sa base a grossi en silence, et personne ne lui a dit qu’elle demandait un entretien. Ce guide décrit comment la nettoyer sans rien perdre, avec un plugin ou à la main.
Pourquoi votre base de données gonfle
WordPress conserve tout par défaut. Chaque modification d’un article crée une révision complète. Un site de dix ans avec deux cents articles peut stocker plusieurs milliers de copies de contenus que personne ne relira. Les brouillons automatiques s’ajoutent au tas, ainsi que les commentaires indésirables et les articles à la corbeille.
Le deuxième coupable se cache dans wp_options. Les transients servent de cache temporaire aux plugins. Ils devraient expirer et disparaître. Une partie reste. Sur un site que nous avons audité cet été, les transients expirés occupaient 40 Mo à eux seuls, car un plugin de flux social en créait des centaines par jour sans jamais purger les anciens.
Restent les tables orphelines. Vous supprimez un plugin, WordPress efface ses fichiers, mais ses tables survivent dans la base. Un constructeur de pages testé un week-end peut laisser derrière lui dix tables et des milliers de lignes. Cette accumulation pèse sur chaque requête. Une base obèse peut d’ailleurs finir par provoquer des symptômes visibles, jusqu’à l’erreur de connexion à la base de données quand le serveur MySQL sature.
Sauvegardez avant de toucher quoi que ce soit
Ne lancez jamais un nettoyage de base sans une sauvegarde du jour. Une suppression de table est irréversible. Le fichier de la veille ne suffit pas si vous avez publié ce matin.
Exportez la base complète depuis phpMyAdmin (onglet Exporter, format SQL) ou en ligne de commande si vous avez un accès SSH :
wp db export sauvegarde-avant-nettoyage.sql
Vérifiez la taille du fichier exporté. Un export de 2 Ko sur une base de 200 Mo signale un export raté. Testez la restauration sur une copie locale si l’enjeu le justifie, car une sauvegarde jamais testée reste une hypothèse.
Le nettoyage avec un plugin
Installez WP-Optimize. Le plugin liste les révisions, brouillons automatiques, commentaires indésirables, transients expirés, et propose de les purger en un clic. Il optimise aussi les tables InnoDB et MyISAM. Son défaut : il ne détecte pas les tables orphelines des plugins supprimés, et sa version gratuite pousse des encarts publicitaires dans l’administration. Advanced Database Cleaner comble ce manque. Sa détection des tables orphelines reste prudente, il marque des tables comme « inconnues » sans trancher, et la décision finale vous revient.
Procédez dans cet ordre :
- Purgez les révisions en conservant les deux ou trois dernières par contenu.
- Supprimez les transients expirés, puis observez le site pendant une journée.
- Videz corbeille, brouillons automatiques et commentaires indésirables.
- Optimisez les tables en dernier, une fois le contenu allégé.
Le gain varie d’un site à l’autre. Certains perdent 60 % du poids de leur base et gagnent 100 à 300 millisecondes par page. D’autres ne gagnent presque rien, parce que leur lenteur venait du thème ou de l’hébergement. Le nettoyage allège le moteur, il ne répare pas les pièces défectueuses.
Le nettoyage manuel, pour aller plus loin
Les plugins s’arrêtent où commence le sur-mesure. Pour limiter les révisions à la source, ajoutez cette ligne dans wp-config.php, au-dessus de la ligne « That’s all, stop editing » :
define('WP_POST_REVISIONS', 3);
Pour purger les transients expirés à la main, exécutez dans phpMyAdmin :
DELETE FROM wp_options WHERE option_name LIKE '%\_transient\_%' AND option_name NOT LIKE '%\_transient\_timeout\_%';
Adaptez le préfixe wp_ si votre installation en utilise un autre. Ne supprimez jamais une table dont vous ignorez l’origine. Cherchez son préfixe sur le web avant de trancher, car certaines tables au nom obscur appartiennent à des plugins actifs qui casseront sans elles. Nous avons vu un site perdre toutes ses commandes WooCommerce après la suppression d’une table jugée « inutile » par son propriétaire.
Faire soi-même ou déléguer
Si votre site est un blog ou un site vitrine avec une base sous 100 Mo, faites ce nettoyage vous-même. Sauvegarde, WP-Optimize, une heure de travail. Recommencez tous les trois à six mois et le sujet est réglé.
Le recours à un prestataire se justifie quand l’inventaire fait peur. Une boutique WooCommerce avec des années d’historique de commandes, une base au-delà de 500 Mo, des tables orphelines par dizaines dont personne ne connaît l’origine, ou un site déjà instable où la moindre erreur coûte du chiffre d’affaires. Dans ces cas, le nettoyage de base fait partie de ce que nous couvrons dans notre service de maintenance WordPress, avec sauvegarde testée avant chaque intervention. Pour les boutiques en ligne, notre maintenance WooCommerce inclut un suivi spécifique de la base et de ses tables de commandes.
Une base propre ne se voit pas. Elle se sent dans les temps de réponse de l’administration, dans les sauvegardes qui prennent deux minutes au lieu de vingt, et dans les migrations qui se passent sans surprise.
