Le temps de chargement d’un site Internet est important. Dans de nombreux cas, la lenteur des réponses d’un site peut vous faire perdre des visiteurs. En matière de référencement, cela n’a pas d’impact pour le positionnement d’un site selon John Mueller. Cela reste essentiel tout de même puisque l’on a pu constater dans des cas extrêmes de lenteur une forme de pénalité appliquée par Google mais surtout… Dans tous les cas, c’est très mauvais pour l’utilisateur qui est de plus en plus soucieux d’avoir une réponse rapide, donc pour commencer un affichage rapide du site Internet qu’il consulte. On se rappellera également que Google a déposé un brevet sur l’expérience utilisateur. Par ailleurs, cette vitesse d’affichage apparaît également dans Google Page Speed Insights. En ce qui concerne WordPress, la base de données peut vraiment grossir puisqu’elle stocke toutes les informations dans ses tables.
Et le principe est de faire vivre votre site… donc de faire grossir cette bdd. Vous avez certainement besoin de faire un peu de nettoyage, voici un article assez complet sur le sujet. Tout d’abord un petit sommaire pour aller à la section qui vous intéresse :
- Quelques précisions sur la bdd WordPress
- Nettoyer facilement la base de données WP
- Optimiser la base de données via le fichier wp-config.php
- Vider automatiquement la corbeille tous les X jours
- Limiter ou désactiver les révisions d’articles
- Les requêtes SQL pour nettoyer sa base de données
- Supprimer les révisions d’articles
- Supprimer les brouillons automatiques
- Nettoyer les transients obsolètes
- Nettoyer la table wp_commentmeta (données orphelines)
- Rechercher les métadonnées liées à Akismet
- Supprimer les métadonnées Akismet
- Supprimer tous les commentaires spam
- Supprimer les pingbacks (rétroliens)
- Optimiser une table spécifique
- Des plugins pour nettoyer la base de données WordPress
- Conclusion sur le nettoyage de bdd pour améliorer la vitesse de site
Quelques précisions sur la bdd WordPress
A l’installation, WordPress met en place onze tables dans la base de données. Vous pouvez visualiser ces tables en vous connectant avec PHP MyAdmin. C’est là où sont stockées toutes les informations du site comme le contenu des articles, des pages, des catégories. C’est aussi là que l’on va retrouver les extensions, les thèmes les informations sur les utilisateurs ou encore la configuration de WordPress.
De base, ces tables ont le préfixe wp_ que vous avez certainement changé lors de l’installation, c’est conseillé 🙂
Évidemment, on ne se limite pas à ces 11 tables dans le plus grand nombre de cas puisque votre thème ou une simple extension supplémentaire comme Contact form 7 va générer d’autres tables. Ces nouvelles tables peuvent apparaître aussi dans le cas du mode multisite.
Exemple issu de PhpMyAdmin :
wp_commentmeta : Elle stocke les meta informations sur les commentaires. Si vous avez installé Askimet (notez qu’il existe des alternatives), cette extension de base dans les installations utilise cette table.
wp_comments : Comme son nom l’indique, la table qui stocke les commentaires des articles et pages.
wp_links : Elle regroupe tous les liens de « feu l’onglet Liens » dans l’administration de WP (utile pour des versions anciennes).
wp_options : Vous y trouverez les configurations générales du site, notamment celles que vous renseignez durant son installation.
wp_postmeta : Liée à la suivante (wp_posts), cette table regroupe des informations complémentaires en rapport avec les pages et articles.
wp_posts : C’est une table clef de WordPress car elle stocke les données sur les posts, pages, médias (images, docs pdf et vidéo), ou même les produits dans les extensions E-commerce.
wp_terms : Vous y retrouverez les étiquettes (mots-clés). C’est donc une table en lien direct avec la taxonomie de WP (wp_term_relationships et wp_term_taxonomy).
wp_term_relationships : La table qui permet l’association des étiquettes (mots-clés, tags) avec les articles et pages. En lien donc avec la précédente et la suivante.
wp_term_taxonomy : On y retrouve des informations complémentaires concernant les éléments de taxonomie précités (catégorie et étiquettes). Elle est utile pour la différentiation de ces éléments.
wp_usermeta : Cela concerne la configuration des utilisateurs. Quel est leur rôle ? Quelles sont les informations complémentaires ?
wp_users : Le stockage des utilisateurs, c’est là. C’est pratique notamment pour retrouver leurs noms et leur mot de passe, mais aussi l’adresse mail. Besoin de changer le mot de passe ? c’est donc possible de le faire ici.
Nettoyer facilement la base de données WP
Alors il existe plusieurs plugins intéressants pour traiter sa base de données assez facilement et sans risquer d’aller mettre les mains dans la base directement.
Après un rappel sur la sauvegarde de bdd, nous allons voir comment la nettoyer sans extension.
Dans tous les cas, faites une sauvegarde de votre base !
Comment faire une sauvegarde de bdd WordPress
C’est assez simple, rendez-vous sur votre interface de base de données (généralement phpMyAdmin comme dans l’exemple ci-dessous) et l’onglet « Exporter ».
Choisissez la méthode d’exportation personnalisée pour avoir la proposition d’un format de compression d’export de la sortie du fichier (zip et aucune).
Mettez un fichier zipé et un autre non zipé ensuite à la racine de dossier de sauvegarde de votre site internet que vous avez préalablement récupéré entièrement via le FTP et placé sur un disque dur ou tout autre support-cloud, vous pourrez ainsi utiliser cette sauvegarde en cas de crash :
Inutile pour la manipulation présente de toucher à « options spécifiques au format« , faites « exécuter ».
Optimiser la base de données via le fichier wp-config.php
WordPress permet d’optimiser automatiquement certains aspects de votre base de données en ajoutant des lignes de code dans le fichier wp-config.php
, situé à la racine de votre site. Voici quelques exemples :
Vider automatiquement la corbeille tous les X jours
define('EMPTY_TRASH_DAYS', 7); // Remplacez 7 par le nombre de jours désiré
Limiter ou désactiver les révisions d’articles
define('WP_POST_REVISIONS', false); // Désactive complètement les révisions
define('WP_POST_REVISIONS', 3); // Limite à 3 révisions par article
Les requêtes SQL pour nettoyer sa base de données
Si vous êtes à l’aise avec phpMyAdmin, vous pouvez exécuter les requêtes suivantes via l’onglet SQL. N’oubliez pas de faire une sauvegarde de votre base avant toute modification.
Supprimer les révisions d’articles
DELETE FROM wp_posts WHERE post_type = 'revision';
Supprimer les brouillons automatiques
DELETE FROM wp_posts WHERE post_status = 'auto-draft';
Nettoyer les transients obsolètes
DELETE FROM wp_options WHERE option_name LIKE '%transient%';
Nettoyer la table wp_commentmeta (données orphelines)
DELETE FROM wp_commentmeta
WHERE comment_id NOT IN (
SELECT comment_id FROM wp_comments
);
Rechercher les métadonnées liées à Akismet
SELECT * FROM wp_commentmeta
WHERE meta_key LIKE '%akismet%';
Supprimer les métadonnées Akismet
DELETE FROM wp_commentmeta
WHERE meta_key LIKE '%akismet%';
Supprimer tous les commentaires spam
DELETE FROM wp_comments
WHERE comment_approved = 'spam';
Supprimer les pingbacks (rétroliens)
DELETE FROM wp_comments
WHERE comment_type = 'pingback';
Optimiser une table spécifique
OPTIMIZE TABLE wp_posts; -- À adapter selon la table que vous souhaitez optimiser
Vous pouvez répéter l’opération pour toutes les tables de votre base de données WordPress afin de défragmenter et améliorer les performances globales.
Des plugins pour nettoyer la base de données WordPress
Inutile de rappeler qu’une sauvegarde de votre base est recommandée (enfin voilà qui est fait 🙂 ).
WP-Optimize, très utilisé et performant
On a tendance a être exaspéré par les spammeurs du Web, WP-Optimize va vous permettre de traiter le problème sans aller mettre la main à la patte dans votre bdd. Voici une capture d’écran possible après installation :
Vous pouvez constater que nombre des commandes sont exécutables ici. Concernant les données en rouge, et notamment les options transitoires (transcients), vous pouvez également les supprimer sans pour autant les discriminer.
Si vous souhaitez en savoir plus sur le sujet, je vous invite à lire cet article très détaillé de WP Formation.
Notez que vous pouvez voir les tables de votre installation dans l’onglet éponyme :
Et vous constatez que sur de petites installations déjà, on retrouve vite des tables supplémentaires et la taille des tables en question.
L’onglet réglages va vous permettre d’automatiser les opérations :
Pensez à votre temps pour réaliser des articles avant d’aller plus loin.
Il arrive que l’on puisse passer plusieurs jours avec un brouillon d’article avant de le publier, parfois il faut que cela murisse… La programmation par défaut de WP Optimize est donc à réfléchir avant de la mettre en place.
WP clean up, extension plus simple mais fonctionnelle
Une autre extension, moins paramétrables et donc plus simple d’usage, c’est WP Clean Up. En voici un screenshot :
Conclusion sur le nettoyage de bdd pour améliorer la vitesse de site
En matière de référencement, on a vu en introduction que c’était discutable. Ce qui l’est moins, c’est que l’utilisateur commence à douter après quelques secondes et que dans l’essentiel des cas, ce « petit » temps d’attente peut suffire à faire perdre le sens de la requête initiale. Pourquoi suis-je là déjà ?
Le nettoyage de la base de données n’est peut être pas le seul problème. Il arrive également que l’affichage soit un soucis pour d’autres raisons que des outils d’analyse vont tout ou partie vous donner. On pense naturellement à la taille des images, le javascript qui doit autant que possible apparaître en pied de page, l’optimisation en un seul fichier CSS, le non usage d’un système de cache, etc. Enfin une optimisation de la bdd est intéressante du point de vue de la sécurité. Pourquoi garder des éléments inutiles ?
Merci pour cet excellent article. C’est vrai que quand on test certains plugins, il laisse des traces. J’ai par exemple des tables qui ne servent plus à rien.
Pareil, j’ai la table post_meta qui pèsent 15 MO… sûrement dû au thème et plugins…