Optimiser les performances de WordPress en activant son cache ? Pas si sur !

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

  1. Augmenter la durée du cache de WordPress (ligne 56 du fichier wp-includes/cache.php)(en secondes)
  2. 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.

30 commentaires

  1. MS-DOS_1991

    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 … ?

  2. MS-DOS_1991

    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 ?

  3. AmO auteur de l’article

    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.

  4. MS-DOS_1991

    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

  5. AmO auteur de l’article

    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 ?

  6. Rod

    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.

  7. Rod

    Ah tiens je viens de lire la phrase d’AmO

    et franchement es ce qu’un compteur de visite doit être en temps réel ?

    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 ?!

  8. Yazerty

    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 :).

  9. Bobby

    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 ?

  10. Gonzague

    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

  11. Ploum

    À 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.

  12. Optimiser les performances de WordPress - Emmanuel GEORJON

    […] Cette méthode a un inconvénient: Par défaut, la durée du cache est fixé à 15 minutes. Si les extensions, les thèmes ou les widgets ne modifient pas cette valeur, tous les objets du cache seront donc renouvellés en même temps. Donc pendant les 15 minutes fixées, le blog ne demandera que très peu de requêtes, mais les relancera pratiquement toutes en même temps passé ce délai (voir l’article sur WordPress-fr.net). […]

  13. WordPress: Utiliser un système de cache - Emmanuel GEORJON

    […] Cette méthode a un inconvénient: Par défaut, la durée du cache est fixé à 15 minutes. Si les extensions, les thèmes ou les widgets ne modifient pas cette valeur, tous les objets du cache seront donc renouvelés en même temps. Donc pendant les 15 minutes fixées, le blog ne demandera que très peu de requêtes, mais les relancera pratiquement toutes en même temps, passé ce délai (voir l’article sur WordPress-fr.net). […]

  14. Amaury

    Non, le cache n’a pas été supprimé.

    Il est toujours actif mais il ne stocke plus les données dans des fichiers. Il stocke en mémoire…

    Autrement dit, il ne sert nativement à rien, mais avec une version dédiée à Memcache, APC, ou etc, c’est très utile…

  15. Riversatile

    Bonjour,

    Heuuu… Ben moi j’ai suivi toute la procédure d’activation du CACHE natif de WordPress expliquée dans ce post, mais ça ne fonctionne pas !
    Malgré la création du dossier ‘cache’ avec les permissions CHMOD 777, le dossier ‘cache’ est toujours vide !

    Quelqu’un à une idée de l’origine du problème ?

  16. alf

    je croyais que ces instructions allaient bien m’aider pour un de mes blogs sous wordpress mais je viens de m’apercevoir que cela concerne les anciennes versions de ce moteur de blog. Dommage.

  17. giuliano

    Salut à tous,

    Amaury suite à ta méthode concernant la mise en cache de wordpress, si je procède comme expliqué ci-dessus alors je n’ai pas besoin d’utiliser de plugin pour le cache.

    j’imagine que c’est soit l’un soit l’autre…

    Merci d’avance de ta réponse ou si quelqu’un à une idée, n’hésitez pas…

  18. Olivier C

    « Il n’est pas rare de voir certains blogs turbiner à plus de 150 requêtes !!! »

    Il est clair que certains blogs, pourtant dédiés au design ou à WordPress en général, ne sont clairement pas optimisés. Ce qui est clairement une hérésie en regard de la compétence qu’ils prétendent avoir.

  19. MBM

    bonsoir
    après avoir constater un ralentissement de mon site, j’ai écris à mon hébergeur qui m’a répondu ce qui suit : Vous utilisez WordPress et il y a plus de 130 requêtes nécessaire pour afficher la page d’accueil de votre site.

    puisse que je ne connais rien en WordPress,
    je vous remercie de m’aider pour régler ce problème et ainsi afficher ma page d’accueil le plus rapidement possible.
    merci

Les commentaires sont fermés