Jouez à cache-cache avec votre site web (et gagnez en réactivité)

Jouez à cache-cache avec votre site web (et gagnez en réactivité)

Il y a quelques temps, je vous donnais la liste des étapes à réaliser pour améliorer la vitesse de son site web. J’avais organisé l’ensemble en 3 couches successives, du plus simple au plus compliqué :

  • 1/ travailler sur le serveur : mettre en cache le site (avec un plugin) et opérer quelques optimisations de Wordpres via le fichier wp-config.php.
  • 2/ alléger le thème (appels externes, lourdeur des fichiers CSS…)
  • 3/ installer un CDN

On m’a fait remarqué que l’étape 2 pouvait être réalisée en 1er : en effet, et c’est même plus logique ainsi. Comme elle demande beaucoup de temps, je ne trouvais pas ça motivant de commencer par cette tâche (mais elle reste incontournable). Cacher un site très lent à la base n’est pas efficace.

Aujourd’hui, je voudrais vous faire découvrir une alternative aux plugins de cache habituels. Cette alternative a été développé par Jonathan Buttigieg et présenté sur son blog GeekPress.

Présentation de WP Cache Machine

1ère particularité, ce script s’installe à la main : ce n’est pas un plugin. Cela ajoute certainement une barrière pour les réfractaires au code (bien que vous pouvez sous-traiter cette tâche), mais pour les autres, cela présente plutôt un intérêt immense.

En effet, le script est appelé avant même le chargement de WordPress, ce qui va rendre votre site extrêmement rapide !

Le principe du cache

Dans un site « sans cache », WordPress doit dynamiquement générer chaque page pour chaque internaute qui la demande. Si deux internautes visitent la même page au même moment : WordPress doit quand même la générer deux fois !

Avec un cache, c’est un peu différent…

Quand une page est visitée pour la première fois, WordPress en créé automatiquement une version « statique » (comme une photo de la page au moment de la visite), mise à la disposition de tous.

L’internaute suivant qui visite cette même page, pourra donc consulter cette page stockée dans un coin, et WordPress n’aura pas à la générer.

Conséquence : un site beaucoup plus réactif, des pages qui s’affichent quasi-instantanément.

Quand on modifie une page, les changements sont-ils visibles ?

Bien heureusement, les pages « statiques » ne sont pas conservées à vie !

Pour chacune des actions suivantes, la page statique est supprimée :

  • ajout/modification/suppression d’un article
  • ajout/modification/suppression d’un commentaire
  • ajout/modification/suppression d’un menu personnalisé
  • ajout/modification/suppression d’un widget
  • mise à jour de la réécriture d’url (permaliens)
  • changement de thème

Hier après-midi, certains d’entre vous ont remarqué la notification par mail d’un article intitulé « Test cache purge ». Il s’agissait tout simplement d’un test : je vérifiais que le cache était bien purgé à la publication d’un nouvel article.

Je n’ai pas pensé que mon auto-répondeur ne ferait pas la distinction entre un test et un vrai article ! Désolée pour cet envoi intempestif.

Le gain que vous pouvez espérer

Comme vous l’avez compris à présent, le cache n’est efficace que la 2ème fois où une page est visitée (puisqu’à la première, la page statique est générée). Un système de cache ne résoudra donc pas tous vos problèmes de vitesse.

Pour avoir un site performant, vous devez absolument travailler sur votre thème : les appels externes, les images, le CSS et le JS étant les points à étudier en priorité.

Votre système de cache sera alors la cerise sur le gâteau !

J’aimerais beaucoup avoir votre retour sur la nouvelle réactivité de Les Doigts dans le Net, en particulier ceux qui n’ont pas une connexion très rapide. 😉 Qu’en pensez-vous ? Sentez-vous une différence ?

PHP

A propos de MarieEve Louvel

Depuis 3 ans, je partage mes connaissances sur ce blog, pour les entrepreneurs désireux de créer leur site vitrine et/ou leur blog professionnel avec WordPress. Mon expérience professionnelle va de l'accompagnement à la formation, en passant par de la création de site ou de logiciel. Retrouvez mes cours en ligne sur mon site FeelWeb Formation [http://feelwebformation.com]

16 commentaires

  1. As-tu comparé par rapport à un plugin comme W3 total cache ?

    Répondre
    • Bonjour Yves,

      Je n’ai pas fait le test, mais logiquement, un système de cache qui se lance avant WordPress sera forcément plus rapide qu’un système de cache qui doit attendre que WordPress se charge.

      En fait j’ai surtout implémenté celui-là car j’aime l’idée de comprendre ce que j’utilise. Et grâce au tuto de Johnatan, je comprends bien comment marche script.

      Répondre
  2. Intéressant, pour ma part j’utilise essentiellement WP Super Cache mais je suis tenté de tester ça… Pas cette semaine, j’ai pas le temps, mais lundi je m’y mets :-)

    Sinon, rappelons qu’il y a pas mal d’extensions très utiles qui peuvent apporter un coup de pouce pour optimiser son site, comme WP Smush.it pour alléger ses images qui fait un super travail.

    Répondre
  3. Bonsoir Marie-Eve, j’aime bien jouer à cache-cache avec mon blog, pour ma part j’utilise Wp Super Cache, après si tu fais des comparatifs entre ta méthode et ce plug-in j’aimerai être tenu au courant s’il te plait :)

    A bientôt,
    Benjamin

    Répondre
  4. Bonsoir,
    Moi je suis intéressé aussi par ce code, parce qu’on m’a dit que les plugins de cache (WP Super Cache et W3 Cache Total) provoquent de petits bugs sur les blogs qui sont sur des serveurs mutualisés et ne mettent pas réellement en cache (j’ai oublié pourquoi, jargon de spécialistes…).
    Alors je vais aller voir ça.
    Jérémie

    Répondre
  5. Bonjour, je vous remercie énormément Marie Eve, c’est sympa d’avoir pris le temps pour présenter le WP Cache Machine, je vais l’appliquer pour voir ça de plus près, entre temps j’ai une question a vois posez: Pour ceux qui utilise déjà un système de cache comme varnish ? est ce que ca va marché?? Merci. Amicalement

    Répondre
    • Bonjour,

      héhé, là on touche à mes limites car je connais très mal les serveurs, et pas du tout Varnish. Par contre, la question est soulevée dans les commentaires de l’article sur GeekPress, je te conseille d’y faire un tour.

      Répondre
  6. Une bonne astuce pour mettre les pages en cache et ainsi absorber du trafic sur son serveur. il faudra par contre voir la configuration de ce dernier
    Intéressent à voir !!!

    Répondre
  7. Bonjour Marie-Eve,

    Je viens de passer une bonne partie de la journée sur WP Cache Machine,
    miam miam c’était bon tout ce code^^

    Merci pour le tuyaux!

    J’ai trouvé le script super éfficace!

    Par contre il a modifié le comportement des navigateurs dans le chargement certaines animations jQuery. vraiment bizarre !

    A utiliser donc! mais pas partout je pense…

    Sinon un peu hors sujet, mais échange de bons procédés sur la vitesse de chargement:
    j’ai trouvé ca : http://www.spritecow.com/

    j’adore cet outil il permet de faire des sprites facilement, et donc de reduire le nombre de requetes serveur.

    Merci encore et bonne journée
    Lionel

    Répondre
    • Super ! C’est l’optimisation qui me manque encore : passer en sprites.
      Hop : todo-list !

      Répondre
  8. Merci MArieEve, je vais essayer de faire ceci sur mes sites clients, puisque j’ai remarqué surtout sur un gros site que l’outil PageRank Status me dis que la page est lente, tiens exemple pour cette page Page

    Load Time: 4.68 Seconds
    Slow, 79% of web pages in the world are faster. If this is your site, perhaps you need to optimize the web site or migrate to a faster server.

    bon donc après je ne sais plus qui croire !! en plus je lis toujours que trop de plugin tue les plugins et ralentissent le site, mais il y en a tellement de plugin utile et intéressants qu’on ne sait plus quoi faire ???

    Répondre
    • Bonjour,

      Oui les plugins alourdissent un site, ça ne fait aucun doute. Par contre, certains sont nécessaires, voire même l’optimise. Il faut bien étudier le rapport avantage/perte de performance et ne pas installer un plugin quand il remplace 1 seule ligne de code.

      4.68 sec, ce n’est pas si lourd que ça. Peut mieux faire, mais pas dramatique.

      Répondre
  9. Bonjour,
    Concernant la réactivité de votre site, je la trouve pas mal du tout (je ne suis pas connaisseuse du milieu, je vous parle en tant que personne naïve). J’ai changé de connexion récemment donc je ne peux pas vraiment comparer à ce à quoi je suis habituée, mais il me semble que c’est assez rapide par rapport au reste. Disons qu’il y a un très court moment de latence puis tout apparaît d’un coup!
    Sinon, c’est une chance que votre test se soit appelé « test purge cache » et pas avec un nom complètement ridicule (comme j’ai tendance à le faire parfois!) [commentaire inutile du jour].

    Répondre
    • Bonjour,

      Oui en effet c’est une chance, car moi aussi j’utilise des noms ridicules parfois 😀

      Répondre
  10. « Il faut bien étudier le rapport avantage/perte de performance et ne pas installer un plugin quand il remplace 1 seule ligne de code. »
    Je suis totalement d’accord. Par exemple, pour ajouter le programme Google authorship pour un blog WordPress, au lieu d’installer un plugin, il vaut mieux ajouter une seule ligne de code au niveau de la page header.php. Je pense que cela a un effet sur le temps de chargement de la page. Donc, il faut penser avant d’agir.
    Merci pour l’explication concernant le principe du cache. Enfin, j’ai bien saisi ce principe.

    Répondre

Trackbacks/Pingbacks

  1. WP Rocket frappe encore - Les Doigts dans le Net - […] Après presqu’un an de lenteur dûe à mon thème et à une surcharge de plugins, j’ai pris les choses…
  2. Posez vos questions à notre expert, sur le sujet : Les bonnes pratiques pour optimiser la vitesse de son site WordPress ? - Les Doigts dans le Net - […] sujet a déjà été traité plusieurs fois sur le blog, par exemple sur cet article ou encore celui-là, mais…

Soumettre un commentaire

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

This Blog will give regular Commentators DoFollow Status. Implemented from IT Blögg

EmailEmail
PrintPrint