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 bdd WordPress
- Comment faire une sauvegarde de bdd WordPress
- Optimiser la bdd via le fichier wp-config
- Les requêtes SQL pour nettoyer sa base de données
- Des plugins pour nettoyer la base de données WordPress
- Conclusion sur le nettoyage de bdd
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.
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 bdd via le fichier wp-config
Voyons maintenant quelques astuces pour optimiser sa base de données facilement et en gestion “automatique” par WordPress à partir du fichier wp-config qui se situe à la racine de votre site. C’est le fameux fichier que vous avez configuré manuellement ou via l’interface WordPress à l’installation. Vous pouvez insérer dans celui-ci les codes suivants.
Si vous publiez beaucoup, il arrive que votre base de données soit un peu surchargée par la corbeille , si on la vidait automatiquement tous les X jours (X étant un chiffre) :
[pastacode lang=”php” manual=”define(%E2%80%98EMPTY_TRASH_DAYS%E2%80%99%2C%20X%20)%3B” message=”Vider la corbeille automatiquement tous les X jours” highlight=”” provider=”manual”/]L’une des plaies lorsque l’on publie beaucoup, ce sont les révisions d’articles et de pages qui viennent gonfler la bdd. Ces codes insérés au choix dans votre fichier wp-config permettent d’en limiter les effets :
[pastacode lang=”php” manual=”define(%E2%80%98WP_POST_REVISIONS%E2%80%99%2C%20false%20)%3B” message=”Arrêter les révisions des articles et pages de WordPress” highlight=”” provider=”manual”/] [pastacode lang=”php” manual=”define(%E2%80%98WP_POST_REVISIONS%E2%80%99%2C%20X%20)%3B” message=”Limiter les révisions des articles et pages de WordPress au nombre de X” highlight=”” provider=”manual”/]Les requêtes SQL pour nettoyer sa base de données
Si vous ne vous sentez pas à l’aise avec le langage SQL et phpMyAdmin en particulier, vous pouvez aller voir les extensions proposées ci-dessous. Cela étant dit, voici quelques requêtes que vous pouvez utiliser pour traiter les tables vues plus haut.
Allez dans l’autre cas sur l’onglet SQL si vous êtes sur phpMyAdmin :
Si vous souhaitez supprimer les révisions de la base de données, ça se passe dans wp_posts d’où la requête “DELETE FROM” suivante :
[pastacode lang=”sql” manual=”DELETE%20FROM%20%E2%80%98wp_posts%E2%80%99%20WHERE%20%E2%80%98post_type%E2%80%99%20%3D%20%E2%80%98revision%E2%80%99%0A” message=”supprimer les révisions de la bdd WordPress” highlight=”” provider=”manual”/]Ici la commande WHERE permet d’extraire les lignes d’une base de données qui respectent la condition choisie. Cela discrimine les informations souhaitées.
Toujours dans la même table, on peut supprimer les sauvegardes automatiques de pages et d’articles :
[pastacode lang=”sql” manual=”DELETE%20FROM%20%E2%80%98wp_posts%E2%80%99%20WHERE%20%E2%80%98post_status%E2%80%99%20%3D%20%C2%AB%20auto-draft%20%C2%BB” message=”supprimer les sauvegardes automatiques de la bdd WordPress” highlight=”” provider=”manual”/]On sait que les extensions viennent gonfler la bdd, d’autant que certaines sont peut être inactives (au passage supprimez-les). En accumulant de nombreuses données issues des tests que vous avez opérés (combien de plugin essayez-vous avant de trouver le bon ?).
Veillez bien à faire une sauvegarde avant cette opération :
La commande LIKE permet une recherche en spécifiant un mot (ou une partie d’un mot).
La table wp_commentmeta (utilisée par Askimet), elle est forcément bien chargée, pour la nettoyer procédez comme ceci :
[pastacode lang=”sql” manual=”DELETE%20FROM%20wp_commentmeta%0AWHERE%20comment_id%20NOT%20IN%20(%0ASELECT%20comment_id%0AFROM%20wp_comments)%3B” message=”Nettoyer la table wp_commentmeta” highlight=”” provider=”manual”/]Pour le cas d’Askimet, allez d’abord vérifier son état :
[pastacode lang=”sql” manual=”SELECT%20*%0AFROM%20wp_commentmeta%0AWHERE%20meta_key%20LIKE%20%E2%80%98%25akismet%25%E2%80%99″ message=”Vérifier la table wp_commentmeta por Askimet” highlight=”” provider=”manual”/]Puis, passez éventuellement à la suppression :
[pastacode lang=”sql” manual=”DELETE%20FROM%20wp_commentmeta%0AWHERE%20meta_key%20LIKE%20%E2%80%98%25askimet%25%E2%80%99″ message=”NEttoyer la surchage Askimet dans la table wp_commentmeta” highlight=”” provider=”manual”/]Supprimer directement les spams est possible. Ces commentaires sont très encombrants. Notez que vous pouvez (!?) changer les valeurs ci-dessous avec 0 pour le commentaires en cours de modération et 1 pour les commentaires approuvés :
[pastacode lang=”sql” manual=”DELETE%20FROM%20wp_comments%20WHERE%20comment_approved%20%3D%20%E2%80%98spam%E2%80%99%3B” message=”supprimer les commentaires spams de votre bdd wordpress” highlight=”” provider=”manual”/]Vous créez des liens entre vos articles, vous avez peut-être noté les pingbacks (rétroliens) issus d’autres sites si vous avez coché l’option dans Réglages -> Options de discussion. Il est possible de les supprimer via cette requête :
[pastacode lang=”sql” manual=”DELETE%20FROM%20wp_comments%20WHERE%20%E2%80%98comment_type%E2%80%99%20%3D%20%E2%80%98pingback%E2%80%99%3B” message=”supprimer les pingbacks de WordPress” highlight=”” provider=”manual”/]Optimiser l’ensemble des tables est possible d plusieurs manières mais la requête à utiliser est la suivante pour défragmenter la bdd :
[pastacode lang=”sql” manual=”OPTIMIZE%20TABLE%20le_nom_de_la_table” message=”Optimiser une table de la bdd de WordPress” highlight=”” provider=”manual”/]Bon nous avons fait le tour des requêtes concernant le sujet. Passons aux plugins.
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…