Comment réduire la charge de votre serveur SQL sous WordPress ?

Si votre site internet est trop long à charger, non seulement une partie de vos visiteurs n’aura pas la patience d’attendre, mais Google vous sanctionnera également dans ses résultats de recherche.
C’est pourquoi, comme de nombreux webmasters, je suis toujours à la recherche d’optimisations pour mon blog WordPress.

Je vous propose ici quelques astuces qui permettront de réduire le nombre de requêtes SQL de votre blog et donc de gagner de précieuses secondes.

Réduire le nombre d’extensions installées

Ce qui génère le plus d’appels SQL ce sont évidemment les extensions, une bonne méthode consiste donc à limiter le nombre d’extensions installées sur votre blog, pour réduire la charge du serveur.

Facile à dire, mais pas forcément à faire. Pour déterminer les extensions qui attaquent le plus votre base de données, vous pouvez installer l’extension Query Monitor.

Comment réduire la charge de votre serveur SQL sous WordPress ?

Pensez bien à la désactiver une fois votre analyse terminée et les « bons » plugins choisis.

Utiliser des extensions qui disposent de systèmes de cache

Certaines extensions disposent d’un système de cache à part entière, ce qui permettra de ne lancer des requêtes SQL que lors des rafraichissement de contenus.

C’est le cas des extensions suivantes :

Certaines extensions qui ne disposent pas d’un mécanisme de cache nativement peuvent tout de meme profiter d’un mécanisme de ce type lorsqu’ils sont adjoints à l’extension Plugin Outpout Cache.
C’est le cas des plugins Recent Posts, Similar Posts, Similar Posts Feed, Popular Posts ou encore Recent Comments.

Utiliser un plugin pour mettre en cache vos widgets

L’extension WP Widget Cache for WordPress propose de mettre en cache carrément tous les widgets de votre thème, ce qui réduira très significativement le nombre de requêtes SQL effectuées à chaque affichage de page. Je n’ai pas ouvert le plug-in pour regarder, mais je ne serais pas étonné qu’il utilise du buffering avec ob_cache et stocke les outputs sous forme de transients (c’est en tous cas ce que je ferais si on me demandait de développer un tel plugin).

Mettre en cache directement les requêtes SQL

Il existe au moins deux extensions qui permettent efficacement de mettre en cache toutes les requêtes SQL de votre blog.

  • W3 Total Cache propose parmi ses nombreuses options un module de cache des requêtes SQL
  • DB Cache Reloaded Fix est une extension autonome qui propose la meme chose plus efficacement mais peut aussi provoquer de gros problèmes quand elle s’arrête de fonctionner correctement.

Comment réduire la charge de votre serveur SQL sous WordPress ? #2

Mettre en cache statique les pages de votre site

Sans entrer dans les détails, dès que vous installez un vrai plugin de cache comme W3Total Cache, Super Cache, WP Rocket, etc., ces modules vont générer des pages statiques lors du premier affichage de chaque page (avec son lot de calculs SQL) et se contenter d’afficher cette page générée aux prochaines requêtes pendant la durée de vie du cache.

Comment réduire la charge de votre serveur SQL sous WordPress ? #3

Mécaniquement donc, l’usage d’un plugin de cache va également réduire la charge à laquelle sera soumise votre serveur SQL.

Installer Memcached

Le top du top si vous souhaitez réduire la charge de votre serveur mySQL reste d’installer Memcached. Il s’agit d’un module installé au niveau du serveur qui n’est pas disponible pour tous les types d’hébergement mutualisé. A ma connaissance il est toutefois disponible chez o2switch et peut-être aussi chez Planet Hoster (à confirmer).

Pour un fonctionnement optimal, il est recommandé d’installer un plugin WordPress de gestion de cache, mais ayant toujours eu des bugs avec ceux que j’ai testé, j’ai développé le mien. Je vous conseille tout de meme Memcached is your friend, qui me semble etre celui qui fonctionne le mieux.

Je vous invite ensuite à installer phpMemecacheAdmin afin de monitorer le comportement du cache.

Comment réduire la charge de votre serveur SQL sous WordPress ? #4

Avec ces différentes astuces j’ai réduit considérablement le nombre moyen de requêtes SQL sur mes sites, alors à vous de jouer !

5 1 voter
Noter cet article

guest
7 Commentaires
le plus populaire
le plus récent le plus ancien
Inline Feedbacks
View all comments
Alae
Alae
11 mars 2011 3 h 53 min

Merci pour cet article, en effet c'est bien pratique !

Nathalie
Nathalie
15 mars 2013 20 h 42 min

Bonjour,

Merci beaucoup pour toutes ces infos. Mais lorsque l’on a installer CloudFlare, lesquels de ces plugins sont compatible avec celui-ci et lesquels ne sont pas compatible.
Peut-on par exemple installer « Plugin Outpout Cache » ?
j’aurais aussi voulu optimiser, compresser, mes images et je ne veux pas de « Smush.it », car il ne fait pas grand chose et quand il fonctionne. Connaîtriez-vous un bon logiciel autre que Paint ou Photoshop et qui puisse le faire correctement et si possible par lots ?

En vous remerciant
Cordialement

Rodrigue
Rodrigue
5 avril 2013 1 h 10 min

Merci pour le listing, je ne connaissais pas le plugin de mise en cache des widgets, je suis dans ma phase je tente d’optimiser les requêtes, j’ai encore du taf 🙂

kindy
kindy
22 juin 2013 23 h 00 min

C’est une bombe ses deux plugin WP Widget Cache for WordPress, W3 Total Cache dès après l’installation et le paramétrage c’est comme une fusé mon blog je suis super content. Le résultat avec gtmetrix avant et après c’était largement au dessus.

belaid
belaid
28 avril 2020 1 h 45 min

Bonjour a tous
Hébergeur : LWS
Site: mobiveta.com
wordpress version 5.4
Theme: rehub
Plugin : 13

Le problème que j’ai sur mon site est le suivant , (je ne sais pas s’il s’agit exactement du même sujet)
déja il s’agit d’un site d’affiliation sous forme d’une boutique, j’ajoute des produits d’une manière manuel et a un certain moment quand je fais beaucoup d’opérations simultanément tout les liens de mon site son rediriger vers la /wp-admin/install.php
alors j’ai pensé a supprimé directement le fichier dans le cpanel pour évité que mon site soit réinstaller par un visiteur.
svp si vous avez des solutions aidez-moi
merci