5 conseils essentiels pour améliorer votre TTFB Magento

Publié: 2019-01-08

Ceci est un article invité de Vasili Nikolaev.

Le temps jusqu'au premier octet (TTFB) est l'une des mesures de vitesse les plus importantes d'un site Web. Il indique combien de temps s'écoulera après qu'un utilisateur aura entré l'URL de votre boutique Magento et le temps qu'il recevra une réponse, même aussi petite que 1 octet (d'où le nom, "temps jusqu'au premier octet").

Le délai avant le premier octet est vital à la fois pour les humains (ils n'aiment pas attendre) et pour les robots des moteurs de recherche (Google déteste les sites Web lents et les classe plus bas ― cliquez ici pour en savoir plus sur la première solution de référencement Magento 2 de MageWorx).

Mais en même temps, il y a des preuves convaincantes de John Mueller, l'une des têtes parlantes de Google, que Google n'utilise pas TTFB pour les classements :

Magento 2 TTFB | Blog de MageWorx

Donc, notre conseil est de ne pas trop être obsédé par le TTFB pour le référencement, mais plutôt de vous concentrer sur l'expérience utilisateur et les performances du magasin.

Pourquoi le TTFB est plus important que le chargement complet de la page (appelé « temps jusqu'au dernier octet ») ? Eh bien, parce que plus tôt vous chargez le premier octet, plus vite les utilisateurs commenceront à lire votre contenu. Peu importe qu'ils ne puissent pas voir instantanément toutes les images de la page. Il est plus important d'offrir aux utilisateurs quelque chose à faire pendant que votre serveur Web est occupé à charger le reste du contenu.

Table des matières

  • 1. Comprendre vos goulots d'étranglement pour les éliminer
    • Qu'est-ce qu'un bon TTFB ?
  • 2. Migrer vers un moteur de base de données plus adapté
  • 3. Faites correspondre la configuration du serveur à vos besoins de trafic actuels
  • 4. Configurer une meilleure solution de mise en cache
  • 5. Débarrassez-vous des extensions inutiles
  • Astuce bonus : modifier les paramètres de journalisation du magasin et des clients
  • Une bataille constante pour la performance

1. Comprendre vos goulots d'étranglement pour les éliminer

Qu'est-ce qu'un bon TTFB ?

Magento 2 TTFB | Blog de MageWorx
Google indique qu'un TTFB inférieur à 200 ms est l'objectif. En dessous de 200 ms, le moteur de recherche vous classera le plus haut. Une fois que vous dépassez cette valeur, Google appliquera des pénalités à votre site Web. 600 ms ou plus signifie que vous ne pouvez même pas passer le test TTFB de Google.

Il y a beaucoup de facteurs qui affecteront votre TTFB. Dans aucun ordre particulier:

  • configuration et ressources du serveur Web,
  • vitesse de résolution du serveur de noms,
  • temps d'exécution du code sur la page,
  • implémenté des solutions de mise en cache backend,
  • conjecture de réseau.

Vérifiez votre valeur TTFB soit avec un service tiers, soit en utilisant le test Google TTFB. Vous pouvez également comparer vos résultats avec des sites Web populaires ou avec vos concurrents ici pour obtenir une perspective unique sur la façon dont votre magasin se charge pour les utilisateurs mobiles.

Magento 2 TTFB | Blog de MageWorx Magento 2 Profiler est un autre excellent outil de diagnostic. Avec lui, vous pouvez facilement décomposer chaque demande de page en blocs plus petits qui sont rapides à visualiser et à analyser.

Dans le tableau, portez une attention particulière à 2 valeurs importantes, Time et Count. Le temps est explicite. C'est le délai réel entre la demande de l'utilisateur et la réponse du serveur. La ligne Cnt correspond au nombre de fois que cet élément a été appelé avant de créer la sortie.

Il vaut la peine d'utiliser Database Profiler en conjonction avec le profileur par défaut de Magento 2 pour analyser les requêtes de base de données.

Magento 2 TTFB | Blog de MageWorx C'est la première étape que vous devez franchir : activez Magento Profiler et examinez les pages qui présentent les plus gros problèmes avec TTFB. Bien que vous puissiez utiliser le profileur par défaut, nous vous recommandons de configurer Profiler SQL. C'est gratuit et offre un aperçu pratique du nombre de requêtes par session.

Le profileur divisera toutes les demandes en parties plus petites afin que vous puissiez voir immédiatement quelles sections vous entraînent vers le bas.

2. Migrer vers un moteur de base de données plus adapté

La base de données du magasin Magento 2 peut facilement devenir le plus gros goulot d'étranglement des performances si elle est inefficace, lente ou utilise un moteur de stockage qui n'est pas le meilleur choix pour gérer Magento.

Pourquoi est-ce important? Il existe un large choix de différents moteurs de stockage pour MySQL. Nous avons compté au moins 10 solutions prises en charge dans la documentation officielle de MySQL et il y en a encore plus dans la nature.

Bien que vous puissiez utiliser Magento avec le moteur MyISAM MySQL par défaut, des moteurs de base de données alternatifs tels que MariaDB Ari un moteur de stockage ou le moteur Percona XtraDB peuvent rendre votre magasin plus stable et (parfois) plus rapide par rapport à la configuration par défaut.

Par exemple, le moteur Aria utilise une approche plus intelligente dans les cas où Magento force le moteur de stockage à utiliser un grand nombre de tables temporaires.

Percona est un autre fork de MySQL qui a intégré au fil du temps un certain nombre d'ajustements de performances pour accélérer les requêtes de base de données. Comparé à MyISAM , il fonctionne beaucoup plus rapidement avec de nombreuses requêtes parallèles et se spécialise dans le traitement des transactions.

Même si la meilleure recommandation pour l'optimisation de la base de données serait d'examiner attentivement vos besoins et de choisir le moteur qui vous convient le mieux, nous avons quelques conseils qui seront utiles à tous :

  • évitez MySQL par défaut pour la recherche de magasins. Installez Elasticsearch pour accélérer toutes les requêtes de recherche sur votre site Web,
  • sélectionnez le moteur de base de données qui vous convient le mieux.

3. Faites correspondre la configuration du serveur à vos besoins de trafic actuels

Faire des économies sur l'infrastructure n'est pas une bonne idée. Au fil du temps, une entreprise en croissance constante verra plus de clients, plus de transactions et plus de commandes. Il est donc sain de maintenir votre configuration à 80 % de sa capacité pour s'adapter aux pics d'utilisation aléatoires et au trafic piétonnier généré par les événements. Ces 20 % peuvent faire beaucoup pour maintenir un niveau de performance décent dans toutes les situations.

Une équipe d'hébergement digne de ce nom vous dira quelle configuration système vous avez besoin pour fonctionner correctement. Mais si vous avez grandi rapidement sur une période de temps, il est de votre responsabilité de définir une feuille de route pour la mise à niveau.

Il existe un certain nombre de points critiques dans votre boutique Magento qui influenceront fortement la configuration système requise :

  • taille du magasin (nombre de vues du magasin),
  • catégories et SKU dans le catalogue (avec attributs et ensembles d'attributs),
  • le trafic moyen (pages vues moyennes et pics historiques),
  • transactions par jour (téléchargements numériques, paiements et opérations similaires).

En général, votre trafic moyen influencera directement la puissance du processeur dont vous avez besoin. Ainsi, après avoir trouvé la configuration optimale du processeur, faites correspondre votre RAM aux exigences de votre processeur pour créer un profil de serveur Web équilibré.

La taille de stockage de la base de données dépend de votre RAM actuelle, vous devez donc en ramasser juste assez pour couvrir tous les besoins actuels. Créez également un coussin de performance pour respirer un peu. Votre objectif est de toujours conserver au moins 20 à 25 % de CPU et de RAM de réserve pour faire face aux pics de trafic occasionnels.

4. Configurer une meilleure solution de mise en cache

La mise en cache du site Web est la meilleure chose après l'invention des frites. Le cache du serveur améliore la vivacité du site Web, ce qui le rend beaucoup plus rapide. La mise en cache fonctionne en déplaçant les données fréquemment utilisées du SSD ou d'un disque dur vers la RAM.

Là où les disques durs peuvent lire séquentiellement des données jusqu'à 200 Mo/sec et les SSD jusqu'à 3200, les modules DRAM peuvent aller jusqu'à 20 Go/s. Ce qui nous donne la différence de x10 ou au moins un ordre de grandeur.

Redis et Varnish sont l'une des mises à niveau les plus populaires pour les magasins Magento. C'est une option de mise en cache recommandée pour Magento 2. Les deux solutions fonctionnent également très bien avec Magento 1.

Varnish est un outil difficile à configurer, mais lorsqu'il est bien fait, il offre des valeurs TTFB en 100-200 ms. Pour les configurations de cache pleine page, TTFB s'étendra sur 250 ms.

Un autre avantage distinct de Varnish ― il fonctionne sur plus de pages Web. Alors que FPC ne fonctionne pas pour les pages avec beaucoup de contenu dynamique, Varnish offre de meilleures performances même pour ces cas d'utilisation difficiles.

5. Débarrassez-vous des extensions inutiles

Pour être honnête, la désactivation des extensions inutilisées est le conseil n°1 pour toute boutique Magento 2, mais elle est souvent négligée. Chaque extension qui s'exécute sur votre site Web utilisera certaines de vos ressources. S'ils sont mal configurés, ils pourraient également ralentir votre TTFB.

N'oubliez pas : le serveur doit exécuter ce code avant d'envoyer des commentaires à l'utilisateur.

Le nettoyage de votre liste d'extensions accélérera également Magento. Même si vous ne pouvez en désactiver aucune, gardez à jour votre boutique Magento et vos extensions tierces pour bénéficier de corrections de bugs et d'optimisations qui amélioreront certainement les performances de votre site .

Astuce bonus : modifier les paramètres de journalisation du magasin et des clients

Assurez-vous de désactiver la journalisation des clients Magento. Cela vous aidera à réduire le temps passé sur les requêtes de base de données. Ce n'est pas un impact énorme puisque la journalisation des clients est une activité relativement mineure. L'amélioration des performances dépendra du nombre de clients qui visitent actuellement votre magasin.

Nous vous déconseillons de désactiver la journalisation de la boutique. C'est un outil précieux qui aide au dépannage de Magento. Mais au lieu de laisser les journaux de magasin prendre du temps sur le serveur, vous pouvez les déplacer vers un service tiers, tel que Papertrail.

Une bataille constante pour la performance

Il n'y a pas deux magasins Magento identiques. Chacun d'entre eux sera confronté à des défis différents pour optimiser ses vitrines pour la vitesse. Cela peut être particulièrement vrai pour les sites Web Magento plus anciens (et plus grands) qui comportent de nombreuses extensions tierces complexes, de grandes bases de données et plusieurs magasins.

Et bien que nous ne puissions jamais «gagner» cette bataille pour la performance, notre objectif commun est de faire des magasins Magento les meilleurs de leur catégorie en termes de vitesse, d'expérience utilisateur et de sécurité parmi tous les sites de commerce électronique.


À propos de l'auteur

Vasili Nikolaev est en chasse au trésor permanente pour dénicher les astuces les plus efficaces pour faciliter un peu la vie des commerçants. Il n'y a rien de plus satisfaisant que de trouver une excellente solution à un problème difficile pour lui.