WP Super Cache

Accélérer WordPress avec WP Super Cache

La vitesse de chargement des pages de votre site a une influence relativement importante sur sa capacité à se positionner dans les résultats de recherche Google. Si WordPress est un CMS fondamentalement léger dont la mise en oeuvre est peu coûteuse, il est souvent utilisé sur un hébergement aux performances faibles voire médiocres pour les mêmes raisons budgétaires.

Google interprète cette valeur, qu’il est capable de calculer par l’intermédiaire de ses différents outils, dont bien évidemment son crawler GoogleBot. Pour vos visiteurs, c’est également un critère important: un temps de chargement élevé est un facteur d’abandon, et cet abandon est également considéré par Google (cf. le taux de rebond).

En marge de la bande passante offerte par votre hébergeur, et de la structure de son réseau interne, deux éléments ont un impact majeur sur le temps de chargement de vos pages:

  • Le poids de vos images…
  • La charge sur votre base de données…

Pour ce qui est du poids des images, la solution est d’une simplicité enfantine: assurez-vous d’utiliser des images dont les dimensions correspondent à vos besoins en ligne. Il est fréquent de constater que certains sites affichent des images 2x à 3x plus grandes que ce qui est nécessaire. Si le CMS utilisé va redimensionner ces images (via les attributs HTML width et height), il ne va pas pour autant réduire leur poids. Veillez donc à ce que lorsque vous avez besoin d’afficher une image en (p.ex) 300×200 pixels, vous n’utilisiez pas une image beaucoup plus grande, dont le poids serait déraisonnable.

En ce qui concerne la charge sur la base de données, deux cas de figure se présentent: l’hébergement mutualisé, et le serveur dédié.
Dans le cas d’un serveur dédié, il est possible d’optimiser le fonctionnement de mySQL et d’améliorer les performances de la base de données. Dans le cas d’un hébergement mutualisé, ce n’est pas envisageable. Quoi qu’il en soit, dans les deux cas de figure, il est recommandé de mettre en oeuvre un principe de mise en cache.

En quoi consiste la mise en cache ?

Le principe d’un site dynamique, dont le contenu est généré par un système de gestion de contenu (CMS, Content Management System) tel que WordPress, Joomla, Drupal ou Magento), est qu’à chaque demande d’affichage d’une page, le CMS va récupérer l’information dont il a besoin dans une base de données, alimente un “template” avec ces informations, puis “sert” l’information sous la forme d’un contenu HTML envoyé au navigateur.

La plus importante part du temps de génération d’une page est liée à l’extraction et à la “compilation” des données… La mise en cache consiste à pré-compiler l’information, de sorte qu’il ne soit pas nécessaire d’allouer des ressources à cette tâche à chaque chargement de page. Les données pré-compilées sont stockées, soit dans la base de données, soit sous la forme de fichiers “statiques” qui ne sont accessibles que par le système, et qui sont appelés à chaque chargement de page, avant d’être servis aux visiteurs, pour qui l’opération est totalement transparente.

Mettre en oeuvre un cache pour WordPress…

Sous WordPress, c’est simple, rapide et terriblement efficace. Il existe plusieurs plugins de mise en cache pour WP: certains sont simplistes, d’autres extrêmement performants… nous nous intéresserons ici à une extension qui offre à la fois une grande flexibilité, et des performances confortables tout en restant accessible et simple à configurer: WP Super Cache.

WP Super Cache s’installe comme tout autre plugin WordPress, en 2/3 clics. Sa configuration est simple, mais bardée d’options qu’il faut pouvoir comprendre, et pour lesquelles il faut pouvoir déterminer s’il y a – ou non – un intérêt à l’activer…

Une fois installé, le plugin WP Super Cache est configurable via le menu de votre backoffice, dans l’onglet “Réglages” (Settings) -> WP Super Cache.

L’interface de base est découpée en différents onglets: Easy / Advanced / CDN / Contents / Preload / Plugins / Debug. Nous verrons ici ceux qui concernent une installation et une configuration classiques, applicables à 90% des sites web propulsés par WordPress.

“Easy” (facile)

Plus facile que ça… il n’y a pas. En effet, cet onglet destiné aux utilisateurs les plus frileux permet simplement d’activer la mise en cache, de tester son fonctionnement, et de forcer le rafraîchissement du cache lorsque nécessaire. Cette configuration peut s’avérer suffisante dans de très nombreux cas… mais nous ne nous en contenterons pas, et vous non plus !

“Advanced” (avancé)

L’onglet avancé offre beaucoup plus de contrôle sur le principe de mise en cache de votre WordPress. En tout premier lieu, il permet de définir la technologie à utiliser:

  • mod_rewrite qui moyennant une adaptation de votre fichier .htaccess offre les plus hautes performances.
  • PHP, l’option standard dont les performances sont plus qu’acceptables.
  • Legacy, dont la mise en oeuvre est simplissime, mais qui offre des performances relativement faibles et sur laquelle nous ne nous attarderons pas.

Dans les trois cas, l’option Cache hits to this website for quick access peut être activée.

Avant de revenir sur le choix entre PHP et mod_rewrite, attardons-nous sur les différentes options secondaires et leur intérêt:

Miscellaneous (divers)

Compress pages (…): la compression permet de réduire la taille du paquet envoyé au client. Elle doit être activée.

304 Not Modified (…): cette option n’est disponible qu’en mode PHP et Legacy. Elle n’a pas grand intérêt, et nous la laissons désactivée par défaut.

Don’t cache pages for known users: il faut savoir que le rafraîchissement du cache dépend de 3 facteurs: la modification d’une page, l’ajout d’un commentaire sur un article, et le rafraîchissement forcé (manuellement, ou automatiquement comme nous le verrons plus bas). S’il n’y a pas de raison particulière à ce quels utilisateurs connus soient servis d’une page non-cachée, autant laisser cette valeur décochée…

Don’t cache pages with GET parameters: à vous de voir… mais en ce qui nous concerne, un site correctement optimisé ne présente aucune page dont l’adresse contienne des variables GET (ie: example.com/page?foo=bar). A laisser décoché.

Make known users anonymous (…): permet de s’assurer que les utilisateurs connus soient servis d’un contenu mis en cache. A activer.

Cache rebuild: cette option permet de servir un contenu extrait du cache pendant qu’une version fraîche est recompilée, plutôt que de recompiler l’information avant de la servir. A activer.

Proudly tell the World (…): A vous de voir… cette option permet de soutenir l’auteur du plugin par le biais d’un lien dans le pied de page de votre WordPress. Nous préférons conseiller l’extension de vive voix !

Advanced (avancé)

Enable Dynamic Caching: cette option n’est disponible qu’en mode PHP ou Legacy, et permet de gérer des espaces de contenu non-mis en cache (votre régie publicitaire par exemple).

Remove UTF8 charset: n’est utile que si vous constatez que des caractères étranges apparaissent dans vos pages issues du cache.

Clear all cache when (…): cette option force le rafraîchissement complet du cache de votre site, lorsqu’une page ou un article sont publiés ou mis à jour. Cela n’a que peu d’intérêt, sauf dans le cas d’un site de large envergure, ou d’un site pour lequel la durée de mise en cache est très importante… nous laisserons cette valeur décochée.

Extra homepage checks: permet, de temps à autre, de rafraîchir le cache de la page d’accueil. A activer.

Only refresh current page when (…): Lorsqu’un commentaire est fait sur un de vos articles, il se peut qu’il soit exploité sur d’autres pages. Si vous ne souhaitez rafraîchir que le cache de la page en cours, activez cette option.

Liste the newest (…): permet d’afficher la liste des pages en cache sur la page “Advanced” du backoffice: sans réel intérêt.

Coarse file locking: cette option est intéressante si votre site est hébergé sur un serveur peu performant (et c’est le cas de nombreux hébergements mutualisés). A activer.

Late init: Affiche la page en cache une fois que WordPress a fini de charger. Cette option est uniquement utile en mode Legacy, et n’a pas fondamentalement grand intérêt.

DO NOT CACHE PAGE Secret Key: vous donne une clé à utiliser pour visualiser une page comme si elle n’était pas mise en cache. Il suffit d’ajouter ?donotcache=[votre_clé_unique] à la fin de l’URL d’une page pour activer cette fonctionnalité.

Quel mode de mise en cache choisir ?

Le mode PHP est accessible par défaut, sans qu’il ne soit nécessaire d’intervenir au niveau de l’hébergement ou des fichiers qui constituent votre site. C’est l’option la plus sûre pour quiconque ne se sent pas d’intervenir physiquement sur son site, ou ne dispose pas d’un hébergement qui permette par défaut au CMS d’intervenir lui-même sur ses fichiers.

Le mode mod_rewrite, plus puissant que les modes PHP et Legacy, requièrent une petite intervention sur le fichier .htaccess au travers duquel sont gérés un certain nombre de by-pass de votre configuration de base. La plupart des (bons) hébergeurs permettent que ces modifications soient réalisées par le CMS directement. Si ce n’est pas le cas… il vous faudra vous munir d’un logiciel d’accès FTP, et modifier vous-même votre fichier .htaccess en copiant-collant les informations fournies par le plugin.

Si vous utilisez le mode mod_rewrite, et que votre fichier .htaccess n’est pas à jour, WP Super Cache vous propose deux options:

Soit copier-coller l’information dans ce fichier (qui se trouve à la racine de votre hébergement, vraisemblablement dans le répertoire /www/ de votre FTP.

Soit ordonner au CMS de faire la modification lui-même. Pour ce faire, cliquez sur Update Mod_Rewrite Rules, et 2 secondes plus tard, tout est OK.

Temps d’expiration et vidange du cache

Dépendant du volume de votre site, de son trafic, de l’interaction entre les pages (ie: modules “derniers articles, etc…), vous opterez pour un rafraîchissement forcé sous un délai court, ou non.

Par défaut, nous opterons pour une durée maximale de mise en cache de 24 heures, et pour une vidange forcée chaque nuit, au travers des options suivantes:

Cache Timeout: 86400 seconds (60*60*24)

Pour info: une semaine = 604800, et un mois = 2678400…

Scheduler: –> Clock : 3:00 (3h du matin) et Interval: Once Daily

Si vous souhaitez être informé de la vidange de votre cache, cochez l’option Notification Emails.

“CDN” (Content Delivery Network)

Cet onglet vous permet de gérer simplement un Réseau de Distribution de Contenu, à savoir un principe selon lequel vos fichiers statiques sont répartis à différents points du web pour être servis plus rapidement à certains utilisateurs, principalement en fonction de leur localisation géographique.

Cette fonctionnalité peut s’avérer intéressante dans le cas de larges sites, mais n’a pas de réel intérêt pour un site traditionnel. Nous traiterons des CDN plus en profondeur dans un autre article…

“Contents” (contenus)

Cet onglet vous permet d’une part d’obtenir la liste des fichiers actuellement mis en cache, et d’autre part de forcer le rafraîchissement complet.

Preload

Cet onglet vous permet de forcer la mise en cache des contenus. Très utile lorsque vous venez de forcer la vidange du cache et que vous ne souhaitez pas que celle-ci soit déclenchée par un visiteur, pour chaque page, mais risqué si votre site est hébergé sur un petit serveur, et que le volume de contenu est important.

Plugins & Debug

Ces deux onglets sont réservés aux utilisateurs avertis ou à votre webmaster.

Configuration terminée !

Les réglages standards suggérés ci-dessus vous ont permis de configurer une mise en cache efficace et performante pour votre WordPress. Testez-la en rafraîchissant le cache (Contents -> Delete Cache), puis en visitant une série de pages du site. Recommencez la même navigation sans rafraîchir le cache au préalable, et appréciez la vitesse de chargement.

Si vous utilisez un outil de veille de votre positionnement Google, n’hésitez pas à lancer une analyse quelques semaines après avoir mis en oeuvre votre mise en cache: vous devriez apprécier une amélioration de votre positionnement de l’ordre de 5% à 10%. Appréciable, pour 10 minutes de travail, non ?

Cet article vous a plu ? Partagez-le :Share on LinkedIn1Share on Google+7Share on Facebook0Tweet about this on TwitterDigg thisShare on Reddit0Share on StumbleUpon0Buffer this pageEmail this to someone

Mots-clefs : plugins, Wordpress

Commentaires (12)

  • Avatar

    streamiz

    |

    Bonjour, juste une qustion je publie plus de 5 article par jour, je dois réglé combien Preload par minute SVP ?

    Reply

    • Avatar

      Denis Tomas

      |

      Bonjour Streamiz,
      Il est difficile de te donner une réponse précise, mais je commencerais par 120 minutes, puis je procèderais par petites corrections (en moins et en plus), et j’analyserais les performances jusqu’à trouver le réglage fin.

      Reply

    • Avatar

      streamiz

      |

      merci ça marche tres beau article et un bon service ça ma beaucoup aidé Denis Tomas

      Reply

  • Avatar

    TVActu

    |

    Merci! C’est beaucoup plus rapide maintenant mais il y a ecrit (code html) :

    alors que tout est bien configuré! En attente de votre réponse.

    Reply

  • Avatar

    TVaActu

    |

    On dirait que mon code n’apparait pas.. Juste vous allez a la fin de mon site source html, il y a ecrit que c’est pas caché par wp super cache et me disent d’aller voir les paramètres..

    Merci.

    Reply

    • Avatar

      Denis Tomas

      |

      Bonjour,
      J’y vois “Cached page generated by WP-Super-Cache on 2014-08-26 13:34:37” 😉

      Reply

  • Avatar

    TVactu

    |

    Daccord merci ! Moi je vois

    Reply

  • Avatar

    TVactu

    |

    Le code ne s’écrit pas? Bon sinon merci et bonne continuation ! 😉

    Reply

  • Avatar

    islam

    |

    merci je vais installer car mon site est lent !

    Reply

  • Avatar

    Luc

    |

    Synthèse intéressante sur ce plugin que j’utilises de temps en temps, mais concernant le préchargement, j’ai bien l’impression que ça ne fonctionne pas. il est activé par défaut on est d’accord?

    Reply

  • Avatar

    Ben'

    |

    Bonjour Denis,
    Merci pour votre article. grâce au cache je gagne 1 point au test Google page speed ( 49/100 mobile ; 62/100 Ordinateur ).
    Je pense que ces performances pourraient êtres meilleures mais peut être qu’il faut regarder ailleurs que sur le programme de cache ? ( mes images articles sont à 200ko ).
    J’ai quelque chose qui m’intrigue cependant… Quand je regarde le code source de la page d’accueil par exemple, la derniere ligne est celle ci :
    Un conseil ?
    Merci 🙂

    Reply

    • Avatar

      Denis Tomas

      |

      Bonjour Ben,

      Une compression des images (sans dégradation) pourrait effectivement améliorer les performances encore un peu plus.

      Pour la ligne “No cache for known users”, c’est configurable dans les options de WPSC. Il s’agit de ne pas afficher le contenu en cache pour les visiteurs identifiés (donc, pour l’Admin aussi…).

      Reply

Laisser un commentaire

Optimiser votre site

Beau ne signifie pas efficace...

i.SEO vous conseille dans le cadre de l'amélioration de votre site web pour une meilleure considération par Google, et un meilleur positionnement dans les résultats naturels: consultez-nous !

Référencer votre site

Si l'optimisation est le fondement de toute stratégie de positionnement, le référencement en est le principal levier.

i.SEO assure vos campagnes de référencement naturel et positionne votre site dans les premiers résultats: consultez-nous !