Vous voulez accélérer Magento 2 sur votre hébergement ? Une boutique en ligne lente vous coûte des clients et du chiffre d'affaires. Dans ce guide complet, nous partageons des techniques d'optimisation éprouvées qui réduisent drastiquement le temps de chargement de votre boutique en ligne Magento 2.

Magento 2 est une plateforme e-commerce puissante, mais la vitesse n'est pas son point fort. Sans optimisation, de nombreuses boutiques en ligne Magento se chargent en 4 à 8 secondes, alors que Google recommande de rester sous 2,5 secondes. Dans ce guide, nous vous montrons pas à pas comment accélérer Magento 2.

Pourquoi Magento 2 est-il lent ?

Magento 2 est lent car c'est une plateforme complexe qui effectue beaucoup de travail à chaque chargement de page. Il charge des centaines de fichiers PHP, exécute des dizaines de requêtes de base de données, calcule des règles de prix et génère dynamiquement la page HTML complète. Sans mise en cache ni optimisation, c'est une lourde tâche pour n'importe quel serveur.

Les principales causes d'une boutique en ligne Magento lente :

  • Mémoire serveur insuffisante (moins de 2 Go de RAM)
  • Mise en cache de pages complètes non activée
  • Trop d'extensions ou extensions mal codées
  • Images produits non optimisées
  • Version de PHP obsolète
  • Requêtes de base de données lentes à cause d'index manquants
  • Pas de CDN pour les fichiers statiques

Étape 1 : choisir le bon hébergement

L'hébergement est la base de vos performances. Si votre serveur manque de mémoire ou de puissance de calcul, aucune optimisation n'aidera. Pour Magento 2, nous recommandons au minimum un VPS avec ces caractéristiques :

  • CPU : au minimum 2 cœurs, de préférence 4
  • RAM : au minimum 4 Go, de préférence 8 Go
  • Stockage : SSD NVMe pour une vitesse d'E/S maximale
  • Serveur web : Nginx ou LiteSpeed (pas Apache)
  • PHP : version 8.2 avec OPcache activé

Chez Theory7, nos offres VPS fonctionnent sur du stockage NVMe avec un serveur web LiteSpeed. Consultez notre hébergement e-commerce pour connaître les options disponibles.

Étape 2 : activer la mise en cache de pages complètes

La mise en cache de pages complètes est le plus gros gain de performances que vous puissiez obtenir. Au lieu de régénérer chaque page, la page HTML complète est enregistrée et servie immédiatement lors de la visite suivante.

Cache de pages complètes intégré

Magento 2 dispose d'un cache de pages complètes intégré. Activez-le via Stores > Configuration > Advanced > System > Full Page Cache. Définissez le cache sur Built-in Cache si vous n'utilisez pas Varnish. Cela seul peut réduire votre temps de chargement de 50 à 70 %.

Varnish Cache pour la production

Varnish est un cache HTTP dédié placé devant votre serveur web. Il est plus rapide que le cache intégré et peut gérer des milliers de visiteurs simultanés. Magento 2 génère automatiquement un fichier de configuration Varnish que vous pouvez utiliser immédiatement. Sélectionnez Varnish Cache dans les paramètres du cache de pages complètes et renseignez l'hôte backend et le port.

Étape 3 : configurer Redis pour le cache et les sessions

Redis est une base de données en mémoire bien plus rapide que la mise en cache basée sur des fichiers. Utilisez Redis pour deux usages :

  • Cache backend : accélère la récupération de la configuration, du layout et des données de blocs. Magento n'a plus besoin de chercher des fichiers sur le disque.
  • Stockage des sessions : les sessions sont enregistrées en mémoire plutôt que sur le disque ou dans la base de données. Cela accélère chaque chargement de page.

Configurez Redis dans le fichier app/etc/env.php en adaptant les sections cache et session pour utiliser le pilote Redis. La plupart des hébergeurs Magento prennent en charge Redis en standard sur leurs offres VPS.

Étape 4 : optimiser les images produits

Les images produits sont souvent les éléments les plus lourds d'une page. Une seule photo non optimisée peut être plus grosse que tout le HTML, le CSS et le JavaScript réunis. Optimisez comme suit :

  • Compressez les images avant le téléversement : utilisez des outils comme TinyPNG ou ImageOptim. Une photo produit n'a pas besoin de peser 5 Mo ; 100 à 300 Ko suffisent pour la plupart des boutiques.
  • Utilisez le format WebP dès que possible. WebP est 25 à 35 % plus léger que JPEG à qualité comparable. Des extensions Magento comme WebP Converter peuvent automatiser cette opération.
  • Activez le chargement différé (lazy loading) pour que les images ne se chargent que lorsqu'elles entrent dans la partie visible de la page. Cela accélère le temps de chargement initial de chaque page de catégorie et de produit.
  • Définissez les bonnes dimensions : n'envoyez pas une photo de 4000x4000 pixels si elle est affichée en 400x400 sur votre site web.

Étape 5 : minifier les fichiers CSS et JavaScript

Par défaut, Magento 2 charge de nombreux fichiers CSS et JavaScript. Réduisez le nombre de requêtes HTTP et la taille totale des fichiers avec ces paramètres :

  • Fusion du CSS et du JS : allez dans Stores > Configuration > Advanced > Developer > CSS/JavaScript Settings. Activez Merge et Minify pour le CSS comme pour le JavaScript.
  • JavaScript dans le pied de page : activez l'option Move JS code to the bottom of the page. Le contenu visible se charge ainsi plus tôt et la page paraît plus rapide aux visiteurs.
  • Supprimez les modules inutilisés : désactivez les modules Magento que vous n'utilisez pas. Chaque module ajoute des fichiers qui doivent être chargés.

Étape 6 : optimisation de la base de données et indexation

Avec le temps, la base de données Magento grossit et les requêtes ralentissent. Faites une maintenance régulière :

  • Gardez les index à jour : exécutez régulièrement bin/magento indexer:reindex ou réglez l'indexation sur Update by Schedule.
  • Supprimez les sessions et les devis expirés : les anciennes sessions de panier et les devis (quotes) expirés occupent inutilement de la place.
  • Activez le catalogue à plat (flat catalog) si vous avez plus de 1 000 produits. Cela crée des tables de base de données optimisées pour des listes de produits plus rapides.
  • Optimisez les tables périodiquement : exécutez OPTIMIZE TABLE sur les plus grosses tables pour nettoyer les données fragmentées.

Étape 7 : utiliser un CDN pour les fichiers statiques

Un réseau de diffusion de contenu (CDN) sert les fichiers statiques comme les images, le CSS et le JavaScript depuis des serveurs proches de vos visiteurs. Cela réduit le temps de chargement, surtout pour les visiteurs éloignés de votre serveur. Parmi les CDN populaires pour Magento figurent Cloudflare (offre de base gratuite disponible), KeyCDN et Fastly.

Configurez votre CDN via Stores > Configuration > General > Web > Base URLs (Secure) et renseignez l'URL du CDN pour les fichiers statiques et les médias.

Étape 8 : activer le mode production

Magento 2 propose trois modes : default, developer et production. Veillez toujours à ce que votre boutique en ligne accessible aux clients tourne en mode production. En mode production, les fichiers statiques sont générés à l'avance, les messages d'erreur ne sont pas affichés aux visiteurs et les performances globales sont nettement meilleures qu'en mode developer.

Étape 9 : limiter le nombre d'extensions

Chaque extension ajoute du code PHP exécuté à chaque chargement de page. Plus il y a d'extensions, plus votre boutique en ligne est lente. Supprimez les extensions que vous n'utilisez pas activement et choisissez des extensions de qualité, conçues par des développeurs réputés. Vérifiez l'impact des extensions en les désactivant temporairement et en comparant le temps de chargement.

Mesurer le résultat et ajuster

Mesurez votre temps de chargement avant et après chaque étape d'optimisation. Utilisez ces outils pour suivre vos progrès :

  • Google PageSpeed Insights : donne un score et des points d'amélioration concrets
  • GTmetrix : analyse détaillée en cascade de toutes les requêtes
  • Magento Profiler : profilage intégré des performances PHP côté serveur
  • DevTools du navigateur : l'onglet Network indique exactement quels fichiers se chargent lentement

Une boutique en ligne Magento 2 bien optimisée se charge en 1 à 3 secondes. Avec les étapes de ce guide et un bon hébergement, cela doit être réalisable pour n'importe quelle boutique en ligne.

Optimisation avancée : Elasticsearch et performances de recherche

Magento 2.4 et les versions ultérieures nécessitent Elasticsearch ou OpenSearch pour la fonction de recherche du catalogue. Un moteur de recherche mal configuré peut ralentir toute votre boutique en ligne, surtout si vous avez beaucoup de produits. Optimisez Elasticsearch en lui allouant suffisamment de mémoire (au moins 512 Mo de heap), en optimisant régulièrement l'index et en supprimant les champs inutiles de l'index de recherche.

Pensez aussi à désactiver, dans la configuration de la recherche, les attributs de produits qui n'ont pas besoin d'être inclus dans la recherche. Moins Elasticsearch a de données à parcourir, plus les résultats s'affichent vite à vos visiteurs.

Activer HTTP/2 et HTTP/3

Les protocoles web modernes comme HTTP/2 et HTTP/3 chargent les pages nettement plus vite que l'ancien HTTP/1.1. HTTP/2 prend en charge le multiplexage, qui permet de charger plusieurs fichiers en même temps sur la même connexion. HTTP/3 va encore plus loin avec le protocole QUIC, qui établit les connexions plus rapidement. Vérifiez que votre serveur web prend en charge ces protocoles et activez-les. Avec Nginx et LiteSpeed, HTTP/2 est disponible en standard.

Optimiser les tâches cron pour Magento 2

Magento 2 utilise des tâches cron pour l'indexation, l'envoi d'e-mails, le nettoyage des sessions expirées et l'application des règles de catalogue. Des tâches cron mal configurées peuvent surcharger votre serveur et ralentir votre boutique en ligne. Veillez à ce que cron s'exécute toutes les minutes, comme le recommande Magento, mais vérifiez aussi que les tâches cron ne se chevauchent pas et ne se bloquent pas. Utilisez la commande bin/magento cron:run et surveillez la table cron_schedule de votre base de données pour détecter les erreurs.

Accélérer Magento 2 avec OPcache

PHP OPcache conserve en mémoire les fichiers PHP compilés, pour qu'ils n'aient pas à être recompilés à chaque requête. Pour Magento 2, OPcache est essentiel. Configurez au moins 256 Mo de mémoire pour OPcache et fixez le nombre maximal de fichiers en cache à au moins 100 000. Magento 2 charge des centaines de fichiers PHP à chaque requête : un OPcache bien configuré fait donc une différence notable sur le temps de chargement de votre boutique en ligne.

Accélérer Magento 2 : résumé et priorités

Si vous avez suivi toutes les étapes de ce guide, votre boutique en ligne Magento 2 devrait se charger de façon nettement plus rapide. Vous obtenez le plus grand impact avec trois mesures : un hébergement puissant avec suffisamment de mémoire, la mise en cache de pages complètes via Varnish ou le cache intégré, et des images produits optimisées. Ces trois étapes seules peuvent diviser votre temps de chargement par deux.

Viennent ensuite, par ordre de priorité, Redis pour le stockage des sessions, la configuration d'OPcache et la limitation des extensions. L'optimisation de la base de données et un CDN apportent les derniers points de pourcentage d'amélioration. Accélérer Magento 2 est un processus continu : mesurez régulièrement, optimisez si nécessaire et gardez vos logiciels à jour. Avec le bon hébergement et la bonne configuration, une boutique en ligne Magento n'a pas à être lente.

Vous voulez accélérer Magento 2 mais vous ne savez pas par où commencer ? Commencez par mesurer votre temps de chargement actuel, mettez ensuite en place la mise en cache de pages complètes et Redis, puis optimisez vos images. Ces trois étapes seules rendent déjà votre boutique en ligne nettement plus rapide. Les autres optimisations sont la cerise sur le gâteau qui vous aide à réduire encore le temps de chargement, sous les deux secondes. C'est un investissement qui se rentabilise immédiatement en meilleures conversions et en clients satisfaits.

Questions fréquentes sur l'accélération de Magento 2

De combien ma boutique en ligne sera-t-elle plus rapide après optimisation ?

Avec les étapes de ce guide, vous pouvez réduire le temps de chargement de votre boutique en ligne Magento 2 de 50 à 70 %. Une boutique en ligne qui se charge aujourd'hui en 4 secondes peut passer sous les 2 secondes après la mise en place de la mise en cache, de Redis et de l'optimisation des images.

Puis-je accélérer Magento 2 sans connaissances techniques ?

Vous pouvez réaliser vous-même les étapes de base, comme compresser les images et activer la mise en cache, via le panneau d'administration de Magento. Pour les optimisations avancées, comme la configuration de Varnish et le réglage au niveau du serveur, des connaissances techniques sont nécessaires. Dans ce cas, choisissez un hébergeur qui s'occupe de ces optimisations pour vous.

De quel hébergement ai-je besoin pour accélérer Magento 2 ?

Pour une vitesse optimale, il vous faut au minimum un VPS ou un serveur dédié avec du stockage SSD, au moins 4 Go de RAM et PHP 8.1 ou supérieur. L'hébergement mutualisé est presque toujours trop limité pour Magento 2. Chez Theory7, nous proposons un hébergement Magento optimisé, avec Varnish, Redis et OPcache configurés en standard.

Sources et références

  • Google PageSpeed Insights (pagespeed.web.dev)
  • Cloudflare : Learning Center (cloudflare.com/learning)
  • GTmetrix : Website Performance Testing (gtmetrix.com)