Image de fond: Optimiser la base de données de WordPress

Optimiser la base de données de WordPress

Mise à jour le :

Un technicien qui optimise une auto WordPress

Lorsque l’on parle d’optimisation de WordPress, la plupart des utilisateurs se tournent rapidement vers des solutions populaires comme les systèmes de mémoire tampon (cache), l’optimisation des images ou encore la réduction du nombre d’extensions. Ces trois stratégies, bien qu’essentielles, offrent des améliorations notables pour les performances d’un site WordPress. Cette popularité s’explique par leur facilité d’application, grâce à une multitude d’extensions disponibles sur le marché. Bien entendu, certaines sont plus efficaces que d’autres, mais cela ne constitue pas notre sujet principal aujourd’hui.

Malgré ces efforts, un aspect crucial est souvent laissé de côté : la base de données. Pourtant, elle joue un rôle fondamental dans la performance globale du site. C’est la raison pour laquelle, dans cet article, nous allons explorer comment l’optimisation de la base de données peut transformer votre site WordPress.

À quoi sert la base de données ?

Pour ceux qui ne sont pas familiers avec les rouages d’un site WordPress, il est important de comprendre que la base de données joue un rôle central. C’est dans cette dernière que sont stockées toutes les informations de votre site : les pages, les articles, les configurations, et bien plus encore.

Chaque fois qu’un visiteur accède à une page, plusieurs dizaines, voire centaines de requêtes sont envoyées à la base de données pour récupérer les informations nécessaires. Voici quelques exemples concrets :

  • Installation de base sans extension : Entre 10 à 30 requêtes SQL.
  • Site moyen avec quelques extensions : Entre 50 à 100 requêtes SQL.
  • Boutique en ligne : Entre 100 à 300+ requêtes SQL.

Ces requêtes, lorsqu’elles sont nombreuses ou mal optimisées, peuvent ralentir considérablement votre site.


Quels sont les aspects que l’on peut optimiser dans la base de données ?

Dans cet article, nous allons nous concentrer sur trois aspects principaux (et un bonus !) pour alléger la base de données et accélérer le chargement de votre site WordPress :

Un ébéniste qui travaille sur les sections d'une base de données.

1. Les index dans les tables de la base de données

Imaginez une base de données comme un grand classeur métallique contenant de nombreux documents importants. Si, chaque fois que vous avez besoin d’un document, vous devez ouvrir chaque tiroir un par un, cela prend du temps.

Les index résolvent ce problème en indiquant rapidement dans quel tiroir et dossier se trouve le document recherché. Dans une base de données, les index fonctionnent de la même manière, permettant d’accélérer les requêtes.

Nous verrons plus loin comment améliorer les index existants pour accélérer les performances.

2. Le nettoyage des données superflues

Reprenons l’allégorie du classeur : si celui-ci est rempli de documents obsolètes qui ne sont plus utilisés, il devient difficile de trouver les informations essentielles.

Moins il y a de documents dans le classeur, plus il est facile et rapide d’accéder à ce que l’on cherche. C’est pourquoi le nettoyage des données inutiles est une étape cruciale pour optimiser la base de données.

3. Les options chargées automatiquement

Pour offrir une expérience rapide à l’utilisateur, WordPress utilise une table d’options où il entrepose des données essentielles (provenant des extensions, du thème ou du noyau).

Par défaut, chaque nouvelle option ajoutée dans cette table demande à WordPress de la charger automatiquement en mémoire à chaque affichage de page. Cela peut rapidement s’accumuler et ralentir le site.

L’objectif est donc de réduire le nombre d’options chargées automatiquement pour optimiser les performances.

4. La cache objet (Bonus)

Une fois que la base de données est bien optimisée, on peut mettre en place une cache objet pour aller encore plus loin.

La cache objet consiste à stocker temporairement les résultats de requêtes dans un emplacement plus rapide d’accès. Ainsi, lorsque la même requête est répétée, le site n’a pas besoin de solliciter à nouveau la base de données.

Cette optimisation offre un gain de performance significatif, notamment pour les sites à fort trafic.


Optimisation de la base de données

Il est temps de plonger dans le vif du sujet, mais une petite mise en garde s’impose. Avant d’effectuer des modifications à votre base de données ou à votre site web, il est primordial d’effectuer une sauvegarde complète de la base de données ou du site.

Bien que nous prenions toutes les précautions possibles pour éviter les catastrophes, chaque site étant unique, il existe toujours un risque qu’une modification perturbe son bon fonctionnement.

Comment optimiser les indexes de la base de données de WordPress ?

Les indexes jouent un rôle crucial dans les performances d’une base de données. Ils permettent d’exécuter des requêtes beaucoup plus rapidement. Voici un comparatif de vitesse entre une requête avec index et sans index :

Nombre d’éléments dans la tableAvec indexe (ms)Sans indexe (ms / sec)
10,000 lignes1-10 ms50-500 ms
1,000,000 lignes10-50 ms1-5 secondes
10,000,000 lignes50-200 ms10-60+ secondes
Extension WordPress : Index WP MySQL for Speed

Pour optimiser les indexes dans votre base de données WordPress, nous recommandons l’extension Index WP MySQL For Speed développée par Oliver Jones. effet, cette extension offre une solution efficace pour corriger plusieurs faiblesses structurelles courantes présentes dans les bases de données WordPress.

Note : Il s’agit d’une extension à usage unique. Ainsi, une fois l’optimisation réalisée avec succès, vous pouvez la désinstaller sans crainte.

Étapes d’optimisation :

  1. Installation et activation : Rendez-vous dans le tableau de bord WordPress, installez l’extension et activez-la.
  2. Accès au menu : Une fois activée, l’extension ajoutera un lien intitulé Index MySQL dans le menu Outils.
  3. Améliorations proposées : L’extension propose trois types d’améliorations :
    • Mise à jour du format de stockage : Beaucoup de serveurs créent par défaut des bases de données utilisant le stockage MyISAM. L’extension propose de le remplacer par InnoDB, un format plus moderne qui limite les blocages en cas d’accès simultanés.
    • Ajout d’indexes (Add Keys) : L’extension ajoute des indexes haute performance pour accélérer les requêtes. Remarque : Cette option peut n’apparaître qu’après la mise à jour du format de stockage.
    • Conversion des indexes (Convert Keys) : Si certaines clés existent déjà, l’extension les optimise pour améliorer leur performance.

Finalisation

Une fois ces trois optimisations effectuées, les changements sont permanents. Aucune autre action ne sera requise dans le futur. Vous pouvez alors vous rendre dans le menu Extensions et désinstaller Index WP MySQL For Speed.

Comment nettoyer la base de données de WordPress ?

La base de données de WordPress peut avoir tendance à grossir de manière exponentielle avec le temps. Afin de la nettoyer efficacement, nous allons limiter le nombre de révisions que WordPress conserve et effectuer un grand nettoyage.

Un sculpteur réduit la taille d'une base de données WordPress.

Limiter le nombre de révisions dans WordPress

Lorsqu’on modifie une page ou un article, WordPress sauvegarde automatiquement chaque modification dans la base de données. Cela permet de revenir à une version précédente, mais chaque révision occupe de l’espace.

Par défaut, WordPress ne limite pas le nombre de révisions. Si une page est modifiée 100 fois, 100 versions de cette page existent dans la base. En règle générale, il est conseillé de conserver entre 3 et 5 révisions.

Pour limiter le nombre de révisions :

  1. Ouvrez le fichier wp-config.php de votre site WordPress (disponible dans le dossier racine, souvent nommé public_html ou www).
  2. Ajoutez les lignes suivantes avant la ligne / That's all, stop editing! Happy publishing. / :
/* Limiter les révisions */
define( 'WP_POST_REVISIONS', 3 );

Remplacez 3 par le nombre souhaité. Si vous ne voulez aucune révision, remplacez par 0.

Grand nettoyage de la base de données

Extension WordPress : Advance Database Cleaner

Pour nettoyer les entrées inutiles, nous allons utiliser l’extension Advanced Database Cleaner de Younes JRF. Cette extension permet d’identifier et de supprimer les données inutiles.

  • Installation et activation : Installez l’extension et activez-la.
  • Accès à l’outil : Un nouveau menu intitulé WP DB Cleaner apparaîtra dans la section Outils.
  • Analyse et nettoyage : L’extension affiche en rouge les enregistrements inutiles trouvés dans votre base de données.
    • Cochez toutes les tables, choisissez Clean dans le menu déroulant et cliquez sur Apply.

Astuce : Répétez l’opération si l’extension identifie de nouvelles entrées inutiles après le premier nettoyage.

Une fois le nettoyage effectué, vérifiez toutes les sections de votre site pour vous assurer que rien d’essentiel n’a été supprimé. Si une fonctionnalité est affectée :

  1. Restaurez votre sauvegarde.
  2. Procédez au nettoyage table par table pour identifier l’entrée à ne pas supprimer.

Comment réduire les options chargées automatiquement ?

Depuis la version 6.6 de WordPress, l’état du site vous avertit si plus de 800 KO d’options sont chargées automatiquement à chaque page. Ces options, stockées dans la base de données, sont chargées pour chaque visiteur et à chaque affichage de page. Cela peut rapidement ralentir la vitesse de votre site.

Malheureusement, WordPress ne propose pas de solution simple pour nettoyer ces options. Il est donc nécessaire d’intervenir directement dans la base de données en utilisant des requêtes SQL. Cette section vous guide à travers chaque étape pour réduire les options chargées automatiquement.

Note importante : Pour cette opération, des connaissances de base en requêtes SQL sont recommandées. Assurez-vous également d’avoir une sauvegarde complète de votre base de données.

Localisation de la bonne base de données

1. Ouvrez le fichier wp-config.php de votre site WordPress.

2. Recherchez la ligne suivante pour identifier le nom de la base de données :

 define( 'DB_NAME', 'nom_de_votre_base' );

3. Pour connaître le préfixe utilisé par vos tables, cherchez cette ligne :

 $table_prefix = 'wp_';

Le préfixe par défaut est wp_, mais il peut avoir été personnalisé lors de l’installation.

Nettoyage des transients

Les transients sont des données temporaires stockées dans la base de données par des extensions ou le cœur de WordPress pour améliorer les performances. Cependant, un excès de transients inutiles peut ralentir votre site.

Suppression des transients via PhpMyAdmin

  1. Connectez-vous à PhpMyAdmin depuis votre interface d’hébergement (comme cPanel).
  2. Sélectionnez votre base de données dans le menu de gauche.
  3. Recherchez et cliquez sur la table PREFIXE_options (remplacez PREFIXE_ par le préfixe identifié plus tôt).
  4. Cliquez sur l’onglet SQL en haut de la page.
  5. Saisissez la requête suivante pour supprimer les transients :
DELETE FROM `PREFIXE_options` WHERE `option_name` LIKE ('%_transient_%');
  1. Cliquez sur Go pour exécuter la requête.

Note : Les transients essentiels seront recréés automatiquement par WordPress ou les extensions lors des prochains chargements de pages.

Suppression des options liées aux anciennes extensions

Lorsque vous désinstallez une extension, ses options peuvent rester stockées dans la table PREFIXE_options et continuer à être chargées automatiquement. Voici comment identifier et supprimer ces entrées obsolètes.

Identifier les options chargées automatiquement

  1. Dans PhpMyAdmin, accédez à la table PREFIXE_options.
  2. Cliquez sur SQL et entrez la requête suivante pour afficher les options chargées automatiquement :
SELECT * FROM `PREFIXE_options` WHERE `autoload` = 'yes' ORDER BY `option_name` ASC;
  1. Examinez les résultats pour identifier les options appartenant à des extensions désinstallées. Les options portent souvent un préfixe unique. Par exemple :
    • Jetpack : jetpack_
    • Elementor : elementor_
    • WPForms : wpforms_
    • W3 Total Cache : w3tc_
    • Wordfence : wordfence_
    • Yoast SEO : wpseo_
  2. Identifiez les blocs d’options portant le même préfixe. Cela signifie qu’elles proviennent d’une même extension.
  3. Prenez en note les tous les préfixes qui n’appartienne pas à une extension utilisée dans votre site afin de pouvoir les supprimer à la prochaine étape.

Voici un exemple tiré d’un site WordPress :

Tables options de WordPress dans PhpMyAdmin

À l’intérieur de cette image, on voit des options utilisées par 4 extensions différentes :

  • « yoast_ » et « wpseo_ » : Yoast
  • « wpcf6 » : ContactForm7
  • « wp-smush » : Smush
  • « yarpp » : Yet Another Related Posts Plugin

Suppression des options obsolètes

Une fois les options inutiles, identifiées, exécutez la requête suivante pour supprimer ceux qui ont été identifiés à l’étape précédente :

DELETE FROM `PREFIXE_options` WHERE `option_name` LIKE 'PREFIXE-EXTENSION%';
  • Remplacez PREFIXE_ par le préfixe de vos tables.
  • Remplacez PREFIXE-EXTENSION par le préfixe des options de l’extension à supprimer.

Exemple : Pour supprimer les options de Yoast SEO avec le préfixe wpseo_ :

DELETE FROM `wp_options` WHERE `option_name` LIKE 'wpseo_%';

Précautions finales

  • Sauvegarde obligatoire : Avant d’effectuer une suppression d’options, assurez-vous d’avoir une sauvegarde récente de votre base de données.
  • Vérification : Après avoir supprimé les options, testez votre site pour vous assurer que tout fonctionne correctement.

Si une erreur survient, restaurez votre sauvegarde et réessayez en supprimant les options une à une.

En suivant ces étapes, vous réduirez efficacement les options chargées automatiquement et optimiserez la vitesse de votre site WordPress.


Comment ajouter de la cache objet dans WordPress ?

La mise en cache objet dans WordPress joue un rôle essentiel dans l’optimisation des performances. Cette technique sauvegarde directement les résultats des requêtes SQL, les rendant rapidement accessibles. Par conséquent, elle limite le besoin d’interroger systématiquement la base de données, ce qui améliore considérablement la vitesse d’un site.

Parmi les solutions les plus populaires, on retrouve Redis et Memcached. Ces outils stockent les résultats des requêtes dans la mémoire vive du serveur. Grâce à cette approche, WordPress peut accéder à ces données presque instantanément lors des visites suivantes, offrant ainsi une expérience utilisateur plus fluide et réactive.

Choisir une solution adaptée à votre environnement

  • Serveurs dédiés ou virtuels : Si vous gérez un serveur privé, l’utilisation de Redis ou Memcached est idéale pour des performances optimales.
  • Hébergements partagés : Ces environnements imposent des restrictions de sécurité qui limitent l’accès à Redis ou Memcached. Dans ce cas, une solution basée sur SQLite est recommandée.

Extensions recommandées

  1. SQLite Object Cache (pour hébergements partagés)
    • Cette extension, développée par Oliver Jones, utilise une base de données SQLite pour créer une cache objet. Elle offre des performances comparables à Redis pour les petits et moyens sites, tout en étant compatible avec la plupart des hébergements partagés.
  2. Redis Object Cache (pour serveurs privés)
    • Développée par Till Krüss, cette extension permet d’intégrer Redis à votre installation WordPress. Assurez-vous que Redis soit préalablement installé sur votre serveur avant d’activer l’extension.

Mise en place de la cache objet

Installation de SQLite Object Cache

  1. Rendez-vous dans Extensions > Ajouter sur votre tableau de bord WordPress.
  2. Recherchez l’extension SQLite Object Cache, puis installez-la et activez-la.
  3. La configuration est automatique et ne nécessite aucune intervention supplémentaire.

Installation de Redis Object Cache

  1. Assurez-vous que Redis est installé et configuré sur votre serveur.
  2. Installez et activez l’extension Redis Object Cache sur votre site WordPress.
  3. Allez dans Outils > Redis, puis cliquez sur Enable Object Cache pour activer la cache.

Bénéfices de la cache objet

  • Réduction du temps de chargement : Les résultats des requêtes SQL sont rapidement accessibles, allégeant la charge sur la base de données.
  • Amélioration des performances globales : Particulièrement utile pour les sites avec un trafic élevé ou une architecture complexe.
  • Compatibilité étendue : Avec des solutions comme SQLite Object Cache, même les hébergements partagés peuvent bénéficier d’une cache efficace.

En fonction de votre environnement, la mise en place de la cache objet peut représenter un gain significatif de performance pour votre site WordPress.


En résumé

L’optimisation de la base de données est une étape essentielle pour améliorer les performances d’un site WordPress. Souvent négligée, cette démarche peut considérablement réduire les temps de chargement et améliorer l’expérience utilisateur. Voici les principales actions à entreprendre :

  1. Optimiser les index : Améliorer les index des tables de la base de données accélère les requêtes SQL. L’extension Index WP MySQL For Speed simplifie cette optimisation, offrant une méthode efficace et rapide.
  2. Nettoyer les données inutiles : Réduire les révisions d’articles et supprimer les entrées obsolètes allègent la base de données, ce qui accélère les opérations. Des outils comme Advanced Database Cleaner facilitent cette tâche et garantissent une base de données plus performante
  3. Réduire les options chargées automatiquement : Identifier et supprimer les options inutilisées, souvent laissées par d’anciennes extensions, améliore la réactivité du site. Cette étape peut être accomplie à l’aide de requêtes SQL dans PhpMyAdmin pour un résultat précis et efficace.
  4. Mettre en place une cache objet : Enregistrer temporairement les résultats des requêtes SQL dans une mémoire rapide, grâce à des extensions comme Redis Object Cache ou SQLite Object Cache, réduit la charge sur la base de données et améliore la vitesse du site.

En appliquant ces stratégies de manière cohérente, vous obtenez une base de données parfaitement optimisée, assurant des performances accrues et une expérience utilisateur améliorée. Grâce à des outils adaptés et des méthodes éprouvées, ces améliorations sont à la portée de tous.


Commentaires

Laisser un commentaire

Votre adresse courriel ne sera pas publiée. Les champs obligatoires sont indiqués avec *