La concurrence est rude mais elle est bénéfique pour l'innovation! Même si Page Cache Ultimate a toujours proposé un cache plus performant que les concurrents, cela devenait compliqué à expliquer aux clients. Je me suis donc penché sur cette fonctionnalité que j'avais en tête depuis longtemps : ne plus du tout charger le CMS Prestashop lorsque le cache est disponible, autrement dit, servir les pages comme des fichiers statiques!

Les enjeux

Réussir une telle prouesse permettrait de réduire le TTFB de façon spectaculaire, en général un fichier statique étant servi en moins de 100ms (et je suis très large).

La difficulté

Le problème c'est qu'une même page n'a pas le même contenu en fonction du visiteur qui demande son affichage. Plusieurs paramètres sont pris en compte: la monnaie (euro, dollars, etc.), les groupes d'utilisateurs du visiteur, le pays (en cas de restriction d'accès), les taxes à appliquer, etc. Tout ceci forme ce que j'appelle un contexte.

Impossible de connaitre ce contexte sans passer par Prestashop, alors comment faire?

La solution

Le premier affichage ne pourra donc pas se faire sans un chargement de Prestashop, cela fonctionnera donc comme avant, avec l'utilisation du cache côté serveur si celui-ci est disponible. Le module va profiter de ce premier affichage pour placer un cookie 'jpresta_cache_context' permettant d'identifier le contexte à utiliser!

Grâce à ce cookie il est désormais possible de renvoyer le bon fichier correspondant à l'URL de la page.

Techniquement, le nom du fichier du cache sera le hachage (MD5) de l'URL. Ceci ne pouvant pas être calculé par Apache de façon simple, le module va utiliser un petit script PHP indépendant et très rapide pour renvoyer le fichier statique au navigateur. On en profite pour renvoyer la version stockée déjà compressée de la page, cela évite à Apache de devoir le faire.

Résultats bluffant!

C'est tout simplement incroyable, la différence de vitesse est énorme, mes premiers tests me donnent un TTFB inférieur à 10ms!

Sur JPresta.com qui utilise un hébergement mutualisé, le TTFB moyen est maintenant de 100ms !

TTFB avec Page Cache Ultimate

J'en ai profité pour ajouter des statistiques sur l'utilisation des différents types de cache, voici par exemple la répartition sur JPresta.com:

Prestashop static cache use

Pour profiter de cette nouvelle fonctionnalité il vous suffit de mettre à jour le module si votre période de support et de mises à jour est toujours active, sinon vous pouvez l'étendre, et si vous n'avez pas encore de licence vous pouvez acheter Page Cache Ultimate . Pour aller plus loin dans l'optimisation de votre boutique Prestashop vous pouvez aussi opter pour Speed Pack (Page Cache Ultimate + WEBP + Profiler SQL + Nettoyeur de BDD) qui inclus Page Cache Ultimate. Je vous conseille aussi notre thème JPresta Origin optimisé pour la vitesse et les Core Web Vitals!