Ouvrez votre boutique en navigation privée et comptez. Si la première page met du temps à s’afficher, ce n’est pas votre connexion : c’est PrestaShop qui la construit de zéro. Sur une boutique avec un hébergement mutualisé, un grand catalogue et quelques dizaines de modules, attendre environ 5 secondes que le serveur livre une page n’a rien d’exceptionnel. Avec un cache de pages bien conçu, cette même page peut arriver en environ une demi-seconde.

Le hic, c’est que mettre PrestaShop en cache est délicat. Fait à la va-vite, le remède est pire que le mal : des clients qui voient le panier d’un autre, des prix périmés, des promotions qui ne démarrent pas. Cet article explique pourquoi, ce que vous gagnez quand c’est bien fait et ce qu’un cache doit respecter pour que vous puissiez l’activer l’esprit tranquille.

L’attente avant que la page n’arrive

Exemple d’une boutique lente, même page et même serveur

10 fois moins d’attented’environ 5 s à environ 0,5 s

Sans cache
5,0 s
Avec un cache de pages
0,5 s

Exemple illustratif. Le résultat réel dépend de l’hébergement, des modules et du thème : plus la boutique est lente, plus l’écart est grand.

Ce que fait PrestaShop à chaque visite

Chaque fois que quelqu’un ouvre une page, PrestaShop démarre, détermine la langue, la devise et le pays, charge le contrôleur, exécute tous les hooks de la page (chaque module installé peut y ajouter sa part), lance des dizaines voire des centaines de requêtes sur le catalogue, calcule les prix avec taxes et remises, puis assemble le tout avec les gabarits Smarty du thème. Pour la plupart des visiteurs, tout cela produit exactement la même page que celle que le visiteur précédent vient de recevoir.

Le chemin d’une page

Ce qu’un nouveau visiteur s’épargne quand la page est déjà prête

Sans cacheà chaque visite
  • Requête
  • →
  • Démarrage de PrestaShop
  • →
  • Contrôleur
  • →
  • Hooks de tous les modules
  • →
  • Requêtes sur le catalogue
  • →
  • Prix et taxes
  • →
  • Gabarits Smarty
  • →
  • Page
Avec un cachevisiteurs sans compte ni panier
  • Requête
  • →
  • Démarrage de PrestaShop
  • →
  • Page déjà prête

Les options de Paramètres avancés › Performances (cache Smarty, CCC, compilation des gabarits) accélèrent chaque étape, mais ne les évitent pas. PrestaShop n’a pas de cache de pages complètes intégré : c’est pourquoi tant de boutiques se tournent vers des modules ou le cache de leur hébergeur, et pourquoi tant finissent par le désactiver.

Chaque seconde compte pour la conversion

La vitesse n’est pas un détail technique : c’est du chiffre d’affaires. Une analyse de Portent publiée en 2022 sur des boutiques en ligne montre que les pages chargées en 1 seconde convertissent bien mieux que celles qui mettent quelques secondes de plus.

Taux de conversion des boutiques en ligne selon le temps de chargement

À 3 secondes, on vend déjà moins de la moitié qu’à 1 seconde

3,05 %
1,68 %
1,12 %
1 s2 s3 s

Source : Portent, « Site Speed is (Still) Impacting Your Conversion Rate » (2022), boutiques B2C de son échantillon.

Et pas besoin de gagner des secondes entières pour le sentir :

Ce que disent les études

+8,4 %
de conversions en e-commerce quand le site mobile est seulement 0,1 s plus rapide
Deloitte Digital pour Google, 2020
+9,2 %
de dépense moyenne avec cette même amélioration de 0,1 s
Deloitte Digital pour Google, 2020
+32 %
de probabilité de rebond quand le chargement passe de 1 à 3 secondes
Think with Google

De plus, le temps de réponse du serveur fait partie de ce que mesurent Core Web Vitals et PageSpeed Insights : une boutique qui répond plus vite part avec un avantage.

Pourquoi mettre PrestaShop en cache est si délicat

Un cache enregistre une page et la donne au visiteur suivant. Simple, jusqu’à ce qu’on se rappelle tout ce qui, dans PrestaShop, change d’un visiteur à l’autre ou d’un moment à l’autre :

C’est pourquoi les caches activés « à la hache » (celui de certains hébergeurs, un Varnish non configuré, des modules qui enregistrent tout) finissent par causer les mêmes frayeurs : le panier d’un autre, des prix qui ne correspondent pas à la commande, la promotion qui ne démarre pas, une page d’erreur enregistrée. Et la boutique redevient lente parce que quelqu’un désactive le cache « par précaution ».

Ce qu’un cache sûr doit respecter

Avant d’activer un cache de pages sur PrestaShop, vérifiez qu’il :

  1. Ne sert les pages enregistrées qu’aux visiteurs qui n’ont rien à eux : non connectés, panier vide. Tous les autres reçoivent toujours la page en direct.
  2. N’enregistre que des pages construites pour des visiteurs « vierges », sans panier, compte ni historique, pour que rien de personnel ne s’y glisse.
  3. Ne touche jamais au panier, à la commande, au compte ni à la recherche.
  4. Sépare les pages par devise, pays, appareil et boutique, pour que prix et taxes soient toujours justes.
  5. Renouvelle les pages d’un produit dès que son prix ou son stock change, sans vider tout le reste.
  6. Expire pile au moment où un prix programmé ou une vente flash commence ou se termine.
  7. Est invalidé dès que vous enregistrez un réglage dans le back-office, mais pas par la comptabilité interne des modules.
  8. N’enregistre jamais d’erreurs, de redirections ni de pages incomplètes.

Ce que font les autres modules de cache

Sur PrestaShop, on trouve trois grandes familles de solutions, et il est utile de savoir ce que chacune apporte :

Approche Exemples Gestion du panier et du compte Ce qu’il faut À garder en tête
Module de cache de pages qui recharge des blocs en ajax Page Cache Ultimate (JPresta) et similaires Sert la page enregistrée à tous, clients connectés compris, puis récupère en ajax les blocs personnels (panier, nom, produits consultés) Indiquer quels modules sont « dynamiques » Accélère aussi les clients connectés ; il faut vérifier quels modules sont personnels (JPresta propose une configuration automatique) et, tant que l’appel ajax n’a pas répondu, ces blocs affichent leur valeur par défaut (un panier à 0, par exemple)
Cache côté serveur Varnish, LiteSpeed Cache pour PrestaShop Blocs privés par utilisateur via ESI ou des règles dédiées Un serveur compatible (LiteSpeed Web Server, Varnish) et l’accès pour le configurer Le plus rapide, car PHP ne démarre même pas ; rarement disponible en hébergement mutualisé, et des règles Varnish écrites à la main sans les bonnes exclusions peuvent montrer le panier d’un autre
Optimiseurs Modules de minification, de combinaison CSS/JS ou de chargement différé N’enregistrent pas la page Rien de particulier Ils aident le navigateur, mais PrestaShop construit toujours chaque page de zéro

Toutes sont des options valables, chacune avec son prix en configuration, en infrastructure ou en risque.

Ce qui distingue Page Cache

Page Cache est notre module de cache de pages complètes pour PrestaShop 8.2 et 9.0. Il prend un autre chemin : il n’enregistre jamais rien de personnel, et rend à chaque visiteur ses parties personnelles séparément.

Et ce qu’il ne fait pas, pour décider en connaissance de cause : comme il répond depuis PrestaShop (sans serveur particulier), une page servie depuis le cache passe tout de même par le démarrage de PHP, et les fiches produit pour les clients connectés restent désactivées tant que la vérification n’a pas confirmé qu’aucun module n’y affiche quelque chose de personnel non couvert. Si vous visez le maximum absolu avec des millions de visites, un cache serveur bien configuré peut mieux vous convenir. Pour la plupart des boutiques, où presque tout le trafic nouveau arrive sans session depuis Google, la publicité et les newsletters, Page Cache accélère justement ces visites, sans aucun risque.

Envie de tout voir au même endroit ? Accélérer PrestaShop réunit le cache de pages, les filtres, la recherche et le tunnel de commande, avec nos mesures et par où commencer.

Sources