La plate-forme de commerce électronique Magento 2 a été critiquée pour ses problèmes de vitesse, les pages de catalogue de produits lents et le processus de paiement lent étant des problèmes courants. Cet article partagera sept conseils pratiques pour vous aider à améliorer la vitesse de course de la boutique en ligne Magento 2.
1. Varnish est un serveur proxy HTTP qui cache le contenu et l'installe devant un serveur Web pour améliorer considérablement les performances du site Web. Magento 2 a une prise en charge intégrée pour le vernis. La méthode d'activation est la suivante:
2.
Magento 2 utilise le cache pleine page (FPC) pour réduire le temps de réponse du serveur, mais la première demande de FPC est généralement plus lente. Un outil d'échauffement de cache (script ou extension) peut faire ces demandes à l'avance, en remplissant le stockage du cache, réduisant ainsi le premier octet (TTFB). Vous pouvez installer le module Magento 2 (payé ou gratuit) comme un outil de préchauffage de cache, ou créer un script PHP simple qui réchauffe toutes les catégories et les pages les plus populaires:
Vous pouvez exporter une liste de pages populaires de Google Analytics.
ini_set('memory_limit','12000M'); use Magento\Framework\App\Bootstrap; require __DIR__.'/app/bootstrap.php'; $params = $_SERVER; $bootstrap = Bootstrap::create(BP,$params); $obj = $bootstrap->getObjectManager(); $state = $obj->get('Magento\Framework\App\State'); $state->setAreaCode('frontend'); $categories = $obj->create('Magento\Catalog\Model\ResourceModel\Category\Collection'); $categories->addIsActiveFilter() ->joinUrlRewrite(); foreach($categories as $cat){ $st = microtime(true); $dd = file_get_contents_ssl($cat->getUrl()); $fn = microtime(true); if(($fn - $st) > 0.9) echo $cat->getUrl()." : time: ".($fn - $st)."\n"; sleep(3); } $open = fopen("1000-popular-pages.csv","r"); while(($data = fgetcsv($open,4000,",")) !== FALSE){ if(filter_var($data[0],FILTER_VALIDATE_URL) !== FALSE && strpos($data[0],".pdf") === FALSE && strpos($data[0],"/blog/") === FALSE){ $st = microtime(true); $dd = file_get_contents_ssl($data[0]); $fn = microtime(true); if(($fn - $st) > 0.9) echo $data[0]." : time: ".($fn - $st)."\n"; sleep(3); } } fclose($open); function file_get_contents_ssl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3000); curl_setopt($ch, CURLOPT_TIMEOUT, 10000); $result = curl_exec($ch); if($result === FALSE) $result = curl_error($ch); curl_close($ch); return $result; }
Le déménagement du code JavaScript vers le bas de la page peut améliorer la vitesse du contenu de dessin sur le premier écran. Magento 2.4 fournit des paramètres de gestion correspondants ou utilisez la ligne de commande:
4.
Les images Webp occupent moins d'espace disque que JPEG et PNG. La conversion des images du site Web au format WebP peut réduire la taille des pages et améliorer les performances. Vous pouvez utiliser l'outil de ligne de commandepour convertir:
php bin/magento config:set dev/js/move_script_to_bottom 1 php bin/magento cache:flush
( Qualité de réglage des paramètres, voici 80). Magento 2 a également quelques modules qui peuvent implémenter cette transformation.
5.
cwebp
La compression HTML aide à réduire la taille des pages et à accélérer. Magento 2.4 Compress HTML sans modules supplémentaires. Activer la méthode:
cwebp -q 80 image.png image.webp
-q
6.
7.
Magento 2.4 Utilisez le moteur Elasticsearch pour l'indexation et la gestion des répertoires. Pour les grands répertoires, les résultats de la requête de cache peuvent améliorer les performances de la recherche sur Elastics. Ouvrez le fichier vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php
et ajoutez le code suivant près d'environ 365 lignes:
ini_set('memory_limit','12000M'); use Magento\Framework\App\Bootstrap; require __DIR__.'/app/bootstrap.php'; $params = $_SERVER; $bootstrap = Bootstrap::create(BP,$params); $obj = $bootstrap->getObjectManager(); $state = $obj->get('Magento\Framework\App\State'); $state->setAreaCode('frontend'); $categories = $obj->create('Magento\Catalog\Model\ResourceModel\Category\Collection'); $categories->addIsActiveFilter() ->joinUrlRewrite(); foreach($categories as $cat){ $st = microtime(true); $dd = file_get_contents_ssl($cat->getUrl()); $fn = microtime(true); if(($fn - $st) > 0.9) echo $cat->getUrl()." : time: ".($fn - $st)."\n"; sleep(3); } $open = fopen("1000-popular-pages.csv","r"); while(($data = fgetcsv($open,4000,",")) !== FALSE){ if(filter_var($data[0],FILTER_VALIDATE_URL) !== FALSE && strpos($data[0],".pdf") === FALSE && strpos($data[0],"/blog/") === FALSE){ $st = microtime(true); $dd = file_get_contents_ssl($data[0]); $fn = microtime(true); if(($fn - $st) > 0.9) echo $data[0]." : time: ".($fn - $st)."\n"; sleep(3); } } fclose($open); function file_get_contents_ssl($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3000); curl_setopt($ch, CURLOPT_TIMEOUT, 10000); $result = curl_exec($ch); if($result === FALSE) $result = curl_error($ch); curl_close($ch); return $result; }
Cela permettra le mécanisme de mise en cache des requêtes internes de la recherche Elasticsearch.
Résumé
Cet article introduit sept façons d'améliorer la vitesse des sites Web Magento 2: en utilisant Varnish comme cache pleine page, en configurant un outil de préchauffage du cache, un chargement paresseux de JavaScript, en convertissant toutes Fichiers JS et CSS et Cache Elasticsearch Results Query. Ces étapes amélioreront le temps de réponse du serveur et les métriques du réseau central.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!