Accueil > Base de connaissances > E. Optimisation et SEO > Comment optimiser Prestashop ?

Comment optimiser Prestashop ?


Pour avoir un site qui s'affiche rapidement, il faut réunir 3 conditions :
- un serveur dont les composants sont à la pointe de la technologie (traité dans cet article)
- une combinaison particulière de logiciels serveurs (notre savoir-faire)
- un site web optimisé un minimum, Prestashop est très rapide sur nos serveurs sous forme native, veillez à ce que les thèmes et modules personnalisés ne dégradent pas la performance...

Nous pouvons dire que nos serveurs sont également nativement optimisés pour Prestashop :
https://www.yoorshop.fr/fr/38/Hebergement-Prestashop-optimisé-France-Europe.html

Une fois votre développement fini, n'oubliez surtout pas de désactiver :
'Forcer la compilation à chaque appel' 


Pour Prestashop, les meilleures performances sont obtenues avec PHP 7 et 7.1
(OPcache est activé par défaut au niveau serveur avec les versions PHP compatible, voir extensions PHP).
Depuis le 01/09/2016, PHP 7 et 7.1 sont maintenant considérés stable (prestashop n'a pas encore officiellement reconnu la pleine compatibilité, à tester selon les sites, et voir si thèmes/plugins ne seraient pas compatible), et peuvent apporter un gain supplémentaire non négligeable, testez, et voyez la vitesse, les problèmes éventuels...
CMS Prestashop

Section Performances de l'admin Prestashop :
Type cache en haut : 'Système de fichiers' est très performant dans les dernières versions prestashop, ou 'MySQL' (le gain dépendra de votre site, vous devrez tester)
Laissez activer si possible : désactiver toutes les sur-charges
CCC :Il est normalement recommandé de tout laisser activé, et désactivez ceux qui posent problème comme /ex : 'réduction code html', et 'move javascript to the end'.
Désactivez au préalable dans l'admin prestashop côté 'Performances', tout en bas de la page tous les cache actifs (aucun de ces caches n'est performant)

A connaître, tester :
https://dh42.com/free-prestashop-modules/prestashop-opcache-manger-module/
Permet seulement de visualiser l'éffet opcache
https://jpresta.com/fr/home/1-page-cache.html 
Permet d'optimiser sur mesure....
Exemple de site web utilisant les 2 chez YOORshop :
https://www.ecravate.com

Articles à lire :

http://www.prestashop.com/blog/fr/votre-boutique-prestashop-2-fois-plus-rapide-avec-zend-opcache
http://blog.g-design.net/post/114347507855/limportance-de-la-vitesse-de-chargement-dun-site
http://www.darwin-agency.com/temps-de-chargement-site

http://www.yakaferci.com/vitesse-chargement-site


Nous recommandons pour faire des tests d'optimisation :
 

Les plus importants sont le 'First byte time', le speed index et surtout le 'Start Render', ces 2 derniers dépendent à 90% de votre site...

Très bon pour améliorer :
https://www.dareboost.com

(Sécurité, il ne voit pas nos protections XSS, X-frame:)

1. Prestashop est livré avec une bonne quantité de modules activés, et dont vous n'utiliserez que 40% en moyenne...

Il faudra donc désactiver un par un ceux que vous n'utiliserez pas, une fois que vous avez installé votre thème seulement (car ca rajoute des modules).
Cliquez sur Oui pour : 'Désactiver tout les surcharges', dans la section Performances. Ceci peu tne pas convenir à tous les sites en raison de modules/thèmes spécifiques.


La clé pour réussir ce début d'optimisation est non seulement de désactiver/désinstaller les modules, mais surtout d'enlever le hook de ces modules dans hook_header, en plus de celui ou ils sont censés s'afficher....

Un exemple d'un site bien optimisé :

Optimisation Prestashop

Pourquoi ?

Le First byte time n'a pas seulement une relation avec la réponse serveur, il est impacté aussi par la lourdeur du CMS prestashop, du thème avec ces éléments lourds en page d'accueil en partie, et bien sûr le plus pesant les modules !
Le 'Start render' est très important (à partir de quand sont affichés des éléments).
Lire :
https://www.yoorshop.fr/announcements/876/Optimisation-PageSpeed.html 

N'oubliez pas que chaque nouveau visiteur n'arrive pas forcément sur la page d'accueil, et en second, que les pages suivantes qu'il visitera seront vus bien plus rapidement que la première car il y a le cache serveur, le cache du navigateur client qui s'est mis en place au premier chargement quel que soit la page....

D'autre part, ces sites de tests ne détectent que la compression 'Deflate' de Apache, alors que les plus performants sont gzip et Brotli que nous utilisons par défaut pour tous nos clients, gzip pour le http, et brotli pour le https.

Etudiez aussi les résultats du 'waterfall', mais aussi activez dans prestashop le 'debug profiling' pour plus de détails !
Il est absoluement normal de voir un score N/A ou D pour la compression images, cela dépend de vos images, et la compression doit être faite par vous en amont, et non le serveur.

Enfin, le poids d'une page, exceptée la page accueil, ne doit pas dépasser 2MB...

2. Egalement, les modules statistiques internes ralentissent beaucoup Prestashop, mieux vaux utiliser simplement le module google analytics....ou statcounter

3. Avoir un bon hébergeur comme YOORshop, nos serveurs sont puissants et performants (SSD + serveurs Nginx et litespeed + http2) et sont paramétrés avec des optimiseurs diverses qui contribuent naturellement à une bonne performance. Le processeur alloué à votre compte joue aussi un rôle important (le prix de nos offres est proportionnel au processeur)

4. Vérifiez la bonne éxécution des Javascript et des divers modules (catégories, sliders), et à la fin de votre page (activez dans Performances 'Exécuter Js à la fin').  Nous avons déjà vu que la fonction ne marche pas correctement avec certains modules, testez voir des différences en les désactivant, et vérifiez le code donc si nécessaire... ou le 'waterfall' du test en ligne : http://www.webpagetest.org/  

5. 'Téléchargement parallèle' : ce n'est plus utile avec Http2
Ne vous fatiguez pas à mettre ceci en place si votre site à moins de 150 requêtes, il n'y aura aucun gain.
Afin de contourner les limites des navigateurs qui ne peuvent charger que 8 éléments en meme temps :
Créez des sous-domaines pour les JS/CSS/Images, exemple :
js1.mystore.com et mettez-y le contenu de theme/mytheme/js/
js2.mystore.com et mettez-y le contenu de /js/
css1.mystore.com et mettez-y le contenu de /css/
css2.mystore.com et mettez-y le contenu de theme/mytheme/css/

Adaptez les liens de ces ressources externalisées dans votre Prestashop.

6. Pensez aussi à tester/activer Cloudflare gratuit depuis votre cPanel et évaluer si il y a un gain pour votre site (vous devez avoir au préalable optimiser votre si il ne l'est pas, c'est incontournable avec ou sans cloudflare !), normalement intéréssant pour les sites avec beaucoup de contenus, et très utile uniquement si votre marché cîble se situe sur des continents lointains....
(Les tests doivent durer au moins 3 jours le temps que Cloudflare ait mis en cache suffisamment de requêtes)
Pour un site SSL et meilleure performance aussi, le moins onéreux est : https://www.keycdn.com/?a=31796 

7. Périodiquement, purgez votre base de données !
https://www.yoorshop.fr/knowledgebase/1295/Optimisation-bases-de-donnees.html 


8. Soyez en 50-100% SSL, et on vous donnera le mode suprême speed http2 ! :
https://www.yoorshop.fr/fr/309/Hebergement-web-en-France-SSD-http2-Belgique-Europe.html
https://www.yoorshop.fr/knowledgebase/1551/Comment-installer-un-certificat-SSL.html

9. Pour la compression, c'est déjà activé par défaut au niveau serveur, donc rien à faire de votre côté
Gzip pour le http
http://checkgzipcompression.com 
Brotli pour le https :
https://tools.keycdn.com/brotli-test 

10. Optimisation cache navigateur
https://www.yoorshop.fr/index.php?rp=/announcements/968/Optimisation--cache-navigateur.html

Cette réponse était-elle pertinente?

 Imprimer cet article

Consultez aussi

Mon site est visible partout, en permanence, et Cloudflare ?

La stabilité des serveurs ?C'est notre responsabilité d'hébergeur de s'assurer que votre site...

Comment installer un certificat SSL

Avoir un site web en SSL à 100% est hautement recommandé :- un cadenas sans warning dans...

Optimisation bases de données

Depuis le 23 mars 2017, nous utilisons MariaDB qui est une très bonne évloution de MySQL, et ne...

Comment démarrer le référencement d'un site

C'est un travail sans fin, et qui doit avoir une base solide, un début... la qualité prime...

Optimisation avec PageSpeed

PageSpeed est activé par défaut  au niveau minimum avec le plugin XtendWeb Nginx en bas de votre...