Magento 2 eコマースプラットフォームは、その速度の問題について批判されており、製品カタログページの遅いページと遅いチェックアウトプロセスは一般的な問題です。この記事では、Magento 2オンラインストアのランニング速度を改善するのに役立つ7つの実用的なヒントを共有します。
1キャッシュアプリケーションとして使用します Varnishは、コンテンツをキャッシュし、Webサーバーの前にインストールするHTTPプロキシサーバーで、Webサイトのパフォーマンスを大幅に向上させます。 Magento 2には、ワニスのサポートが組み込まれています。アクティベーション方法は次のとおりです
admin&gt>
2をインストールします
Magento 2はフルページキャッシュ(FPC)を使用してサーバーの応答時間を短縮しますが、FPCの最初のリクエストは通常遅くなります。キャッシュウォームアップツール(スクリプトまたは拡張機能)は、これらのリクエストを事前に作成し、キャッシュストレージを登録して、最初の時間(TTFB)を短縮できます。 Magento 2モジュール(有料または無料)をキャッシュ予熱ツールとしてインストールするか、すべてのカテゴリと最も人気のあるページを温める簡単なPHPスクリプトを作成できます。Google Analyticsから人気のあるページのリストをエクスポートできます。
3ページの下部にJavaScriptコードを移動します。
JavaScriptコードをページの下部に移動すると、最初の画面でコンテンツを描画する速度が向上します。 Magento 2.4は、対応する管理設定を提供するか、コマンドラインを使用します。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; }
4
WebP画像は、JPEGおよびPNGよりもディスクスペースが少なくなります。 Webサイトの画像をWebP形式に変換すると、ページのサイズを削減し、パフォーマンスを向上させることができます。 コマンドラインツールを使用して転換できます。
(パラメーターの設定品質、ここに80があります)。 Magento 2には、この変換を実装できるモジュールもいくつかあります。
php bin/magento config:set dev/js/move_script_to_bottom 1 php bin/magento cache:flush
5 HTML圧縮は、ページのサイズを削減し、スピードアップするのに役立ちます。 Magento 2.4追加モジュールなしでHTMLを圧縮します。メソッドを有効にします:
cwebp
6 JavaScriptとCSSファイルをマージします
cwebp -q 80 image.png image.webp
JSファイルとCSSファイルの圧縮とマージは、ページのサイズを削減し、HTTPリクエストを減らしてWebサイトを高速化するのに役立ちます。メソッドを有効にします:-q
7 Cache ElasticSearch Query < Magento 2.4インデックスとディレクトリ管理にはElasticsearchエンジンを使用します。大規模なディレクトリの場合、キャッシュクエリの結果はElasticSearchのパフォーマンスを改善できます。
概要
この記事では、Magento 2 Webサイトの速度を改善するための7つの方法を紹介します:Varnishをフルページキャッシュとして使用し、キャッシュの設定ツール、JavaScriptの怠zyなロード、すべての画像をWebPに変換し、HTML圧縮、圧縮、融合を可能にしますJSおよびCSSファイルとキャッシュElasticsearchクエリの結果。これらの手順により、サーバーの応答時間とコアネットワークメトリックが改善されます。 以上がMagento2のウェブサイトをより速くするための7つの簡単な方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php
ファイルを開き、約365行近くに次のコードを追加します。
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;
}