Accueil » Conseils & tutoriels sites internet » Tutos Prestashop » Votre Prestashop est lent ? Réglez votre cache !

Votre Prestashop est lent ? Réglez votre cache !

Posté dans : Tutos Prestashop 3

Il m’arrive souvent de recevoir des demandes portant sur la vitesse d’un site e-commerce Prestashop, pour des raisons de lenteur parfois sur le back-office, parfois le front-office, parfois même les deux. Dans les mails que je reçois, les demandes suggèrent quasi immédiatement une proposition commerciale pour optimiser cela.

Il est toujours un peu compliqué de définir les optimisations à mettre en place sur une telle considération, tant de nombreux éléments peuvent impacter la vitesse de chargement des pages. Envoyer une proposition quasi immédiate sans même regarder en détail le site relèverait en conséquent de l’hypocrisie, raison pour laquelle je demande systématiquement des accès à l’administration, afin de vérifier que tout est bien en place au niveau des réglages de Prestashop.

Il y a ainsi une fois sur quatre où, réellement, la personne a besoin d’une proposition. Voyons donc les réglages qui peuvent booster votre site, avec en premier lieu ceux qu’il faut impérativement paramétrer pour obtenir de bons résultats, et ceux que je qualifierai d’optionnels car ils dépendent à la fois des modules mais également du thème installé.

Sous Prestashop 1.6 comme Prestashop 1.7, les réglages de cache se situent dans « Paramètres avancés » puis « Performances ». Retenez bien cet onglet, vous y reviendrez souvent.

Sous Prestashop 1.7, certains réglages n’existent plus, et quelques-uns sont ajoutés, afin de maximiser les réglages et optimiser votre délai de configuration.

Le cache Smarty

Smarty est un moteur de template encore en vigueur sous Prestashop 1.7, natif depuis très longtemps et très utile pour obtenir une efficacité redoutable pour les webdesigners. Smarty étant un langage, de nombreuses variables très simples peuvent être utilisées, cliquez ici pour retrouver quelques-unes des variables globales Smarty pour Prestashop.

Le cache Smarty de Prestashop

La compilation des templates

Forcer la compilation provoquera une très grande latence de toutes vos pages. Ce réglage ne devrait être en place qu’uniquement en préproduction ou en phase de développement.

Vous remarquerez que sur ma capture d’écran plus haut, les templates sont recompilés uniquement lorsqu’une modification est détectée, plutôt utile en ce qui me concerne vu que je n’arrête pas de toucher au code sur l’interface de développement dont sont issues ces captures d’écran.

Si vous ne comptez pas faire de corrections régulières dans vos fichiers de templates, vous pouvez bien évidemment passer ce réglage à « Ne jamais recompiler les fichiers de templates », mais il vous faudra bien vous en rappeler et vider le cache à chaque modification. De plus, fournir des accès FTP à un développeur sans lui fournir les accès au back-office rendra forcément beaucoup plus longue la prestation de correction ou d’optimisation demandée (pensez-y, cela arrive plus souvent qu’on ne le croit !).

L’activation du cache

Le bouton de cache doit être sur « Oui », sauf sur une interface de développement ou de préproduction. Rien ne sert de paramétrer le cache sans l’activer, c’est comme prendre un télépéage mais ne jamais l’utiliser : forcément le passage au péage sera plus long ! Ce réglage, une fois en production, doit donc être activé et ne plus bouger. En cas de nécessité, le bouton « Vider le cache » en haut à droite vous aidera et vous n’aurez pas à modifier ces réglages de base.

Type de mise en cache et vider le cache 

Le type de mise en cache est par défaut via un système de fichiers, c’est-à-dire que le cache sera dans un répertoire de votre FTP. Petite astuce : si vous videz le répertoire /cache/smarty/compile de votre Prestashop, vous recompilerez les fichiers de templates de votre site e-commerce (utile lorsque l’on a pas d’accès back-office).

Si vous passez ce réglage à « MySQL », votre FTP s’en trouvera allégé, mais c’est la base de données qui elle se verra alourdie. Veillez dans ce cas à avoir un serveur de base de données puissant et suffisamment de ressources sur votre serveur (je dirais même : sur un hébergement mutualisé, évitez d’utiliser ce réglage, je doute que vous disposiez de performances suffisantes).

Les réglages de cache selon votre boutique

Comme précisé plus haut, certains réglages peuvent varier selon si votre boutique est sous Prestashop 1.6 ou Prestashop 1.7, mais dans l’ensemble il n’y a que peu de différences, davantage une simplification de la gestion du cache.

Overrides et modules natifs (mode debug)

Votre Prestashop est lent ? Réglez votre cache ! 1

Prestashop n’ignore pas que certains modules ne sont pas créés par eux-même, et refuser les modules non natifs de Prestashop peut grandement aider à trouver un module qui génère des erreurs grâce à un simple bouton.

Attention cependant, si vous utilisez un thème qui ajoute des modules, tous ceux-ci seront désactivés. Cela impactera tout module qui n’a pas été initialement installé en même temps que votre Prestashop.
D’ordinaire, accepter les modules non natifs permet d’ajouter des fonctionnalités comme des modules de devis, des modules de cookies, etc. Il est en conséquent préférable de le laisser à « Non ».

Les overrides sont une fonctionnalité de Prestashop qui peut se révéler utile, à savoir que les développeurs peuvent réécrire le code de Prestashop selon un besoin très spécifique. Même si cela a l’air d’être très pratique, faire des overrides n’est pas considérée comme propre et stable. En effet, si tous les développeurs se mettaient à modifier Prestashop, le bon fonctionnement de la boutique s’en trouverai fort compromis (et la Team effectue de temps en temps des corrections à ce sujet sur des boutiques qui souffrent malheureusement de ce problème). Parfois hélas, nous n’avons pas le choix et devont en créer, ce qui est le cas par exemple sur notre module Google Recaptcha pour bloquer les spams sur le formulaire de contact.

Désactiver les overrides peut donc booster un peu votre boutique, mais selon les modules dont vous faites l’acquisition, ceux-ci peuvent avoir besoin de réécrire le code de Prestashop. Si votre module ne fonctionne pas sans les overrides, activez-les. Sinon, essayez de privilégier le refus total des overrides. Ce paramètre néanmoins ne boostera pas votre site tout autant que les paramètres suivants, dépendant de votre thème (et pour ma part, j’aurais tendance à les autoriser, au cas où).

Sous Prestashop 1.7, le mode debug va vous fournir des informations supplémentaires pour analyser le chargement de vos pages, utile pour nous développeurs, mais à laisser à « Non » sur un site en production.

Les fonctionnalités désactivables

Votre Prestashop est lent ? Réglez votre cache ! 2

La question est très simple : pourquoi activer des outils que vous n’allez jamais utiliser ?

Les caractéristiques produits (options de produits sans prix, à but informatif) tout comme les déclinaisons (options de produits facturables) consomment de la ressource serveur, je me demande même si ce ne sont pas ces options les plus gourmandes en terme de ressource serveur, vu que Prestashop suggère de les désactiver.

Je comprends tout-à-fait que vous puissiez avoir besoin de proposer des options à vos clients, et les caractéristiques des produits (poids, longueur, etc) aident au tri côté front-office, via le module à facettes. Mais si vous n’avez qu’un seul produit possédant des déclinaisons, réfléchissez à un moyen de le proposer différemment, pour pouvoir désactiver les déclinaisons.

Les groupes clients sur Prestashop sont par défaut au nombre de trois :

  • les visiteurs : personnes non enregistrées ou connectées sur votre site
  • les invités : personnes ayant passé commande sans créer de compte
  • les clients : personnes ayant passé commande et possédant un compte

Certains utilisent les groupes clients afin de trier ces personnes selon des critères précis, et leur proposer des tarifs spécifiques, afficher les prix en HT… Ce n’est pas votre cas ? Désactivez la gestion des groupes clients, ce sera un petit plus pour l’accélération de votre site Prestashop.

Concaténation, compression et mise en cache

Votre Prestashop est lent ? Réglez votre cache ! 3

Les thèmes natifs de Prestashop ont en règle générale tous les boutons de cette section réglés sur « Oui », preuve qu’une boutique peut véritablement avoir son cache boosté de façon quasi maximale. Sous Prestashop 1.7, ce réglage est bien plus simple et plus condensé (donc plus facile et évident à mettre en place). Un bon thème Prestashop devrait fonctionner parfaitement avec tous les réglages passés sur « Oui ».

Voyons en détail à quoi cela correspond.

Smart Cache pour les feuilles de style

Il y a plusieurs feuilles de style sous Prestashop, dépendant à la fois du type de page affichée (produit, catégorie…) mais également des modules (comme EverPopup , module de popup gratuit pour Prestashop 1.6 et Prestashop 1.7, qui vous propose des CSS personnalisables). Comme cela fait beaucoup de fichiers à charger un par un, Prestashop vous propose de les condenser en un seul, allégeant ainsi le temps de chargement de vos pages. Le seul hic que l’on peut trouver est qu’il devient plus compliqué de trouver le fichier CSS que l’on souhaite corriger.

A désactiver donc en phase de préproduction ou développement, mais activez ce réglage en production. Si vous souhaitez comprendre les CSS de Prestashop, la Team a réalisé un petit tutoriel encore d’actualité sous Prestashop 1.7 🙂

Smart Cache pour le code Javascript

Le code Javascript est un code dynamique sous Prestashop qui s’occupe notamment de la mise au panier, de quelques effets dynamiques, et est très utile pour traiter de l’information sans avoir à recharger la page (grâce à la technologie Ajax, une de mes préférées !). Bien évidemment, tout cela prend du temps, ralentit le chargement de vos pages, et selon la page affichée, plusieurs fichiers Javascript peuvent être appelés sur une même page.

Condensons les fichiers Javascript en un seul ! 

Compression du code HTML

Le code HTML est souvent bien indenté, bien lisible, de manière à ce qu’un technicien puisse aisément s’y retrouver. On y trouve donc des espaces, des sauts à la ligne… Sauf que tous ces espaces et sauts à la ligne font que le temps de chargement est un peu plus long (et oui, un espace demeure un caractère dans le code !). L’idée est donc en un seul bouton de retirer tous les éléments inutiles afin de compresser le tout en quelques lignes à peine. Cela rend bien évidemment le code quasi illisible mais votre site gagne en temps de chargement.

Si cela vous intéresse, plusieurs outils en ligne permettent de compresser manuellement votre HTML, comme htmlcompressor. N’hésitez pas à tester pour voir ce que réalise Prestashop via un simple bouton.

Compression du Javascript dans le HTML

Les fichiers Javascript possèdent les mêmes contraintes au chargement des pages que le HTML en lui-même (pour dégrossir et vulgariser). L’idée est donc ici de faire la même chose que pour le cas cité juste au-dessus : compressons, réduisons tous ces fichiers afin de les rendre plus légers !

Faites attention en revanche à bien tester votre site, certains modules (comme des modules de livraison) se comportent très mal avec ce réglage, et certains thèmes Prestashop utilisant énormément (trop ?) de Javascript pour des effets visuels peuvent rendre inopérantes certaines fonctionnalités sur le front-office si vous compressez le Javascript au sein du HTML.

Déplacer le Javascript à la fin

Comme sur un bateau, lorsque l’on parle d’un site internet, on parle de ligne de flottaison. Sur un bateau il s’agit de la limite à laquelle la coque sort de l’eau, et est donc visible. La partie visible en marine est nommée l’oeuvre morte : c’est ce que vous voyez sur votre navigateur. La partie immergée du bateau est nommée oeuvre vive : ce sont toutes les informations liées au référencement (balise title, meta_description…), l’appel aux fichiers CSS, aux fichiers Javascript. L’expression « ligne de flottaison » est exactement la même que l’on utilise dans le web, comme en marine 🙂

Chaque fichier appelé dans la zone « d’oeuvre vive » (plus exactement avant la balise </head> de votre site) ralentit donc le temps de chargement de la page. L’idée est de passer tout le javascript dans le pied de page, afin d’alléger tout cela (et au passage, tous les sites devraient faire cela, ce qui n’est pas forcément évident selon le type de thème ou de modules utilisés).

Alors – me direz-vous – pourquoi ne pas également passer tous les fichiers CSS dans le pied de page ? Eh bien tout simplement parce que le design de votre site serait affiché uniquement lorsque toute la page est chargée dans le navigateur du client. Vous auriez donc un site sans design durant quelques millisecondes, ce qui n’est pas visuellement l’idéal…

Optimisation Apache

Apache est un logiciel libre très pratique et utilisé sur de nombreux hébergements. C’est notamment ce logiciel (en place sur de nombreux types d’hébergements) qui permet d’activer la réécriture des URL via un fichier nommé .htaccess.

Grâce à ce fichier et Apache notamment, il est possible de faire beaucoup de choses, comme notamment déplacer un nom de domaine vers un autre sans perdre de référencement, avec des redirections 301.

Ici, ce bouton va autoriser Prestashop à ajouter des règles dans ce fichier htaccess, donnant de nouvelles directives à Apache afin de booster votre site internet (compression Gzip, etc). Il vous suffit de cliquer dessus pour mettre en place cela, mais quelques tests préalables (par exemple en testant votre site sur GTMetrix) vous aideront à savoir si tout est bien en place. Attention donc, cette optimisation dépend de votre hébergement ainsi que de l’offre à laquelle vous avez souscrit.

Le cas des CDN (serveurs de médias)

Imaginez que vous pouvez diviser par trois le temps de chargement de vos pages ! Le principe est le suivant : on utilise la puissance de trois serveurs différents (en plus de l’actuel) pour que le contenu soit affiché de trois sources différentes. C’est ce qu’on appelle le CDN (Content Delivery Network, ou Réseau de Diffusion de Contenu).

Lorsque le visiteur souhaite afficher une page, vous bénéficiez donc de quatre machines en tout pour afficher le contenu, qui apparaît d’un coup, plus rapidement. Votre serveur principal fera donc la liaison avec les autres machines.

Utiliser le même serveur pour paramétrer les serveurs de médias est donc en un sens un peu inutile, car les performances seront issues de la même localisation, de la même machine. Cela signifie donc que louer trois serveurs supplémentaires augmente le coût de vos hébergements pas trois !

D’ailleurs, le saviez-vous ? Certains des GAFAM (Google – Amazon – Facebook – Apple – Microsoft) proposent des CDN. CloudFlare quant à lui ajoutera une couche de sécurité, permettant jusqu’à un certain niveau de combattre le Ddos.

Ce réglage ne pourra être utilisé que si et seulement si tous les réglages de concaténation, compression et mise en cache sont tous à « Oui ».

L’utilisation des serveurs de médias ne sera à envisager que si d’une part vous en avez les moyens financiers, et si d’autre part si véritablement vous en avez la nécessité.

Chiffrement et cache

Le chiffrement dépend complètement de votre hébergement. Pour vulgariser, l’algorithme utilisé dépend de ce qui a été installé et couplé à la version de PHP en place sur le serveur. Il s’agit donc d’une extension. Par défaut, beaucoup d’hébergement utilisent mycrypt, mais si ce réglage ne fonctionne pas, demandez à votre hébergeur de vous le mettre en place.

Le dernier système de cache est celui qu’il vous faudra désactiver si vous utilisez le module de mise à jour en un clic. Encore une fois, cela dépend des extensions actives sur votre hébergement, mais vous pouvez utiliser dans le doute le système de fichiers (bien que vous pouvez demander une fois de plus à votre hébergeur de vous installer les extensions Memcache, Memcached ou autres suggestions de Prestashop dans ce réglage).

D’ordinaire, de bons réglages se situent avec un chiffrement Rijndael, et un cache utilisant soit un système de fichiers, soit Memcache ou Memcached. Sous Prestashop 1.7, le système de fichiers a été abandonné, vous devrez donc voir avec votre hébergeur pour les autres suggestions.

Le cas des modules

Bien souvent, de nombreux modules sont simplement désactivés, notamment lorsqu’un thème a été acheté et mis en place sur la boutique.

Lorsque le thème est activé, celui-ci aura tendance à désactiver simplement les modules dont il n’a pas besoin. La désactivation d’un module est utile car elle permet d’en conserver les données et paramètres, au cas où un administrateur désirerait le remettre en place.

Ces modules sont les grands oubliés des webdesigners. Si vous désinstallez un module, vous retirerez totalement ses informations de la base de données, allégeant de la sorte votre boutique. Sur la dernière boutique dont la Team a optimisé les performances, ce ne sont pas moins de quinze modules inactifs qui ont été désinstallés, dont trois diaporamas !

De manière globale, désinstallez totalement le module gamification et statsdata qui sont parmi les deux alourdissant le plus votre boutique et ralentissant le temps de chargement de vos pages.

Modules & positions

Lorsqu’un module est greffé à un emplacement de votre boutique, il y a de fortes chances que celui-ci charge beaucoup de fichiers (comme des CSS ou des scripts Jquery/javascript).

Par exemple, certains modules de diaporama se greffent partout sur votre boutique Prestashop, parfois à des endroits sur lesquels vous n’utilisez pas ce module. Prenons un exemple, comme un module de diaporama que vous auriez acheté sur Prestashop Addons ou ailleurs, afin de mettre en place des diaporamas sur vos pages accueil, catégories, etc.

Le module sera donc greffé dans l’en-tête de votre site ou son pied de page selon votre version de Prestashop, ce sur l’intégralité des pages de la boutique (encore qu’à ce niveau, tout dépend de la qualité du développement du module).

Rendez-vous donc dans l’onglet « Apparence » puis « Positions » sur Prestashop 1.7, ou – sur Prestashop 1.6 – dans l’onglet « Modules » puis « Positions ». Recherchez les hooks comme « displayHeader » ou « header », et modifiez le module en question, afin de lui donner des restrictions.

Votre Prestashop est lent ? Réglez votre cache ! 4

Mieux encore : dé-greffez le module de toutes les positions sur lesquelles vous n’en avez pas besoin, et faites de même avec tous les modules installés. Outre le fait que cela vous permettra de bien voir quels sont les modules chargés, vous trouverez peut-être également des modules greffés mais non activés, qu’il faudra dans ce cas désinstaller.

Votre Prestashop est lent ? Réglez votre cache ! 5

Des modules de cache

Ici je ne parlerai pas vraiment de modules de cache que l’on peut trouver sur Prestashop Addons, bien qu’ils soient très bien développés. Il existe cependant au moins deux modules utiles à mettre en place sur votre boutique, mais qui découlent parfois d’une configuration serveur spécifique. J’aurais plutôt tendance à dire qu’il faut d’abord optimiser sa propre boutique avant de mettre un nouveau système de cache, lequel ne résoudra pas les soucis que vous avez à disposer de beaucoup de modules, chargés un peu partout sur vos hooks Prestashop.

Un module de lazy load

Le lazy load est ce qu’on peut appeler un chargement différé. Lorsque vous chargez une page catégorie, le navigateur chargera également d’un coup toutes les images produits, quand bien même elles ne sont pas encore visibles sur votre écran. Le lazy load permet de résoudre ceci en « mettant en attente » le chargement des images tant que l’internaute ne les a pas affichées sur son écran. Cela allège donc considérablement le temps de chargement des pages catégories, lesquelles demeurent finalement en SEO une source considérable de flux de données.

Coup de bol, SunnyToo offre justement un module de lazy load ici ! Rapide à mettre en place, il est donc un incontournable 🙂 Cela ne vous empêche pas au demeurant de travailler vos images ainsi que Nicolas de la Team en parle sur son article d’optimisation des médias sur un site internet.

Un module webp

Le format webp est un format d’image que Prestashop ne gère pas nativement, mais qui va réduire drastiquement le temps de chargement de vos pages, en plus d’un lazy load. Plusieurs modules existent à ce niveau, je n’ai pas de préférence particulière à en avoir testé quelques-uns, l’important reste d’en mettre un en place pour gagner au temps de chargement de vos pages (surtout les catégories).

Une fois ce module installé et avec un lazy load en place, vous pourrez ainsi tester le temps de chargement de vos pages catégories, de manière à augmenter le nombre de produits par page, maximisant le crawl de vos produits par les moteurs de recherche en minimisant la pagination.

Le format webp réduira jusqu’à 35% le poids de vos médias, ça n’est donc pas à négliger, mais il est probable que votre hébergeur doive installer la gestion de webp sur votre version de PHP. Les hébergements mutualisés ou low cost seront donc dans l’impossibilité de gérer cela.

Les modules de réseaux sociaux

Beaucoup de boutiques arborent encore des murs Facebook, Instagram ou Twitter. Cela en effet réalise des liens vers les réseaux sociaux, mais en réalité cela peut poser potentiellement deux soucis.

En premier lieu, les réseaux sociaux devraient être une source de trafic vers votre site, et non l’inverse. Il est inutile d’afficher un mur de publications, surtout si celui-ci reprend des éléments que vous affichez clairement sur votre boutique, comme une promotion pour Noël ou un code de réduction sur création de compte. Veillez davantage à rediriger le flux des internautes dans un sens plutôt que dans l’autre.

En second lieu, et ce qui touche davantage à des performances de votre Prestashop, lorsque vous chargez un mur issu d’un réseau social, c’est presque tout le réseau social que vous importez : le design, les scripts… Ces données dont vous n’avez aucun contrôle alourdissent le temps de chargement de vos pages. Privilégiez un logo d’un réseau social plus léger qui redirigera les internautes dans un nouvel onglet. N’oubliez pas que si vous n’aimez pas que Facebook vous espionne, il en est de même sur votre boutique. Supprimez donc ces trackers inutiles, retirez l’intégralité des murs des réseaux sociaux pour ne laisser que des icônes. Vous en serez même gagnant avec la loi RGPD et la confidentialité que vous désirez mettre en place sur votre boutique, tout en améliorant vos performances.

Quelques précautions avant de finir

Alors bien évidemment, juste cliquer sur des boutons ne suffit pas toujours, et cela comporte tout de même quelques risques qu’il convient de préciser. Par exemple, le débit de votre connexion internet peut fortement être en cause, ainsi que certains administrateurs de sites m’en ont parlé. Nul besoin d’avoir la fibre, mais une connexion stable est tout de même requise (je ne vois pas trop l’intérêt d’analyser le temps de chargement des pages avec une connexion smartphone de type Edge, inférieure à une connexion 3G par exemple).

Sur le navigateur Google Chrome, lorsque vous effectuez un clic droit pour inspecter le code, vous disposez d’un onglet « Audit » qui vous donnera rapidement un rapport de performances de la page. Des conseils (certes en anglais) s’y trouvent pour vous aider à améliorer le chargement de ladite page.

Votre Prestashop est lent ? Réglez votre cache ! 6

Nul doute que vous serez étonné de ce que vous recommandera votre propre navigateur, tout en vous fournissant conseils et plusieurs notes selon le résultat de la page analysée.

Votre Prestashop est lent ? Réglez votre cache ! 7

C’est notamment à partir de ce type de résultat d’analyses gratuites que vous pourrez envisager la marche à suive pour améliorer les performances de votre Prestashop.

Tester n’est pas douter !

A chaque fois que vous activez un réglage de cache, pensez systématiquement à vérifier toutes les pages de votre site, notamment le processus de commande.

Videz votre cache navigateur au préalable. Selon celui que vous utilisez, il vous suffit de suivre ce tutoriel de la Team qui explique comment vider le cache d’un navigateur de manière simple et efficace.

Testez depuis plusieurs navigateurs internet, ce n’est pas parce que vos réglages fonctionnent bien sous Google Chrome que c’est la même chose sous Safari ou Firefox. Ne négligez rien !

Le bouton « Vider le cache » situé en haut à droite de la page de gestion de cache vous aidera à tout vider et remettre bien à plat votre site. Certes cela ralentira durant un moment la vitesse de chargement de vos pages, mais celui-ci reprendra son rythme de croisière rapidement.

Renseignez-vous sur votre hébergement

Bien que Prestashop affirme fonctionner sur des versions de PHP 5.4, cette dernière n’est plus utilisée ni supportée depuis des années. A minima, soyez donc en PHP 5.6, et selon votre version de Prestashop et les modules utilisés, vous pourriez même passer à PHP 7, réduisant ainsi un peu la consommation serveur.

Votre serveur doit être basé dans le pays où vous vendez. Imaginez un peu un site vendant en France mais dont le serveur se trouve en Australie. Le temps de connexion serait incroyablement long ! Pour un site francophone, privilégiez un serveur en France, comme la Team en possède plusieurs.

N’utilisez pas d’offres d’hébergement low cost ou gratuites. Prestashop demeure un outil performant ayant besoin de performances. Il est donc préférable d’avoir une offre d’hébergement dédiée au e-commerce pour voir son site fonctionner bien plus rapidement.

Pourquoi avoir une Lada quand vous pouvez avoir une Lamborghini ?

Le Prestashop est toujours lent ?

Commencez par exemple par désinstaller et supprimer totalement le module nommé gamification, qui n’a jamais apporté plus de problèmes que de solutions. Désactivez un à un tous les modules de statistiques, qui alourdissent votre site tout comme votre base de données.

Il arrive parfois que Prestashop se … rate ! Sur le forum de Prestashop, Eolia a eu la gentillesse il y a peu de fournir les solutions pour résoudre des lenteurs supplémentaires, celles-ci provenant des mises à jour de Prestashop entre autres.

Ainsi, les solutions qu’il fournit fonctionnent très bien, vous aurez cependant et selon vos compétences besoin de faire appel (ou pas !) à un développeur.

Lien vers le forum de Prestashop : https://www.prestashop.com/forums/topic/907909-lenteur-bo/#comment-2979483

En résumé, outre la modification d’une classe via un override, il est préférable de désactiver la détection de mise à jour des modules depuis l’onglet « administration » de vos paramètres avancés, et de bien désinstaller notamment le module gamification, qui se contente bêtement de récupérer des informations et de vous attribuer des succès (sauf qu’un site Prestashop n’est ni un jeu XBox, ni un concours de trophées).  Lorsqu’un serveur de Prestashop a du mal à tourner, il impacte via le module gamification (entre autres, pensez à lire le forum) l’intégralité des sites utilisant ledit module. Donc hop ! ça dégage.

Le module Cleaner gracieusement fourni par Prestashop permet de nettoyer la base de données et de l’optimiser. Voyez cela comme un coup de balai sur le pas de la porte de votre boutique : ça ne coûte rien de l’utiliser, et ça optimisera votre base de données.

Votre Prestashop est lent ? Réglez votre cache ! 8

Apache, Nginx et PageSpeed

Beaucoup d’hébergements proposent désormais les deux premiers couplés l’un à l’autre. Il est intéressant de les utiliser de manière à booster encore plus l’affichage de sa boutique Prestashop, pour gagner encore quelques précieuses secondes au chargement des pages.

Pagespeed est un module Apache-Nginx plutôt performant mais à n’activer que lorsque votre boutique est terminée. La documentation est en anglais mais votre administrateur systèmes & réseaux saura s’en contenter et vous mettre rapidement cela en place.

https://www.modpagespeed.com/doc/configuration

Pagespeed va regrouper beaucoup de choses – comme le lazy load, une forme de compression HTML, retirer les commentaires du code – avec peu de lignes de code. De manière globale, veillez à tester votre Prestashop à chaque règle que vous ajoutez, pour bien vérifier le bon fonctionnement de la boutique. Il n’est d’ailleurs pas impossible que vous deviez contacter votre hébergeur pour chaque règle à paramétrer.

En voici quelques-unes qui nous ont permis d’améliorer considérablement le temps de chargement des pages d’une boutique Prestashop 1.7 :

ModPagespeedEnableFilters elide_attributes
ModPagespeedEnableFilters remove_quotes
ModPagespeedEnableFilters rewrite_style_attributes,rewrite_css
ModPagespeedEnableFilters trim_urls
ModPagespeedEnableFilters collapse_whitespace
ModPagespeedEnableFilters rewrite_javascript
ModPagespeedEnableFilters lazyload_images
ModPagespeedEnableFilters make_google_analytics_async
ModPagespeedEnableFilters remove_comments
ModPagespeedEnableFilters convert_jpeg_to_progressive
ModPagespeedEnableFilters convert_jpeg_to_webp
ModPagespeedEnableFilters inline_images
ModPagespeedEnableFilters extend_cache
ModPagespeedEnableFilters convert_meta_tags
ModPagespeedEnableFilters move_css_above_scripts

Cela a pour effet de compresser en bonne partie le HTML, mais également d’utiliser le webp sans module, de retirer les commentaires et espaces vides du code HTML, de disposer d’un lazy load toujours sans module… Faites cependant très attention au comportement de votre boutique, testez ces règles une par une et patientez avant de voir leur impact. La précipitation à ce niveau pourrait engendrer des coupures sur votre boutique, allez-y avec parcimonie et en compagnie d’un administrateur serveur chevronné.

Là où vous devrez faire extrêmement attention, c’est au fait que votre serveur tout comme votre boutique Prestashop devront être rudement configurés pour accueillir PageSpeed. Le temps de mise en place et de résultat pouvant énormément varier, il est préférable de tester cela sur une journée où vous avez véritablement le moins de trafic, afin de bien se prémunir d’une coupure. Les performances en retour sont effarantes selon la structure du Prestashop, voyez plutôt sur un Prestashop avec le thème Classic et un thème enfant :

Votre Prestashop est lent ? Réglez votre cache ! 9

Source image à la une

Imprimer Imprimer
Suivre Cyssoo:

Développeur - formateur

Je cherche à display errors le monde, vous auriez pas la doc' ? Follow me on Twitter !

3 Responses

  1. Valérie
    | Répondre

    Bonjour,
    vos informations m’ont permis de contrôler mon paramétrage, c’est très ludique.
    La seule chose qui coince, pour mon site, c’est qu’il est hébergé chez PlanetHoster, au Canada.
    Ayant changé de serveur, le tout chez eux, d’un VPS à un HybridCloud, je viens de m’apercevoir avec gtmetrix :
    Report generated:
    Sat, May 26, 2018, 8:54 AM -0700
    Test Server Region:
    Vancouver, Canada
    Que le serveur de mon site était au Canada. Je sais que PlanetHoster ont des serveurs à la fois en France et au Canada.
    Mais ce serait mieux, à priori, qu’il soit en France pour mon site https://souriredessaveurs.com, puisque mon activité est en France même si j’expédie dans le Monde entier ?
    Merci de votre réponse.
    Cordialement

  2. Valérie
    | Répondre

    Bonjour, voici la réponse de PlanetHoster :
    Merci pour votre demande d’information sur votre serveur qui se trouve bien en France pour être exacte à Paris.
    http://whois.domaintools.com/xxx.xx.xxx.xxx–&gt; IP Location: France Groupe Barizco Inc.
    Se qu’il faut cependant comprendre c’est que l’outil GTMetrix procède à un test par défaut depuis Vancouver et non le point le plus près de votre serveur.
    Il faut de plus avoir un compte chez eux afin de pouvoir changer le point de localisation du serveur qui va faire le test, pour information ceux-ci n’ont pas d’infrastructure en France, il faudra donc choisir Londre qui est le point le plus près de votre serveur.
    Donc, à priori, mon site est bien hébergé en France.
    Merci

    • Cyril CHALAMON
      | Répondre

      Bonjour Valérie,
      En fait le test de Gtmetrix est effectué depuis un serveur à Vancouver par défaut, comme le précise votre hébergeur. Il y a ensuite des optimisations à faire sur le thème afin d’améliorer les performances du site, comme la minification, etc. Il est en effet mieux que le serveur soit basé en France si vous vendez de base en France

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.