Votre base de données WordPress se met à gonfler comme la grenouille de la fable, ralentissant le site ? Votre hébergeur vous a bloqué en lecture seule car votre base de données dépasse la taille autorisée ? Faire un nettoyage via les plugins devient soit impossible soit inefficace, il faut plonger dans votre base données via phpMyAdmin.

Voici un récapitulatif des commandes SQL les plus utiles pour nettoyer et optimiser votre base de données.
Sommaire
I/ Sauvegarder la Base de données
Avant toute manipulation, une (et même plusieurs) sauvegarde complète de votre base de données est impérative.
- Votre hébergeur met certainement à votre disposition un système de sauvegarde ponctuel de votre système complet ou de votre base de données.
- Exporter la base complète via l’outil phpMyAdmin
II/ Nettoyer les tables de base de WordPress
1. Supprimer les révisions d’articles
WordPress enregistre les révisions de chaque article, ce qui alourdit la base. Si vous ne lui avez pas mis de limite de conservation (via wp-config), les révisions sont conservées à l’infini.
DELETE FROM wp_posts WHERE post_type = 'revision';
2. Supprimer les brouillons et articles en corbeille
DELETE FROM wp_posts WHERE post_status IN ('auto-draft', 'trash');
3. Suppression des commentaires indésirables
a) Commentaires en spam
DELETE FROM wp_comments WHERE comment_approved = 'spam';
b) Commentaires en attente de validation
DELETE FROM wp_comments WHERE comment_approved = '0';
4. Nettoyer les métadonnées orphelines
a) Métadonnées d’articles
DELETE pm FROM wp_postmeta pm LEFT JOIN wp_posts p ON p.ID = pm.post_id WHERE p.ID IS NULL;
b) Métadonnées d’utilisateurs
DELETE um FROM wp_usermeta um LEFT JOIN wp_users u ON u.ID = um.user_id WHERE u.ID IS NULL;
c) Métadonnées de commentaires
DELETE cm FROM wp_commentmeta cm LEFT JOIN wp_comments c ON c.comment_ID = cm.comment_id WHERE c.comment_ID IS NULL;
5. Nettoyer les transients (données temporaires)
DELETE FROM wp_options WHERE option_name LIKE ('_transient_%') OR option_name LIKE ('_site_transient_%');6. Nettoyer les actions
DELETE FROM wp_actionscheduler_actions WHERE status IN ('complete', 'canceled', 'failed')
AND scheduled_date_gmt < NOW() - INTERVAL 30 DAY;
DELETE FROM wp_actionscheduler_logs WHERE action_id NOT IN (SELECT action_id FROM wp_actionscheduler_actions);II/ Nettoyage des tables de base Woocommerce
1. Supprimer les produits en brouillon ou corbeille (WooCommerce)
DELETE FROM wp_posts WHERE post_type = 'product' AND post_status IN ('draft', 'trash');
2. Supprimer les sessions WooCommerce expirées
Woocommerce ancien et mixte (ancien et HPOS)
WooCommerce stocke des sessions utilisateur qui peut rapidement encombrer la base.
DELETE FROM wp_options WHERE option_name LIKE '_wc_session_%';
WooCommerce HPOS et mixte (ancien et HPOS)
Si WooCommerce utilise HPOS (High-Performance Order Storage), les sessions sont stockées dans des tables spécifiques.
DELETE FROM wp_woocommerce_sessions WHERE session_expiry < UNIX_TIMESTAMP();
DELETE FROM wp_options WHERE option_name LIKE ('_transient_%') OR option_name LIKE ('_site_transient_%');
III/ Optimiser les tables
Une fois le nettoyage effectué, optimisez les tables pour récupérer de l’espace.
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_commentmeta, wp_options, wp_users, wp_usermeta, wp_actionscheduler_actions, wp_actionscheduler_logs;
IV/ Manipuler phpMyAdmin
Connectez vous à votre phpMyAdmin, (au besoin vos informations de connexion sont dans votre fichier wp-config.php).
Exporter votre base de données.
Passer les commandes SQL en remplaçant le wp_ par le préfixe de vos tables.

Besoin de nettoyer votre base de données ?
Vous craignez de le faire seul ? Travailler sur la base de données vous fait stresser ? Votre coach WordPress est là pour vous guider, et plus si nécessaire






