Testez la santé de votre PrestaShop et comment l'optimiser
Tester votre boutique
Sommaire :
Les caches, notamment Varnish, sont très efficaces pour les performances, mais ajoutent une couche de complexité qu’il faut bien comprendre afin de pallier tout effet de bord.
En dehors de toute considération PrestaShop, il convient avant tout de comprendre comment fonctionne un cache :
Il a pour but d'accélérer une réponse en évitant une exécution.
Il doit rester à jour soit par des vidages des caches intelligents soit par expiration de ses caches.
Dans le cas de PrestaShop, il existe différents types de caches, agissant sur :
Et pouvant s'implémenter sous différentes formes :

Les caches interviennent à différents niveaux. Il faut bien comprendre les imbrications de ceux-ci car vider un cache de niveau supérieur alors que celui de niveau inférieur n’est pas à jour ne sert à rien.
Dans sa version la plus complète, nous pouvons avoir cette pile d’imbrication :

Afin de confirmer si l’on est sur une réponse de varnish ou pas, il convient de regarder les header de réponse, du HTML par exemple :

Le header x-cache peut prendre deux valeurs :
HIT : le cache a répondu
MISS : le cache n’a pas été sollicité, la ressource est hors cache
Le header x-cache-hits montre le nombre de fois où le cache a été constitué.
Un vidage de cache d’une page (par le back office ou par un code PHP) fera revenir ce header à la valeur 0.
Si la valeur reste systématiquement à zéro, le cache ne se constitue pas.
Le header x-via donne l’information de quel haproxy a répondu (ex: ha1) au navigateur, ainsi que le serveur PHP qui lui a donné la réponse (ex : Frt01)
Ce module permet notamment de purger les différents niveaux de cache.
Il ajoute une interface visible dans le menu : Paramètres avancés > Performances

En dehors de toute problématique de cache une mise en production doit être sécurisée par des bonnes pratiques :
Le bouton “impacter le front office” permet un vidage des caches liés aux affichages de contenus (càd sans modification de fichier) dans le bon ordre, cependant il remet tout à plat SAUF les caches de compilation smarty.
Si votre site n’est pas suffisamment optimisé ou subit un gros trafic, il pourra alors subir un ralentissement, évitez les purges de caches en pleine charge de traffic.
Pour ce type de déploiement, PrestaShop si il est configuré ainsi :
.png)
alors il détectera tout seul les modifications et les appliquera.
Restera alors à purger le cache varnish.
Si vous n'avez pas cette configuration précise de compilation des templates, vous pouvez utiliser le bouton “vider tous les caches” qui effectuera une remise à plat globale, ce qui est donc plus gourmand en termes de ressources.
Oui tout à fait. Dans le cas où une modification intervient uniquement sur une page, il est d’ailleurs préférable de vider uniquement celle-ci (afin de ne pas remettre à zéro tout le cache).
Pour ce faire, vous devez accéder à : paramètre avancés > performances
Puis cliquer sur le bouton pour accéder à la configuration avancée :
.png)
Ce bloc :

vous permet de vider le cache de l’accueil ou saisir une URL et de vider le cache de celle-ci.
ATTENTION : si vous avez plusieurs langues, n’oubliez pas de vider l’URL pour chacune des langue.
Si ce n'est pas critique : contactez nous.
Si vraiment vous devez désactiver varnish à cause d’un effet indésirable critique
Dans un tel cas, ne désactiver pas le module eo_clearcache car :
Pour désactiver varnish
.png)


Votre site tournera alors sans varnish, le module eo_clearcache envoyant au serveur une instruction de ne pas appliquer le cache varnish.