Comment bien configurer la page Performances de PrestaShop 1.7

Découvrez la meilleure configuration possibble de la section Performances pour améliorer la vitesse de votre site PrestaShop

Vous le savez tous, les performances de votre boutique en ligne influencent directement votre taux de conversion, il apparait donc primordial de faire les bons choix lors de la configuration de votre boutique PrestaShop.

Je vais donc vous présenter ce qui me semble, la meilleure configuration possible pour votre boutique en ligne.

Accès à la configuration

Pour pouvoir paramétrer ces éléments de performances pour votre boutique en ligne, il vous suffit de vous connecter à votre espace de gestion (backoffice) puis de cliquer sur le menu Paramètres avancés >> Performances

Gestion du cache Smarty

PrestaShop intègre des solutions pour mettre en cache des éléments de la boutique et éviter de devoir recalculer les informations à chaque visite et donc de réduire le temps de traitement des données pour les afficher.

Pour résumer l'idée, PrestaShop prend le code à traiter, génère un fichier qui sera appelé par la suite sans devoir faire son traitement.

C'est ce que l'on appelle des fichiers statiques, moins gourmands en ressources, ce qui laisse la puissance à votre serveur d'hébergement pour faire d'autres tâches.

Pour ceux qui ne connaissent pas Smarty, c'est ce que l'on nomme un moteur de template. Il permet d'effectuer des traitements et l'affichage des données dans le cadre d'un développement permettant de séparer la génération des données à traiter de leur affichage.

La bonne configuration du cache smarty de Prestashop pour une boutique en production
La configuration idéale du cache Smarty pour un PrestaShop en production

Lorsque votre boutique est en production, il est préférable de tout faire pour augmenter l'utilisation de ces fichiers statiques et donc on choisira évidemment de ne bloquer la génération des fichiers cache pour les templates même s'ils sont modifiés.

Il est évident qu'on préférera laisser la possibilité de générer un nouveau cache pour les templates lorsque la boutique est en développement ou lorsque vous souhaitez appliquer des modifications au design de celle-ci.

Le cache est bien activé et l'on pensera à conserver le rafraichissement du cache lorsque l'on met à jour une donnée de la boutique comme un produit ou une catégorie.

Les autres paramètres sont plus techniques et ne concernent que les grosses boutiques hébergées sur plusieurs serveurs différents et donc demanderaient une analyse approfondie du code et de son usage, en gros, ceux qui ont besoin de modifier ces paramètres n'auront pas besoin de mon article pour savoir comment faire.

Mode Debug

Paramétrer le mode debug pour identifier un problème sur sa boutique PrestaShop

Comment débugger sa boutique PrestaShop

Cette section va vous permettre d'identifier l'origine d'un problème sur votre boutique PrestaShop et de le corriger.

Je propose depuis plusieurs années un tutoriel pour apprendre à activer le mode debug de PrestaShop afin de corriger les problèmes rencontrés et la version 1.7 permet de le faire simplement à partir du backoffice sans devoir rentrer dans le code des fichiers par FTP.

Néanmoins, il est toujours indispensable de connaître la procédure manuelle pour intervenir si la page Performances n'est elle-même plus accessible suite à un problème.

Donc, l'activation du mode debug, est une action récurrente pour toute boutique en développement.

Les deux autres paramètres ne sont fonctionnels que si le mode debug est activé, c'est assez étrange qu'il n'existe aucune liaison entre ces champs pour le savoir et surtout, vous ne trouverez cette information nulle part.

La désactivation des modules tiers permet de savoir rapidement si le souci provient d'un nouveau module qu'on aurait installé ou d'une incompatibilité entre plusieurs modules.

La désactivation des surcharges permet de savoir où chercher si le message d'erreur disparait après avoir activé cette option, car toutes les surcharges sont stockées sur votre hébergement dans le répertoire /overrides.

Désactiver des fonctionnalités

Comment désactiver des fonctionnalités natives

L'espace de personnalisation des fonctionnalités natives de PrestaShop

Cette section est une section étrange dans cet espace de configuration du backoffice puisqu'elle permet de désactiver des fonctionnalités natives présentes sur PrestaShop.

Personnellement, je n'y touche jamais, car toutes ces fonctionnalités font justement de PrestaShop un outil complet pour créer sa boutique d'ecommerce.

CCC (Concaténation, Compression et mise en Cache)

Cette partie est très importante dans la configuration des performances sur PrestaShop.

Configuration conseillée pour la concaténations des fichiers JS et CSS
Est-ce vraiment la configuration parfaite pour votre boutique ?

Lorsque votre boutique est en production, il faut logiquement laisser toutes ces options actives.

Une nuance peut être tout de même apportée sur ce point.

Le fait de réduire le code et de le placer dans un seul fichier CSS ou JS consomme des ressources et l'avènement du protocole HTTP/2 en remplacement du HTTP/1 fait que le souci qui existait avec ce protocole a disparu sur le fait de charger en parallèle plusieurs fichiers.

Les optimisations Apache dans le .htaccess sont indispensables dans tous les cas, mais les smartCache doivent être testés et analysés pour savoir s'il est opportun de les activer, car dans de rares cas, il peut être préférable de ne pas les activer. Mais rappelez-vous que si vous avez décidé d'utiliser un CDN pour les médias, il faudra activer les options de smartCache.

Dans tous les cas, si votre site rencontre des soucis d'affichage ou de fonctionnement lorsque le smartCache est actif, cela met en évidence que votre site a un problème qui doit être corrigé.

Serveurs de média

Comme annoncé précédemment, cette option ne fonctionne que lorsque les options de smartCache sont activés.

Ici, vous pourrez configurer des domaines ou sous-domaines pour appeler vos fichiers statiques comme j'en parle concernant la mise en place d'un CDN sur PrestaShop.

L'ancienne technique des sous-domaines pour diffuser les fichiers statiques ne me semble plus adapté de nos jours avec le protocole HTTP/2 puisque cela servait principalement à charger plus de fichiers en parallèle est ne plus être limité par son hébergement.

Donc soit vous passez par un CDN comme Cloudflare qui va remplacer directement votre gestionnaire DNS de votre hébergeur, soit vous passez par un CDN sur des domaines tiers comme présenté dans mon article cité précédemment, cette situation est toujours présente, car elle permet d'intégrer deux méthodes de CDN différents.

Attention au CDN proposé par votre hébergeur

Il existe des hébergeurs qui intègrent des CDN à leur offre d'hébergement, comme le propose OVH sur ces offres mutualisées.

Je ne saurai trop vous conseiller d'effectuer beaucoup de tests, car dans certains cas cela peut bloquer les modifications effectuées dans votre base de données. Il existe de nombreux témoignages sur le forum officiel de PrestaShop ou le fait de désactiver l'option CDN d'OVH a corrigé tous les problèmes d'usage de la boutique.

Cache serveur

Ne jamais utilisé le cache serveur de PrestaShop

Il ne faut jamais activé le cache serveur proposé par PrestaShop !

La seule configuration qui doit être utilisée au niveau de l'option de cache serveur proposé par PrestaShop est de désactiver obligatoirement cette option.

Elle n'a jamais fonctionné Quel que soit le système de cache serveur utilisé, elle provoque des remontés de paniers chez d'autres clients, des accès à des comptes clients erronés, des paniers modifiés sans raison, ainsi de suite.

Cette option n'a jamais fonctionné et à ce jour, je n'ai jamais constaté la moindre modification pour que cela fonctionne convenablement.

Conclusion

Les options de configuration de cette page sont essentielles et doivent être appliquées sur toute boutique en production pour au moins commencer à se demander si le problème ne viendrait pas du type d'hébergement utilisé.

Je ne conseillerais jamais d'utiliser le moindre module pour proposer des solutions de cache supplémentaires, mais bien l'optimisation des modules et des templates, car si vous appliquez cette configuration et que votre boutique a toujours un souci de performance, cela peut venir de modules ou template de mauvaise qualité et mal développés.