Cache LiteSpeed pour WordPress et une boutique en ligne
Nos serveurs fonctionnent sous LiteSpeed. Pour WordPress, l'extension gratuite LiteSpeed Cache est donc le plugin de cache le plus logique : elle conserve des pages toutes prêtes sur le serveur, afin qu'elles ne doivent pas être reconstruites à chaque visite. Votre site devient plus rapide et votre forfait a moins de travail à fournir. Pour une boutique en ligne, il est toutefois important de savoir quelles pages ne doivent jamais être mises en cache. Cet article présente les bases, ainsi que les points spécifiques à WooCommerce.
Les bases
- Dans WordPress, allez dans Extensions > Ajouter, recherchez "LiteSpeed Cache", vérifiez que l'éditeur est bien LiteSpeed Technologies, puis installez et activez l'extension.
- Ouvrez dans le menu LiteSpeed Cache > Cache et vérifiez que Enable Cache est activé.
- Si vous utilisez une autre extension de cache, désactivez-la. Deux caches côte à côte provoquent des erreurs étranges.
- Testez ensuite votre site dans une fenêtre de navigation privée.
Pour en savoir plus sur les causes de lenteur de votre site et sur ce qui peut encore aider, consultez Mon site est lent ou utilise trop de CPU : comment l'accélérer.
Boutique en ligne : deux types de pages
| Type de page | Exemples | Cache de page ? |
|---|---|---|
| Identique pour tout le monde | Page d'accueil, page boutique, catégories, pages produits | Oui, c'est là que se trouve le plus grand gain |
| Différente selon le visiteur | Panier, paiement, Mon compte, le formulaire de rétractation | Jamais |
Si cela se passe mal, un client peut voir le panier ou même l'adresse d'une autre personne. Il s'agit alors aussi d'une fuite de données; consultez Est-ce une fuite de données et dois-je la signaler ?
Ce que WooCommerce et LiteSpeed Cache gèrent déjà
WooCommerce marque lui-même le panier, le paiement et Mon compte comme "à ne pas mettre en cache", à l'aide d'une constante (DONOTCACHEPAGE) et d'en-têtes no-cache. Dès qu'un visiteur ajoute un article au panier, WooCommerce définit des cookies tels que woocommerce_items_in_cart, woocommerce_cart_hash et wp_woocommerce_session_. Selon sa propre documentation, LiteSpeed Cache respecte ces règles de WooCommerce. Pour une boutique classique, vous n'avez donc rien à ajouter.
Quand ajouter vous-même des exclusions
Les exclusions se trouvent dans LiteSpeed Cache > Cache, onglet Excludes :
- Do Not Cache URIs : adresses qui ne doivent jamais être mises en cache, une par ligne. Ajoutez-les si vous avez donné un autre nom aux pages de la boutique (par exemple
/panier/), si une extension de traduction crée ses propres adresses (comme/de/warenkorb/), ou pour le formulaire de rétractation sous Mon compte. - Do Not Cache Cookies : cookies pour lesquels une page n'est pas servie depuis le cache. Soyez prudent ici : un cookie présent sur chaque page désactive le cache pour l'ensemble de votre site.
Veillez également à ne pas ajouter une seconde couche qui mettrait tout en cache. Un CDN avec une règle du type "cache everything" ignore les en-têtes de WooCommerce; excluez dans ce cas aussi les pages et cookies de la boutique à ce niveau.
Cache d'objets avec Redis
Le panier et le paiement sont toujours reconstruits à partir de la base de données. Un cache d'objets conserve en mémoire les résultats de base de données fréquemment utilisés, ce qui est particulièrement utile pour une boutique. Redis est inclus dans Power Webhost Three, Power Webhost Four et Power Reseller. Activez Redis dans DirectAdmin, activez l'extension PHP redis, puis choisissez dans LiteSpeed Cache, onglet Cache, sous-onglet Object, la méthode Redis avec le chemin vers le socket. Toutes les étapes se trouvent dans Redis. Si plusieurs sites de votre forfait utilisent Redis, attribuez à chaque site son propre Redis Database ID.
Vérifier que tout est correctement configuré
Ouvrez votre site dans une fenêtre de navigation privée, appuyez sur F12, choisissez l'onglet Réseau, rechargez la page et cliquez sur la première requête.
- Page d'accueil ou page produit, chargée deux fois : la deuxième fois, vous verrez
x-litespeed-cache: hit. - Panier, paiement et Mon compte : pas de hit, mais
x-litespeed-cache-control: no-cacheet uncache-controlcontenantno-cache. - Ajoutez un produit au panier et ouvrez une page produit : vous verrez votre propre panier, et non une version enregistrée.
Ce que le cache ne résout pas
Si votre boutique reste lente en cas d'affluence, vérifiez également que vous utilisez une version récente de PHP, réduisez le nombre d'extensions et examinez les actions planifiées de WooCommerce. Une longue liste d'actions échouées ralentit la base de données; consultez Statut WooCommerce et Actions planifiées : détecter les problèmes.
Pour aller plus loin
- Cours WordPress gratuit, leçon 6.2 Mise en cache
- LiteSpeed Cache : les paramètres de l'onglet Cache (en anglais)
- WooCommerce : configurer les extensions de cache (en anglais)
