Sur PrestaShop, la vitesse a un impact direct sur les ventes : chaque seconde de chargement en plus fait fuir une partie des visiteurs avant même qu’ils n’aient vu le catalogue, et Google en tient compte dans le classement. Voici les erreurs que je retrouve le plus souvent en intervenant sur des boutiques existantes, dans l’ordre où je les vérifie, avec la façon de les corriger.
D’abord, mesurer
Avant de toucher à quoi que ce soit, il faut savoir où le temps est perdu. Deux mesures suffisent pour commencer :
- Le temps de réponse du serveur (TTFB) : le temps que met le serveur à renvoyer la page. Au-delà d’environ une demi-seconde sur une page catégorie, le problème est côté serveur (modules, base de données, hébergement), pas côté images.
- Le rapport PageSpeed Insights d’une fiche produit et d’une page catégorie, sur mobile : il montre le poids des images, des scripts et des polices.
Sur une copie de la boutique (jamais en production), le mode profilage de PrestaShop détaille le temps passé par chaque module et chaque requête SQL. Il s’active dans config/defines.inc.php :
define('_PS_DEBUG_PROFILING_', true);
1. Le mode debug ou le cache désactivé en production
C’est l’erreur la plus simple à corriger et l’une des plus fréquentes, souvent après une migration ou une intervention technique. Dans Paramètres avancés > Performances, vérifiez que :
- le mode debug est désactivé ;
- la compilation des templates Smarty est réglée sur Ne jamais recompiler les fichiers templates (ou au minimum Recompiler si les fichiers ont été mis à jour), et jamais sur Forcer la compilation ;
- le cache Smarty est activé ;
- la réduction et le regroupement des CSS et du JavaScript (CCC) sont activés, puis testés page par page : certains modules mal écrits ne le supportent pas.
2. Trop de modules « au cas où »
Chaque module greffé sur les points d’affichage (hooks) du thème ajoute du code exécuté à chaque chargement de page, même si sa fonctionnalité ne sert presque jamais. Les plus coûteux sont ceux qui s’accrochent à l’en-tête ou au pied de page, car ils s’exécutent sur toutes les pages.
- Listez les modules actifs et demandez-vous pour chacun s’il a servi ce mois-ci.
- Désinstallez réellement ceux qui ne servent pas : un module seulement désactivé laisse souvent ses tables et parfois ses tâches planifiées.
- Dans Apparence > Positions, vérifiez ce qui est greffé sur
displayHeaderetdisplayFooter.
3. Un thème surchargé
Les thèmes premium embarquent des dizaines d’options pensées pour convenir à tout le monde : sliders, animations, carrousels, plusieurs polices, parfois plusieurs bibliothèques JavaScript qui font la même chose. Désactiver ce qui n’est pas utilisé sur votre boutique allège sensiblement chaque page. Si le thème a été modifié directement, sans thème enfant, chaque mise à jour devient risquée : c’est souvent le moment de remettre les modifications au propre.
4. Des images produit trop lourdes
Un catalogue avec des centaines de fiches et des photos envoyées telles quelles par les fournisseurs (souvent plusieurs mégaoctets chacune) alourdit chaque page catégorie. Trois actions :
- redimensionner et compresser les images à l’import, avant qu’elles n’arrivent dans le catalogue ;
- vérifier dans Apparence > Paramètres des images que les tailles générées correspondent à celles qu’affiche réellement le thème, puis régénérer les miniatures ;
- servir un format moderne comme le WebP : les versions récentes de PrestaShop savent le générer, sinon un module ou un CDN s’en charge.
5. Une base de données qui grossit sans que personne ne le voie
Certaines tables grossissent en silence : statistiques de connexion (ps_connections, ps_guest), pages introuvables (ps_pagenotfound), journaux (ps_log), paniers abandonnés. Après quelques années, elles peuvent peser plus lourd que le catalogue et ralentir le back-office comme le front. Pour repérer les plus grosses :
SELECT table_name, ROUND((data_length + index_length) / 1024 / 1024, 1) AS taille_mo
FROM information_schema.tables
WHERE table_schema = DATABASE()
ORDER BY taille_mo DESC
LIMIT 10;
Le nettoyage se fait avec prudence, après une sauvegarde vérifiée (voir la règle des sauvegardes que presque personne ne respecte), et en désactivant si besoin les modules de statistiques qui ne servent pas.
6. Un hébergement pensé pour un site vitrine
PrestaShop est plus gourmand qu’un site vitrine, surtout avec un catalogue conséquent. Points à vérifier avec l’hébergeur :
- une version de PHP récente et supportée par votre version de PrestaShop, avec OPcache activé ;
- assez de mémoire PHP pour le back-office et les imports ;
- un CDN comme Cloudflare pour les images et les fichiers statiques, qui soulage le serveur lors des pics de trafic.
La check-list
- Mesurer le temps de réponse serveur et le score mobile d’une fiche produit et d’une catégorie.
- Mode debug désactivé, cache Smarty et CCC activés.
- Modules inutilisés désinstallés, hooks d’en-tête et de pied de page vérifiés.
- Options inutiles du thème désactivées.
- Images redimensionnées, miniatures régénérées, format WebP.
- Tables de statistiques et de journaux surveillées et nettoyées après sauvegarde.
- PHP récent avec OPcache, CDN pour les fichiers statiques.
- Mesurer à nouveau, pour vérifier que chaque correction a eu un effet.
Pour aller plus loin : mon expertise : Développeur PrestaShop freelance · à lire aussi : Migrer sa boutique PrestaShop sans perdre son référencement
