Optimiser les performances de WordPress en activant son cache ? Pas si sur !
Je vois régulièrement des personnes sur le forum, s’exclamant à la vue du nombre de requêtes, à l’exécution de WordPress.
Pas de panique.
Le nombre de requêtes, pour une installation de base, est situé entre 9 et 15 requêtes. (Ce qui est très correct pour un logiciel de ce type)
Ce nombre est susceptible d’augmenter à chaque ajout de plug-in, et particulièrement les plug-ins affichant des informations supplémentaires dans vos articles et sidebar, comme tags, notation, image jointe, etc.
Il n’est pas rare de voir certains blogs turbiner à plus de 150 requêtes !!!
Il est donc important de cibler les plug-ins nécessaires à votre blog, et surtout désactiver les plug-ins non utilisés. (Ça ne pourra qu’alléger les performances de votre blog !) N’oubliez pas non plus de contrôler les mises à jours de vos plug-ins, les développeurs optimisent majoritairement leur plug-in, après la sortie initiale du plug-in. (tout en profitant des ajouts de fonctionnalités, corrections de bugs…)
Comment fonctionne le cache de WordPress ?
Le système de cache de WordPress est non persistant.
Je m’explique, lorsqu’une personne va consulter une page de votre blog, WordPress va mettre en cache (donc dans un fichier) toutes les informations (articles, liens, catégories, etc.) pour une durée de 15 minutes. Durant ces 15 minutes, à chaque page que consulteront les visiteurs, WordPress ne consultera pas votre base de données, mais directement le cache.
Ce qui permet d’économiser des requêtes, et d’augmenter la rapidité d’affichage.
Pourquoi le cache n’est pas activé par défaut ?
C’est très simple.
Lors de la 1ère visite, WordPress met toutes les informations en cache, il effectue alors un grand nombre de requêtes, 30 à 40 en plus comparé à la même page cache désactivé !
Prenons le cas d’un blog à faible fréquentation, vous avez en moyenne 1 visiteur tous les 20 minutes sur votre blog, vous comprendrez alors que le cache est inutile, et que vous réalisez plus de requêtes que s’il était désactivé…
Car à chaque visiteur, vous effectuerez 50 requêtes et vu que la fréquentation est trop faible, aucun visiteur ne profite du cache créer par le visiteur précèdant… (C’est bien entendu le pire des cas…)
Dans le cas d’un blog à grande fréquentation, ça veut bien évidemment le coup !
Comment activer le cache de WordPress ?
C’est très simple.
Il vous suffit d’éditer le fichier wp-config.php présent à la base de votre installation et d’y ajouter la ligne :
define(’ENABLE_CACHE’, true);
Avant la ligne /* Stop editing */
Visionner ensuite une page de votre blog, et contrôler que WordPress a bien créé un dossier “cache” dans le répertoire “wp-content/”.
Si ça n’est pas le cas, créez-le à la main, et appliquez un CHMOD 0777 dessus.
Alternatives
- Augmenter la durée du cache de WordPress (ligne 56 du fichier wp-includes/cache.php)(en secondes)
- Utiliser le plugin WP-Cache 2 (consulter le site de l’auteur pour plus d’informations à ce sujet).
MAJ : En faisant un petit calcul, on s’aperçoit qu’il faut faire plus de 2000 visites par mois, pour justifier l’activation du cache. Le cas échéant, ca ne servira pas à grand chose.













Slt,
Un article assez intéressant, mais qui ne sera pas utilisé par mes soins (en tous les cas pas maintenant, mais plus tard… j’espère)
FiX’ - http://www.fix-netze.com
Merci du tuyau pour augmenter la durée du cache
J’avais la flemme de chercher parmi les centaines de lignes de code relatives à la gestion du cache dans Wordpress ^^
Sinon, quelqu’un aurait-il trouvé comment désactiver le cryptage des fichiers de cache, sachant que les données qu’ils contiennent sont par définition non secrètes (lol) et que le cryptage / décryptage consomme du temps cpu pour rien … ?
Autre chose : la mise en cache concerne t-elle également les données telles qu’un compteur de visites ? (auquel cas il serait idiot de l’activer pour 3600 secondes xD )
Y a t-il quelque part une liste de _toutes_ les informations cachées dans Wordpress ?
ca n’est pas vraiment un cryptage, c’est juste un encodage en MIME base6.
Je te conseille de consulter php.net
http://fr3.php.net/manual/fr/function.base64-decode.php
et
http://fr3.php.net/manual/fr/function.base64-encode.php
Ca n’est pas vraiment couteux en performance à vrai dire.
Il n’y a pas de compteur de visite par défaut dans WordPress, donc il n’y a pas ce problème.
De plus le cache n’intervient que pour les requêtes qui font des SELECT en fait. (logique)
Pour utiliser le cache de WP dans vos plugins, consulter le site suivant : http://dougal.gunters.org/blog/2006/07/21/using-the-wordpress-object-cache
Qui fait un tuto.
Oui, justement, c’est pourquoi je m’interrogeais sur l’incidence sur mon compteur de visites (qui bien entendu fait des requêtes sql
)
Merci pour les liens, effectivement c’est pas le genre d’opération qui mettre le serveur à genoux, mais quel est l’intérêt d’encoder en base_64 pour de simples fichiers de cache ? o_0
En fait… ils encode en base_64 et auparavant il crypte en md5 ou hash_hmac et ajoute une clé unique, composé des infos de connexion à la db (WP_SECRET) pour éviter que le cache soit consultable par des ptits curieux… car sinon tout est en clair…
Ton compteur de visite est un plugin, il ne doit certainement pas exploiter l’API de cache de WP, et franchement es ce qu’un compteur de visite doit être en temps réel ?
J’avais tenté jadis d’installer WP-CACHE … et o miracle, grace à ce billet, j’apprends qu’une nouvelle version est sortie … je l’installe, et hop, ca marche à la perfection
Realisant + de 5000 visites/jour actuellement, je crois que mon serveur va souffler un peu.
je crois neanmoins que mon compteur de visites est caché
:( 
Ah tiens je viens de lire la phrase d’AmO
Si je te suis, le compteur “vu” est caché, mais au bout du refresh du cache (j’ai mis 1200 sec) … il retrouve à nouveau les “bonnes” valeurs ?!
Je ne connnais pas très bien WP-Cache 2.0
Ca donnne quoi Rod ?
Je souhaitais simplement vous remercier pour cet article, qui m’a permis d’avoir toutes les infos que je souhaitais sur le cache de WordPress. Venant de DC2 j’étais surpris que le cache ne soit pas activé par défaut. Mah je vais le laisser désactivé pour voir comment ça se passe…
Merci :).
Je ne savais pas que c’était aussi simple que d’activer la version cache.
Comment peut-on vérifier que la page que l’on consulte est vraiment cachée ?
tiens moi je viens d’installer WP Cache et le comportement du plugin semble étrange
je me demande même s’il marche bien et si quelquechose dans mon WP peut interférer avec
Bobby > Affiche le nombre de requêtes
Gonzague > Pourquoi ? Message d’erreur ?
À priori, le plugin WP-cache fonctionne à merveille. Seulement, il désactive les compteurs de visites en php (genre bbclone), seuls ceux en Javascript fonctionneront. En effet, le plugin cache crée la page html vue par le client et la ressert, il n’y a donc plus rien de dynamique.
Je le garde néanmoins installé (mais désactivé) en cas d’une urgence éventuelle.