Cache pleine page : comment Orbit Cache accélère PrestaShop
Un cache garde une copie toute prête de ce qui a déjà été calculé, pour la resservir sans refaire le travail. Un cache pleine page garde des pages entières de votre boutique. Je prends l'exemple d'Orbit Cache, le module de cache que j'ai développé pour PrestaShop : ce qu'il garde, comment vos prix restent à jour, ce qu'il refuse de garder, et ce qu'il n'accélère pas.
Pourquoi PrestaShop refait la même page
Sans cache, PrestaShop fabrique chaque page au moment où un visiteur la demande. Pour chaque page, il démarre, lit des dizaines de fichiers écrits en PHP (le langage de PrestaShop) et envoie des centaines de requêtes à la base de données, où sont rangés les produits, leurs prix et leurs stocks. Il assemble ensuite le HTML de la page : le code que le navigateur du visiteur reçoit et affiche.
Un deuxième visiteur ouvre la même fiche produit. S'il n'est pas connecté et que son panier est vide, il doit voir la même page, dans la même devise : même prix, même stock, même description. PrestaShop refait pourtant tout le travail, de zéro. Dix visiteurs qui arrivent en même temps, c'est dix fois la même page à fabriquer.
Le temps de ce travail dépend du serveur, de ses réglages et des modules installés sur la boutique. Rapide ou lent, ce temps est dépensé à chaque visite, pour un résultat identique.
Un cache pleine page part de ce constat : pour un visiteur non connecté, au panier vide, la page ne change pas d'une visite à l'autre tant que la boutique ne change pas. Autant la fabriquer une fois.
Le principe : servir la page déjà prête
Orbit Cache garde le HTML d'une page déjà fabriquée par PrestaShop. Quand le visiteur suivant demande la même page, cette copie lui est resservie telle quelle, sans démarrer PrestaShop : la base de données n'est pas interrogée.
Les temps se comptent ici en millisecondes (ms), c'est-à-dire en millièmes de seconde. Une page en cache part en général du serveur en moins de 10 ms, au lieu de plusieurs centaines sans cache.
La copie naît en général à la première visite de la page : PrestaShop la fabrique pour ce visiteur, et le module la garde pour les suivants. Si la copie manque, ou si le cache rencontre un problème, PrestaShop fabrique simplement la page, comme sans cache : rien ne casse.
Orbit Cache garde les pages publiques, celles que n'importe quel visiteur peut voir : l'accueil, les fiches produit, les catégories, les pages de contenu (CMS), les pages de marque et de fournisseur, les meilleures ventes, les nouveautés, les promotions, le plan du site, la page des magasins et la page 404, qui s'affiche quand une adresse n'existe pas. S'y ajoutent les pages de modules que vous choisissez, celles d'un blog par exemple.
Deux précisions comptent pour une boutique qui vend à l'étranger ou qui fait de la publicité :
- Les devises et les pays. Le cache garde une version de chaque page par devise et par pays : chaque visiteur voit la page de sa devise et de son pays.
- Les campagnes. Les publicités et les newsletters ajoutent des informations de suivi à l'adresse de la page, pour savoir d'où vient le visiteur. Le visiteur venu d'une campagne reçoit tout de même la page en cache, comme les autres.
Un cache rend aussi service quand une page reçoit beaucoup de visites d'un coup, comme une page d'atterrissage : celle où arrivent les visiteurs d'une campagne de publicité ou d'une newsletter. Pensez au Black Friday : quand mille visiteurs ouvrent la même page, PrestaShop ne la fabrique qu'une fois, et le serveur garde ses forces pour le panier et la commande. Ce jour-là, une page en cache fait toute la différence.
Savoir quand une page n'est plus juste
Garder une page est la partie facile. Le vrai problème est de savoir quand elle n'est plus juste : un prix change, un produit passe en rupture de stock, une promotion commence.
Orbit Cache s'en charge seul. Quand vous changez un prix, un stock, une image ou une description, les pages qui l'affichent sont rafraîchies aussitôt, et elles seules : par exemple la fiche du produit et ses catégories. Le visiteur suivant reçoit une page à jour, refaite par PrestaShop, qui entre à son tour dans le cache.
Pour une promotion datée, qui commence ou s'arrête à une heure précise, la page affiche le nouveau prix à l'heure prévue, à quelques minutes près, même si elle est en cache.
Encore faut-il que le changement passe par PrestaShop. C'est le point à vérifier si vos prix ou vos stocks sont synchronisés avec un ERP, votre logiciel de gestion, ou avec vos fournisseurs. Le webservice de PrestaShop est la porte d'entrée prévue pour que d'autres logiciels modifient la boutique. Une synchronisation qui passe par ce webservice rafraîchit les pages comme une modification faite dans le back-office. Une synchronisation qui écrit directement dans la base de données ne prévient pas PrestaShop : la page n'est pas rafraîchie aussitôt, mais seulement quand sa copie expire, car une copie ne reste en cache qu'un temps limité. Avant d'installer un cache, demandez à la personne qui a mis la synchronisation en place par où elle passe.
Ce qui ne doit jamais être en cache
Certaines pages sont propres à chaque personne : le panier, la commande, le compte client, et les pages vues par un client connecté. En cache, ces pages montreraient à un visiteur le nom ou le panier d'un autre.
Orbit Cache ne sert donc une page en cache qu'à un visiteur non connecté, dont le panier est vide. Dès qu'un visiteur se connecte ou ajoute un article à son panier, PrestaShop fabrique chacune de ses pages, comme sans cache.
Un dernier contrôle a lieu avant de garder une page : si elle porte une donnée personnelle, elle n'entre pas dans le cache. Le visiteur la reçoit normalement, fabriquée par PrestaShop, mais elle n'est pas gardée pour les suivants. En cas de doute, la boutique perd un peu de vitesse plutôt que de montrer à un visiteur ce qui ne le concerne pas.
Ce qu'un cache n'accélère pas
Un cache sert des copies. Ce qui n'a pas de copie va à la vitesse de PrestaShop et du serveur.
- La première visite d'une page. Le premier visiteur attend que PrestaShop fabrique la page, qui entre ensuite dans le cache, et il en va de même après chaque mise à jour de la page. Mais le préchauffage d'Orbit Cache remet de lui-même les pages dans le cache, sans attendre de visiteur : la première visite n'est donc pas toujours lente.
- La recherche. PrestaShop calcule ses résultats à chaque fois.
- Les filtres chargés à la volée. Quand cocher un filtre met à jour la liste des produits sans recharger la page (on parle d'AJAX), la réponse ne passe pas par le cache.
- Le panier, la commande, le compte client et le back-office. Ces pages sont calculées pour chaque personne. Leur vitesse dépend de l'hébergement : la puissance du serveur et ses réglages.
Si ce sont ces pages qui sont lentes chez vous, c'est d'abord l'hébergement qu'il faut regarder, puis les modules installés. Côté hébergement, c'est le rôle de l'hébergement PrestaShop Orbit : un serveur réglé pour PrestaShop.
Le gain d'un cache dépend donc de la part des pages publiques dans le trafic de votre boutique. Si vos visiteurs arrivent surtout sur l'accueil, les catégories et les fiches produit, sans se connecter, le cache sert une grande part de vos pages. Si vos clients se connectent avant de naviguer, le cache ne change rien pour eux : PrestaShop fabrique chacune de leurs pages.
Mesurer le gain chez vous
Dans le back-office, deux outils du module montrent ce que fait le cache :
- L'onglet Statistiques. Il fait le bilan chez vos vrais visiteurs, robots exclus : la part des pages servies depuis le cache, et le temps serveur avec et sans cache.
- L'inspecteur en direct. Lancé d'un bouton, il affiche sur chaque page de la boutique si elle vient du cache, pourquoi, et en combien de temps.
Pour tester vous-même, ouvrez la boutique sans être connecté, panier vide : une fenêtre de navigation privée convient. Sinon, PrestaShop fabrique la page pour vous, sans passer par le cache. La méthode pour mesurer le temps d'une page dans votre navigateur est dans l'article sur la lenteur de PrestaShop.
Chez Francopieces, qui vend en ligne des pièces détachées d'électroménager, le temps serveur est divisé par 40 en médiane sur toutes les pages. La médiane est la valeur du milieu : la moitié des mesures est au-dessus, l'autre moitié en dessous. La médiane passe de 320 ms sans cache à 7 ms avec Orbit Cache.
Temps serveur médian sur toutes les pages, avec et sans cache, mesuré par Orbit Cache sur francopieces.com, septembre 2026.
Ce chiffre de 40 est celui de Francopieces, dont la boutique est déjà bien optimisée : le vôtre peut être différent. Le gain dépend de la vitesse de votre boutique sans cache, et de la part des pages publiques dans son trafic. Le récit de cette mise en production est dans la réalisation Orbit Cache chez Francopieces.