Magento 2 : Bonnes pratiques 16 à 20

Magento 2 : Bonnes Pratiques 16 à 20

Expertise

Parmi les plus réputées du marché, Magento 2 est une plateforme e-commerce faisant directement suite à Magento premier du nom. Cet article fait suite aux bonnes pratiques Magento 2 – 11 à 15 by NBS System en y ajoutant 5 nouvelles : les bonnes pratiques Magento 2 – 16 à 20.

Bonne Pratique Magento 2 16 : Adapter les options de mise en cache via les instructions .htaccess

La mise en cache améliore grandement les performances d’un site web.
Diverses instructions dans les en-têtes du jeu de fichiers .htaccess indiquent aux navigateurs de conserver les fichiers pendant une période prolongée.
Pour un site modifé, il est utile de désactiver la mise en cache afin que les modifications soient immédiatement visibles.

Magento 2 : Options de mise en cache via les instructions .htaccess

mod_expires que vous voyez dans la capture d’écran détermine la fréquence à laquelle votre cache sera automatiquement rafraichi.
Pour maximiser l’utilisation du caching .htaccess, nous devons en modifier les instructions.

Modifiez la section et avec le jeu d’instructions suivante :

ExpiresActive On

ExpiresByType image/jpg "access plus 1 year"

ExpiresByType image/jpeg "access plus 1 year"

ExpiresByType image/gif "access plus 1 year"

ExpiresByType image/png "access plus 1 year"

ExpiresByType text/css "access plus 1 month"

ExpiresByType application/pdf "access plus 1 month"

ExpiresByType text/x-javascript "access plus 1 month"

ExpiresByType application/x-shockwave-flash "access plus 1 month"

ExpiresByType image/x-icon "access plus 1 year"

ExpiresDefault "access plus 2 days"

Les nouvelles règles préciseront les dates d’expiration des médias ainsi que des CSS et JavaScript.

Notez que ExpiresDefault a été modifié de “accès plus 1 an” à “accès plus 2 jours”.

Cela fixe la date d’expiration à tous les types de documents que nous n’avons pas spécifiquement mentionnés ci-dessus.

Ces valeurs seront utiles pour la plupart des boutiques e-commerce sous Magento 2.

Attention à prendre en compte votre propre contexte et de paramétrer au mieux vos dates d’expiration.

N’hésitez pas à expérimenter avec différentes valeurs pour les images, le code, les PDF ainsi que le contenu par défaut et découvrez ce qui fonctionne le mieux pour votre cycle de mise à jour !

Les temps d’accès peuvent être exprimés en secondes, minutes, heures, jours, semaines, mois et même en années.

Bonne Pratique Magento 2 17 : Utiliser HTTP/2 au lieu de HTTP/1.x

Basé sur le SPDY de Google, HTTP/2 est un protocole relativement nouveau (2015)

Celui-ci met en œuvre quelques optimisations clés du transfert de données qui le rendent nettement plus rapide que la version 1.

Pour Magento 2, nous nous intéressons à sa capacité à compresser les en-têtes, à utiliser plusieurs requêtes de serveur en même temps et à travailler en parallèle sur une seule connexion.

Nous avons inclus cette astuce plus comme une diligence raisonnable que comme un conseil pratique puisque 99% de tous les serveurs d’hébergement web Magento 2 (Apache 2.4.17+, Nginx 1.9.5+) supporteront HTTP/2 par défaut.

Il en va de même pour les fournisseurs de CDN (CloudFlare, CloudFront MaxCDN, KeyCDN, Fastly, etc.).

Chez NBS System, HTTP/2 est le protocole par défaut.

Bonne Pratique Magento 2 18 : Utiliser les en-têtes HTTP Expires et Cache Control

Télécharger des ressources statiques à chaque fois qu’un utilisateur visite une page, c’est de l’histoire ancienne.

La nécessité de renvoyer les demandes peut nuire à la rapidité du site.
En outre, les utilisateurs doivent gaspiller une grande quantité de bande passante.

C’est pourquoi la réduction des requêtes HTTP devrait être une de vos principales préoccupations lorsque vous cherchez des façons d’augmenter la vitesse de votre boutique Magento 2.

En utilisant les en-têtes Cache-Control, ainsi que les en-têtes Expire, il est possible de condenser le nombre de requêtes HTTP et leurs poids pour rendre le chargement de la page beaucoup plus rapide.

Cache-control est un en-tête HTTP utilisé pour spécifier les politiques de mise en cache du navigateur dans les réponses du serveur et les demandes des utilisateurs.

Les politiques définissent comment et où un site web est mis en cache, ainsi que son âge maximum avant son expiration.

Après expiration, un navigateur actualise sa version en envoyant une nouvelle requête à un serveur.

Il s’agit d’une pratique courante pour la mise en cache de ressources statiques.

Par exemple, le contrôle de la mise en cache :
max-age=200 signifie que le navigateur doit demander une nouvelle version de la ressource retournée après 200 secondes.

Les composants Magento 2 statiques, comme les images, les fichiers Javascript et CSS, doivent avoir des en-têtes à expiration lointaine (pas moins d’un an).

Il n’y aura aucun problème pour vider le cache du navigateur afin qu’il puisse télécharger la nouvelle version car Magento 2 change automatiquement les chemins d’accès des composants statiques à chaque déploiement.

Cela oblige le navigateur à charger la nouvelle version des fichiers.

Par défaut, cette fonction est activée.

Pour trouver la configuration de cette fonctionnalité, allez dans “Stores > Settings > Configuration > Advanced > Developer > Static Files Settings”

magento 2 : Configuration HTTP Expires et Cache Control

Bonne Pratique Magento 2 19 : Mettre en place un CDN pour accélérer la diffusion de contenu (AWS CloudFront, CloudFlare, Fastly)

Le CDN ou Content Distribution Network (réseau de distribution de contenu) permet d’accélérer la diffusion du contenu en mettant les fichiers statiques (images, JavaScript, CSS) en cache sur des serveurs distants ainsi qu’en desservant chaque utilisateur à partir du serveur géographiquement le plus proche.

Ainsi, votre boutiques Magento 2 décuple sa vitesse de chargement, l’expérience utilisateur de vos clients grandement améliorée et le référencement SEO de votre e-commerce optimisé.

Chez NBS System, nous recommandons en premier lieu CloudFront pour les clients utilisant la plateforme AWS.

En règle générale, CloudFlare, CloudFront ou encore Fastly sont des solutions utilisées par nos clients.

Les trois services sont conviviaux et relativement faciles à implémenter (selon votre contexte).

Bonne Pratique Magento 2 20 : Mettre à niveau l’infrastructure pour améliorer la réponse des serveurs

L’hébergement de votre boutique Magento 2 est un élément crucial.
Si vous utilisez un service d’hébergement mutualisé bon marché ou low-cost type OVH, cela peut avoir une conséquence directe sur les performances de votre activité en ligne.

En effet, Magento 2 est un important consommateur de ressources.
Chez NBS System, vous obtiendrez une meilleure bande passante. Vous aurez également un meilleur matériel ainsi qu’une configuration selon vos besoins pour répondre efficacement à vos enjeux business.

Nous recommandons 4 Go de RAM comme strict minimum. Cela fonctionnera pour les sites ayant jusqu’à plusieurs centaines de visiteurs et quelques dizaines de commandes par jour.

Côté services, utilisez le protocole HTTP/2 (et bientôt HTTP/3), Nginx 1.19.x ou Apache 2.4+, MySQL 5.7, PHP 7.4.x+, PHP OPcache, ElasticSearch, Varnish, Redis ou Memcached (Redis est préférable) et PHPUnit pour les tests unitaires.
https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements.html

Nous souhaitons attirer votre attention sur l’utilisation du processeur et de la mémoire vive.

La règle de base est d’avoir un taux d’utilisation inférieur à 60%.

En conséquence, cette fenêtre de 40 % vous donnera une marge de manœuvre suffisante pour faire face aux pics occasionnels. En parallèle, cela ne pèsera pas trop lourdement sur votre budget.