[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"theme-db":3,"$f8FmkRQa-Sbpgl-qTMkwkvWj3hSpcF9wLa7gazNiNjQY":22,"$fKnz2vuX4bZz1LbUTiuFsvSZ3e07l5_5fqNYp4Tzdhi8":91,"megamenu":172,"$fVgDHkl2TVnjPDdEV7ddddXV0SxHJlRyGQ5diSXJUz0A":228,"header-db":242,"footer-db":255},{"theme":4},{"colors":5,"typography":13,"ui":17,"defaultColorMode":21},{"primary":6,"secondary":7,"background":8,"foreground":9,"muted":10,"headerBg":11,"footerBg":12,"topBarBg":9,"topBarText":11},"#4F46E5","#0D9488","#F9FAFB","#111827","#6B7280","#ffffff","#020617",{"fontFamily":14,"fontUrl":15,"baseFontSize":16},"Inter, system-ui, sans-serif","https:\u002F\u002Ffonts.googleapis.com\u002Fcss2?family=Inter:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;0,800;0,900;1,400;1,700&display=swap","16px",{"borderRadius":18,"contentWidth":19,"shadow":20},"lg","7xl",true,"light",{"title":23,"slug":24,"metaDescription":25,"category":26,"tags":27,"difficulty":34,"psVersions":35,"content":39,"faq":40,"tldr":86,"readingTime":87,"generatedAt":88,"publishDate":88,"relatedArticles":89,"sourceCategory":90},"Site PrestaShop lent : diagnostic complet et optimisations serveur","site-prestashop-lent-diagnostic-optimisations-serveur","Votre boutique PrestaShop est lente malgré un bon hébergement ? Diagnostic étape par étape : requêtes SQL, configuration PHP, VPS, media servers et optimisations avancées.","performance",[26,28,29,30,31,32,33],"hébergement","VPS","optimisation","PHP","media server","debug profiling","intermediaire",[36,37,38],"1.6","1.7","8.x","\u003Ch2>Pourquoi votre PrestaShop est lent malgré un hébergement performant\u003C\u002Fh2>\n\u003Cp>Vous avez investi dans un hébergement que vous estimez correct, et pourtant votre boutique PrestaShop met plusieurs secondes à charger chaque page. C'est un scénario frustrant mais extrêmement courant. La puissance brute du serveur ne fait pas tout : une requête SQL mal construite par un module tiers peut annihiler les performances d'un serveur haut de gamme.\u003C\u002Fp>\n\u003Cp>Avant de migrer vers un hébergement plus cher, il faut poser un diagnostic méthodique. Dans cet article, je détaille les causes réelles de lenteur et les optimisations concrètes qui transforment un PrestaShop poussif en boutique réactive.\u003C\u002Fp>\n\u003Ch2>Étape 1 : mesurer avant d'agir\u003C\u002Fh2>\n\u003Cp>La première erreur est de deviner la cause. Utilisez systématiquement des outils de mesure pour objectiver le problème :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Google PageSpeed Insights** : score mobile et desktop, avec les métriques Core Web Vitals (LCP, FID, CLS)\u003C\u002Fli>\n\u003Cli>**GTmetrix** : waterfall détaillé qui montre exactement quelles ressources bloquent le rendu\u003C\u002Fli>\n\u003Cli>**WebPageTest** : test depuis différentes localisations géographiques, avec filmstrip visuel\u003C\u002Fli>\n\u003Cli>**KeyCDN Performance Test** : temps de réponse serveur (TTFB) depuis plusieurs points de présence\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Point critique :\u003C\u002Fstrong> ne testez pas uniquement la page d'accueil. Les pages catégorie et produit sont souvent les plus lentes car elles exécutent davantage de requêtes SQL (filtres, déclinaisons, modules de cross-selling). Testez aussi les pages CMS si vous en avez beaucoup.\u003C\u002Fp>\n\u003Ch3>Interpréter le TTFB\u003C\u002Fh3>\n\u003Cp>Le \u003Cstrong>Time To First Byte\u003C\u002Fstrong> (TTFB) est votre premier indicateur. Il mesure le temps entre la requête du navigateur et le premier octet de la réponse serveur :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**\u003C 200 ms** : excellent\u003C\u002Fli>\n\u003Cli>**200-500 ms** : acceptable\u003C\u002Fli>\n\u003Cli>**> 500 ms** : problème côté serveur (PHP, SQL ou configuration)\u003C\u002Fli>\n\u003Cli>**> 1 s** : problème critique, probablement une requête SQL bloquante\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Si votre TTFB est élevé, le problème est côté serveur (pas côté front-end). Inutile d'optimiser les images ou le CSS tant que le serveur met une seconde à répondre.\u003C\u002Fp>\n\u003Ch2>Étape 2 : identifier les requêtes SQL problématiques avec le debug profiling\u003C\u002Fh2>\n\u003Cp>La cause numéro un de lenteur sur PrestaShop est une requête SQL mal optimisée, généralement introduite par un module tiers. Le mode \u003Cstrong>debug profiling\u003C\u002Fstrong> intégré à PrestaShop permet de traquer ces requêtes.\u003C\u002Fp>\n\u003Ch3>Activer le profiling sur PrestaShop 1.6 \u002F 1.7\u003C\u002Fh3>\n\u003Cp>Éditez le fichier \u003Ccode>config\u002Fdefines.inc.php\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-php\">\n\u002F* Debug only *\u002F\ndefine('_PS_MODE_DEV_', true);\ndefine('_PS_DEBUG_PROFILING_', true);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Sur PrestaShop 8.x\u003C\u002Fh3>\n\u003Cp>Le profiling passe désormais par le \u003Cstrong>Symfony Profiler\u003C\u002Fstrong> intégré. Activez le mode debug dans \u003Ccode>.env\u003C\u002Fcode> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-bash\">\nAPP_DEBUG=1\nAPP_ENV=dev\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Puis accédez à la barre de debug Symfony en bas de page. L'onglet \u003Cstrong>Doctrine\u003C\u002Fstrong> affiche toutes les requêtes SQL avec leur temps d'exécution.\u003C\u002Fp>\n\u003Ch3>Que chercher dans le profiling\u003C\u002Fh3>\n\u003Cp>Une fois le profiling activé, rechargez la page lente et examinez :\u003C\u002Fp>\n\u003Col>\n\u003Cli>**Les requêtes > 100 ms** : ce sont vos goulots d'étranglement\u003C\u002Fli>\n\u003Cli>**Les requêtes dupliquées** : un module qui exécute la même requête en boucle\u003C\u002Fli>\n\u003Cli>**Le nombre total de requêtes** : au-delà de 200 requêtes par page, il y a un problème\u003C\u002Fli>\n\u003Cli>**Les requêtes sans index** : repérables par un `EXPLAIN` montrant un `type: ALL` (full table scan)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cpre>\u003Ccode class=\"language-sql\">\n-- Identifier les requêtes lentes dans le slow query log MySQL\u002FMariaDB\nSET GLOBAL slow_query_log = 'ON';\nSET GLOBAL long_query_time = 0.5;\nSET GLOBAL slow_query_log_file = '\u002Fvar\u002Flog\u002Fmysql\u002Fslow-queries.log';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Astuce :\u003C\u002Fstrong> désactivez les modules un par un et mesurez l'impact sur le TTFB. C'est la méthode la plus fiable pour isoler un module problématique.\u003C\u002Fp>\n\u003Ch2>Étape 3 : choisir le bon type d'hébergement\u003C\u002Fh2>\n\u003Cp>Un hébergement mutualisé impose des limites strictes sur la configuration PHP, et c'est souvent là que le bât blesse.\u003C\u002Fp>\n\u003Ch3>Pourquoi le mutualisé bride PrestaShop\u003C\u002Fh3>\n\u003Cp>Sur un hébergement mutualisé classique (type 1&1\u002FIONOS, OVH Perso), vous subissez :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**`max_execution_time`** bridé à 30 secondes (parfois moins)\u003C\u002Fli>\n\u003Cli>**`memory_limit`** plafonné à 128 Mo (PrestaShop en a besoin de 256 Mo minimum)\u003C\u002Fli>\n\u003Cli>**Pas d'accès à la configuration OPcache**\u003C\u002Fli>\n\u003Cli>**Pas de choix de version PHP** ou version imposée\u003C\u002Fli>\n\u003Cli>**Ressources CPU partagées** avec des centaines d'autres sites\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>La configuration VPS recommandée\u003C\u002Fh3>\n\u003Cp>Le minimum viable pour un PrestaShop performant est un \u003Cstrong>VPS SSD\u003C\u002Fstrong>. Voici la stack que je recommande en 2024-2026 :\u003C\u002Fp>\n\u003Ctr>\u003Cth>Composant\u003C\u002Fth>\u003Cth>Recommandation\u003C\u002Fth>\u003Cth>Pourquoi\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>OS\u003C\u002Fth>\u003Cth>Ubuntu 22.04 LTS \u002F Debian 12\u003C\u002Fth>\u003Cth>Stabilité, support long terme\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Serveur HTTP\u003C\u002Fth>\u003Cth>Nginx (ou Apache + mod_pagespeed)\u003C\u002Fth>\u003Cth>Nginx consomme moins de RAM\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>PHP\u003C\u002Fth>\u003Cth>8.1 ou 8.2 (avec OPcache + APCu)\u003C\u002Fth>\u003Cth>Requis pour PrestaShop 8.x\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Base de données\u003C\u002Fth>\u003Cth>MariaDB 10.11 ou Percona Server\u003C\u002Fth>\u003Cth>Percona offre de meilleures performances sur les jointures complexes\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>RAM\u003C\u002Fth>\u003Cth>4 Go minimum\u003C\u002Fth>\u003Cth>2 Go pour PHP-FPM, 1 Go pour MariaDB, 1 Go pour l'OS\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ctr>\u003Cth>Stockage\u003C\u002Fth>\u003Cth>SSD NVMe\u003C\u002Fth>\u003Cth>Les I\u002FO disque sont critiques pour les requêtes SQL\u003C\u002Fth>\u003C\u002Ftr>\n\u003Ch3>Configuration PHP optimale\u003C\u002Fh3>\n\u003Cp>Créez ou éditez votre fichier de configuration PHP-FPM :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-ini\">\n; \u002Fetc\u002Fphp\u002F8.2\u002Ffpm\u002Fconf.d\u002F99-prestashop.ini\n\nmax_execution_time = 300\nmemory_limit = 512M\nupload_max_filesize = 20M\npost_max_size = 20M\n\n; OPcache — indispensable\nopcache.enable = 1\nopcache.memory_consumption = 256\nopcache.max_accelerated_files = 20000\nopcache.revalidate_freq = 60\nopcache.validate_timestamps = 0  ; mettre à 1 en dev\n\n; Realpath cache\nrealpath_cache_size = 4096K\nrealpath_cache_ttl = 600\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>\u003Cstrong>Point important :\u003C\u002Fstrong> sur PrestaShop 8.x, la version PHP minimale est 7.2.5 mais \u003Cstrong>PHP 8.1+ est vivement recommandé\u003C\u002Fstrong> pour bénéficier des gains de performance natifs du moteur (JIT, optimisations internes).\u003C\u002Fp>\n\u003Ch2>Étape 4 : paralléliser le chargement des assets avec les media servers\u003C\u002Fh2>\n\u003Cp>PrestaShop intègre nativement une fonctionnalité méconnue mais puissante : les \u003Cstrong>media servers\u003C\u002Fstrong>. Le principe est simple mais l'impact est significatif.\u003C\u002Fp>\n\u003Ch3>Comment ça fonctionne\u003C\u002Fh3>\n\u003Cp>Les navigateurs limitent le nombre de connexions simultanées par domaine (typiquement 6 par domaine en HTTP\u002F1.1). En répartissant vos fichiers statiques (images, CSS, JS) sur plusieurs sous-domaines, vous contournez cette limite.\u003C\u002Fp>\n\u003Ch3>Configuration dans PrestaShop\u003C\u002Fh3>\n\u003Cp>Rendez-vous dans \u003Cstrong>Paramètres avancés > Performances > Serveurs de média\u003C\u002Fstrong> :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-\">\nServeur de média 1 : media1.votredomaine.com\nServeur de média 2 : media2.votredomaine.com\nServeur de média 3 : media3.votredomaine.com\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Configuration DNS et serveur\u003C\u002Fh3>\n\u003Cp>Créez des enregistrements CNAME pointant vers votre domaine principal :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-\">\nmedia1.votredomaine.com  CNAME  votredomaine.com\nmedia2.votredomaine.com  CNAME  votredomaine.com\nmedia3.votredomaine.com  CNAME  votredomaine.com\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Puis configurez votre serveur web pour répondre sur ces sous-domaines.\u003C\u002Fp>\n\u003Ch3>Les deux avantages concrets\u003C\u002Fh3>\n\u003Col>\n\u003Cli>**Parallélisation des requêtes** : le navigateur peut télécharger 18 fichiers simultanément (6 × 3 domaines) au lieu de 6\u003C\u002Fli>\n\u003Cli>**Domaines sans cookie** : les sous-domaines de média ne transmettent pas les cookies de session, ce qui réduit la taille de chaque requête HTTP\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note pour PrestaShop 8.x et HTTP\u002F2 :\u003C\u002Fstrong> avec HTTP\u002F2, le multiplexage rend les media servers moins nécessaires pour la parallélisation. Cependant, l'avantage \"sans cookie\" reste pertinent. Si votre serveur est en HTTP\u002F2, un seul sous-domaine média suffit.\u003C\u002Fp>\n\u003Ch2>Étape 5 : aller plus loin avec Nginx pour les assets statiques\u003C\u002Fh2>\n\u003Cp>Pour les boutiques à fort trafic, une architecture avancée consiste à séparer le contenu statique du contenu dynamique :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Serveur principal (Apache ou PHP-FPM)** : traite les pages dynamiques\u003C\u002Fli>\n\u003Cli>**Serveur secondaire (Nginx pur)** : sert les images, CSS, JS et fonts\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Nginx excelle dans la distribution de fichiers statiques grâce à son architecture événementielle. Un simple VPS Nginx peut servir des milliers de fichiers statiques par seconde avec une empreinte mémoire minimale.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-nginx\">\n# Configuration Nginx pour servir les assets statiques\nserver {\n    listen 80;\n    server_name media1.votredomaine.com;\n    root \u002Fvar\u002Fwww\u002Fprestashop;\n\n    # Cache navigateur agressif pour les assets\n    location ~* \\.(jpg|jpeg|png|webp|gif|ico|css|js|woff2|woff|ttf|svg)$ {\n        expires 1y;\n        add_header Cache-Control \"public, immutable\";\n        add_header X-Content-Type-Options nosniff;\n        access_log off;\n    }\n\n    # Compression Gzip\n    gzip on;\n    gzip_types text\u002Fcss application\u002Fjavascript image\u002Fsvg+xml;\n    gzip_min_length 1000;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Étape 6 : optimisations PrestaShop côté back-office\u003C\u002Fh2>\n\u003Cp>Dans \u003Cstrong>Paramètres avancés > Performances\u003C\u002Fstrong>, activez :\u003C\u002Fp>\n\u003Cul>\n\u003Cli>**Cache Smarty** : \"Oui\" avec compilation en cas de modification\u003C\u002Fli>\n\u003Cli>**Concaténation CCC** : regrouper les fichiers CSS et JS\u003C\u002Fli>\n\u003Cli>**Cache de l'application** : activé (système de fichiers ou Redis si disponible)\u003C\u002Fli>\n\u003Cli>**Désactiver les modules non utilisés** : chaque module actif ajoute des hooks et potentiellement des requêtes SQL\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuration du cache avec Redis (PrestaShop 8.x)\u003C\u002Fh3>\n\u003Cp>Sur PrestaShop 8.x, vous pouvez utiliser Redis comme backend de cache Symfony :\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-yaml\">\n# app\u002Fconfig\u002Fparameters.php ou .env\nREDIS_URL=redis:\u002F\u002Flocalhost:6379\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>Checklist de performance PrestaShop\u003C\u002Fh2>\n\u003Cp>Récapitulatif des actions à mener, par ordre de priorité :\u003C\u002Fp>\n\u003Col>\n\u003Cli>✅ Activer le profiling et identifier les requêtes SQL lentes\u003C\u002Fli>\n\u003Cli>✅ Migrer sur un VPS SSD si vous êtes en mutualisé\u003C\u002Fli>\n\u003Cli>✅ Configurer PHP correctement (OPcache, memory_limit, max_execution_time)\u003C\u002Fli>\n\u003Cli>✅ Activer la concaténation CSS\u002FJS dans le back-office\u003C\u002Fli>\n\u003Cli>✅ Configurer les media servers (au moins un sous-domaine)\u003C\u002Fli>\n\u003Cli>✅ Optimiser les images (format WebP, compression)\u003C\u002Fli>\n\u003Cli>✅ Mettre en place un cache applicatif (Redis ou Memcached)\u003C\u002Fli>\n\u003Cli>✅ Désactiver les modules inutiles\u003C\u002Fli>\n\u003Cli>✅ Passer en HTTP\u002F2 avec un certificat SSL\u003C\u002Fli>\n\u003Cli>✅ Surveiller régulièrement avec GTmetrix ou PageSpeed Insights\u003C\u002Fli>\n\u003C\u002Ful>",[41,44,47,50,53,56,59,62,65,68,71,74,77,80,83],{"q":42,"a":43},"Pourquoi mon PrestaShop est lent alors que mon hébergeur annonce de bonnes performances ?","Les performances annoncées par les hébergeurs (CPU, RAM, bande passante) ne reflètent pas la réalité pour PrestaShop. La lenteur provient le plus souvent de requêtes SQL non optimisées générées par des modules tiers, d'une configuration PHP bridée (max_execution_time, memory_limit) ou de l'absence d'OPcache. Activez le mode debug profiling pour identifier précisément les goulots d'étranglement avant de changer d'hébergement.",{"q":45,"a":46},"Faut-il un VPS ou un hébergement mutualisé pour PrestaShop ?","Un VPS est fortement recommandé dès que votre catalogue dépasse une centaine de produits ou que votre trafic est régulier. L'hébergement mutualisé bride la configuration PHP, limite les ressources CPU et ne permet pas d'installer des outils comme Redis ou de configurer OPcache. Un VPS SSD à partir de 10-15 €\u002Fmois (OVH, Scaleway, Hetzner) offre un contrôle total et des performances nettement supérieures.",{"q":48,"a":49},"À quoi servent les media servers dans PrestaShop ?","Les media servers permettent de distribuer les fichiers statiques (images, CSS, JS) via des sous-domaines dédiés. Cela offre deux avantages : la parallélisation des téléchargements (le navigateur ouvre plus de connexions simultanées) et la suppression des cookies sur ces requêtes (réduction de la bande passante). En HTTP\u002F2, la parallélisation est moins critique grâce au multiplexage, mais l'avantage sans cookie reste pertinent.",{"q":51,"a":52},"Comment activer le mode debug profiling sur PrestaShop 8.x ?","Sur PrestaShop 8.x, passez en mode debug en modifiant le fichier .env à la racine : APP_DEBUG=1 et APP_ENV=dev. Le Symfony Profiler apparaît alors en bas de page avec l'onglet Doctrine qui liste toutes les requêtes SQL, leur temps d'exécution et leur nombre. Recherchez les requêtes supérieures à 100 ms et les requêtes dupliquées. N'oubliez pas de repasser en APP_DEBUG=0 après le diagnostic.",{"q":54,"a":55},"Quelle version de PHP choisir pour optimiser les performances de PrestaShop ?","Pour PrestaShop 8.x, utilisez PHP 8.1 ou 8.2 qui sont les versions officiellement supportées et les plus performantes. PHP 8.x apporte des gains de 15 à 25 % par rapport à PHP 7.4 grâce aux optimisations du moteur Zend et au compilateur JIT. Activez impérativement OPcache avec au moins 256 Mo de mémoire dédiée et configurez le realpath_cache pour réduire les appels système.",{"q":57,"a":58},"Comment identifier quel module PrestaShop ralentit mon site ?","La méthode la plus fiable est la désactivation séquentielle : mesurez le TTFB de référence, puis désactivez les modules un par un en mesurant l'impact à chaque fois. Commencez par les modules de statistiques, de filtres à facettes et de cross-selling qui sont les plus gourmands en requêtes SQL. Le profiling Symfony (PrestaShop 8.x) ou le mode _PS_DEBUG_PROFILING_ (1.6\u002F1.7) permet aussi de voir quelles requêtes sont exécutées par quel module.",{"q":60,"a":61},"Nginx ou Apache pour héberger PrestaShop ?","Nginx est plus performant pour servir les fichiers statiques et consomme moins de mémoire sous forte charge. Cependant, PrestaShop utilise des fichiers .htaccess qui ne fonctionnent qu'avec Apache. La solution idéale est un reverse proxy Nginx devant Apache (ou PHP-FPM directement) : Nginx sert les assets statiques et transmet les requêtes dynamiques à PHP-FPM. Pour les configurations simples, Apache avec mod_pagespeed reste un bon choix.",{"q":63,"a":64},"Le passage en HTTP\u002F2 améliore-t-il les performances de PrestaShop ?","Oui, HTTP\u002F2 apporte le multiplexage (plusieurs fichiers sur une seule connexion), la compression des en-têtes et le server push. Cela réduit la latence et rend les media servers moins nécessaires pour la parallélisation. HTTP\u002F2 nécessite un certificat SSL (Let's Encrypt est gratuit) et un serveur compatible (Nginx 1.9.5+ ou Apache 2.4.17+). L'impact est particulièrement visible sur les pages avec beaucoup d'images produit.",{"q":66,"a":67},"Redis ou Memcached pour le cache PrestaShop ?","Redis est le choix recommandé pour PrestaShop. Il supporte la persistance des données (utile en cas de redémarrage), les structures de données avancées et peut servir à la fois de cache applicatif et de stockage de sessions. Memcached est plus simple mais moins polyvalent. Sur PrestaShop 8.x, Redis s'intègre nativement via le composant Cache de Symfony.",{"q":69,"a":70},"Comment savoir si la lenteur vient du serveur ou du front-end ?","Mesurez le TTFB (Time To First Byte) avec les outils de développement du navigateur (onglet Réseau). Un TTFB supérieur à 500 ms indique un problème côté serveur (PHP, SQL, configuration). Si le TTFB est bon mais que la page met du temps à s'afficher, le problème est côté front-end (images non optimisées, CSS\u002FJS bloquants, trop de requêtes HTTP). GTmetrix fournit un waterfall qui visualise clairement la répartition du temps de chargement.",{"q":72,"a":73},"Percona Server est-il vraiment meilleur que MySQL pour PrestaShop ?","Percona Server est un fork de MySQL optimisé pour les performances, avec un meilleur gestionnaire de buffer pool et des optimisations sur les requêtes complexes avec jointures — exactement le type de requêtes que PrestaShop génère massivement. Les gains sont de l'ordre de 10 à 20 % sur les pages catalogue. MariaDB 10.11 est une alternative équivalente et souvent plus simple à installer sur les distributions Linux modernes.",{"q":75,"a":76},"La concaténation CSS\u002FJS de PrestaShop suffit-elle pour les performances front-end ?","La concaténation CCC intégrée à PrestaShop réduit le nombre de requêtes HTTP mais présente des limites : elle ne minifie pas toujours correctement le code, peut provoquer des conflits entre modules et ne gère pas le chargement asynchrone. Pour aller plus loin, envisagez un outil comme Webpack ou Vite pour le bundling, et activez la compression Gzip\u002FBrotli côté serveur. Sur PrestaShop 8.x, le système d'assets Symfony offre plus de contrôle.",{"q":78,"a":79},"Comment optimiser les images produit pour accélérer PrestaShop ?","Régénérez les miniatures via le back-office (Préférences > Images) pour vous assurer que chaque format est à la bonne taille. Convertissez vos images en WebP (gain de 25 à 35 % par rapport au JPEG) avec un module dédié ou un script de conversion. Activez le lazy loading natif (attribut loading='lazy') pour ne charger que les images visibles. Enfin, utilisez un CDN image (Cloudinary, imgix) pour les catalogues volumineux.",{"q":81,"a":82},"Quels sont les modules PrestaShop les plus gourmands en performances ?","Les modules les plus consommateurs sont généralement : les modules de statistiques et tableaux de bord (requêtes SQL lourdes à chaque chargement admin), les filtres à facettes mal configurés (requêtes sur toutes les combinaisons d'attributs), les modules de cross-selling et recommandations (calculs en temps réel), les modules de pop-up et marketing (scripts JS externes), et les modules de sauvegarde automatique. Désactivez systématiquement tout module que vous n'utilisez pas activement.",{"q":84,"a":85},"Comment surveiller les performances de PrestaShop en continu ?","Mettez en place un monitoring avec des outils comme UptimeRobot (gratuit, vérifie la disponibilité), New Relic ou Blackfire (profiling PHP en production), et Google Search Console (suivi des Core Web Vitals). Configurez le slow query log de MariaDB\u002FMySQL pour capturer automatiquement les requêtes supérieures à 500 ms. Programmez un test GTmetrix hebdomadaire automatique pour détecter les régressions de performance.","Un site PrestaShop lent provient rarement du seul hébergement : requêtes SQL mal optimisées, configuration PHP bridée et absence de parallélisation des assets sont les trois causes principales. Un VPS SSD correctement configuré avec media servers résout 90 % des problèmes.",7,"2026-03-21T14:03:21.000Z",[],"Testez mon site ! :)",{"columns":92},[93,109,139,160],{"title":94,"links":95},"Plateforme",[96,100,103,106],{"label":97,"href":98,"external":99},"Offre Starter (2 500 €)","\u002Foffre-starter",false,{"label":101,"href":102,"external":99},"Devenir Ambassadeur","\u002Fambassadeur",{"label":104,"href":105,"external":99},"Modules PrestaShop","\u002Fmodules",{"label":107,"href":108,"external":20},"CodeMyShop.com","https:\u002F\u002Fcodemyshop.com",{"title":110,"links":111},"Le Synedre",[112,115,118,121,124,127,130,133,136],{"label":113,"href":114,"external":99},"L'histoire","\u002Fsynedre",{"label":116,"href":117,"external":99},"Constitution","\u002Fsynedre\u002Fconstitution",{"label":119,"href":120,"external":99},"L'équipe","\u002Fequipe",{"label":122,"href":123,"external":99},"Le réacteur en direct","\u002Freacteur",{"label":125,"href":126,"external":99},"Le Drill (entraînement)","\u002Fdrill",{"label":128,"href":129,"external":99},"Protocole de réunion","\u002Fsynedre\u002Freunion",{"label":131,"href":132,"external":99},"Les agents IA","\u002Fagents-ia",{"label":134,"href":135,"external":99},"La Conduite","\u002Fsynedre\u002Fconduite",{"label":137,"href":138,"external":99},"Charte plateforme","\u002Fsynedre\u002Fcharte",{"title":140,"links":141},"Ressources",[142,145,148,151,154,157],{"label":143,"href":144,"external":99},"Blog","\u002Fblog",{"label":146,"href":147,"external":99},"Academy","\u002Facademy",{"label":149,"href":150,"external":99},"Dictionnaire","\u002Fdictionnaire",{"label":152,"href":153,"external":99},"Expertise PrestaShop","\u002Fexpertise",{"label":155,"href":156,"external":99},"Flywheel","\u002Fflywheel",{"label":158,"href":159,"external":99},"Manifeste","\u002Fmanifeste",{"title":161,"links":162},"À propos",[163,166,169],{"label":164,"href":165,"external":99},"Alexandre Carette","\u002Fa-propos",{"label":167,"href":168,"external":99},"Dossier de presse","\u002Fpresse",{"label":170,"href":171,"external":99},"Contact","\u002Fcontact",{"items":173},[174,183,189,195,203,211,217,223],{"id":175,"type":176,"label":177,"href":153,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":180,"children":181,"psChildren":182},41,"link",{"fr":178},"Expertise",null,0,[],[],{"id":184,"type":176,"label":185,"href":144,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":186,"children":187,"psChildren":188},42,{"fr":143},1,[],[],{"id":190,"type":176,"label":191,"href":105,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":192,"children":193,"psChildren":194},43,{"fr":104},2,[],[],{"id":196,"type":176,"label":197,"href":199,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":200,"children":201,"psChildren":202},44,{"fr":198},"Outils IA","\u002Foutils-ia",3,[],[],{"id":204,"type":176,"label":205,"href":98,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":207,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":208,"children":209,"psChildren":210},45,{"fr":206},"Offre Starter ✨",{"highlight":20},4,[],[],{"id":212,"type":176,"label":213,"href":147,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":214,"children":215,"psChildren":216},46,{"fr":146},5,[],[],{"id":218,"type":176,"label":219,"href":165,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":220,"children":221,"psChildren":222},47,{"fr":161},6,[],[],{"id":224,"type":176,"label":225,"href":171,"icon":179,"description":179,"badge":179,"groupTitle":179,"style":179,"gridColumns":179,"cssClass":179,"psCategoryId":179,"showPsChildren":99,"position":87,"children":226,"psChildren":227},48,{"fr":170},[],[],{"academy":229,"blog":230,"expertise":241},[],[231,235,238],{"title":232,"url":233,"score":186,"type":234},"Docker Compose PrestaShop : configuration production prête à déployer","\u002Fblog\u002Fdevops\u002Fdocker\u002Fdocker-compose-prestashop-production","blog",{"title":236,"url":237,"score":186,"type":234},"PrestaShop headless avec Nuxt 3 : pourquoi séparer back et front","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-separation-front-back",{"title":239,"url":240,"score":186,"type":234},"PrestaShop headless : Nuxt 3, pas Next.js — le choix souverain","\u002Fblog\u002Fprestashop\u002Farchitecture\u002Fprestashop-headless-nuxt-nextjs-souverainete",[],{"header":243},{"logo":244,"topBar":249,"contactEmail":252,"features":253,"navBar":179},{"src":245,"alt":246,"text":164,"href":247,"class":248},"\u002Flogo-ac.svg","Alexandre Carette — Architecte E-commerce Souverain","\u002F","h-10 w-10",{"message":179,"showLanguages":99,"align":250,"languages":251},"left",[],"contact@alexandrecarette.fr",{"showSearch":99,"showWishlist":99,"showLogin":20,"showContact":99,"showCart":99,"stickyHeader":20,"headerLayout":254},"inline",{"footer":256},{"theme":257,"description":179,"hours":179,"logo":258,"contact":259,"social":260,"bottomBar":270},"dark",{"src":245,"href":247,"alt":164},{"email":179,"phone":179,"address":179,"cta":179},[261,264,267],{"platform":262,"href":263,"label":262},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Falexandre-carette\u002F",{"platform":265,"href":266,"label":265},"malt","https:\u002F\u002Fwww.malt.fr\u002Fprofile\u002Falexandrecarette",{"platform":268,"href":269,"label":268},"github","https:\u002F\u002Fgithub.com\u002Fprest4cafe",{"copyright":179}]