首頁 科技週邊 IT業界 更快地製作Magento 2網站的7種簡單方法

更快地製作Magento 2網站的7種簡單方法

Feb 08, 2025 am 10:49 AM

7 Easy Ways to Make a Magento 2 Website Faster

Magento 2電商平台因其速度問題而飽受詬病,緩慢的商品目錄頁面和反應遲鈍的結賬流程是常見問題。本文將分享七個實用技巧,助您提升Magento 2在線商店的運行速度。

1. 使用Varnish作為緩存應用

Varnish是一款HTTP代理服務器,可緩存內容,安裝在Web服務器前面可顯著提升網站性能。 Magento 2內置支持Varnish。啟用方式如下:

  1. 進入管理面板 > 商店 > 配置 > 高級 > 系統 > 全頁緩存,並將“緩存應用程序”設置為Varnish Cache。

    7 Easy Ways to Make a Magento 2 Website Faster

  2. 展開Varnish配置選項卡,導出VCL文件。

    7 Easy Ways to Make a Magento 2 Website Faster

將此文件交給您的系統管理員或主機支持團隊進行Varnish守護進程配置。

2. 安裝緩存預熱工具

Magento 2使用全頁緩存(FPC)來降低服務器響應時間,但FPC的首次請求通常較慢。緩存預熱工具(腳本或擴展)可以預先發出這些請求,填充緩存存儲,從而縮短首字節時間(TTFB)。您可以安裝Magento 2模塊(付費或免費)作為緩存預熱工具,或者創建簡單的PHP腳本,預熱所有類別和最受歡迎的頁面:

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;
}
登入後複製
登入後複製

您可以從Google Analytics導出熱門頁面列表。

3. 將JavaScript代碼移至頁面底部

將JavaScript代碼移至頁面底部可以改善首屏內容繪製速度。 Magento 2.4 提供了相應的管理設置,或者使用命令行:

php bin/magento config:set  dev/js/move_script_to_bottom 1
php bin/magento cache:flush
登入後複製

4. 將圖片轉換為WebP格式

WebP圖片比JPEG和PNG佔用更少的磁盤空間。將網站圖片轉換為WebP格式可以減小頁面大小,提升性能。可以使用cwebp命令行工具進行轉換:

cwebp -q 80 image.png image.webp
登入後複製

-q參數設置質量,此處為80)。 Magento 2也有一些模塊可以實現此轉換。

5. 啟用HTML壓縮

HTML壓縮有助於減小頁面大小和提升速度。 Magento 2.4 無需額外模塊即可壓縮HTML。啟用方式:

php bin/magento config:set dev/template/minify_html 1
php bin/magento deploy:mode:set production
登入後複製

6. 壓縮和合併JavaScript和CSS文件

壓縮和合併JS和CSS文件有助於減小頁面大小,減少HTTP請求,從而加快網站速度。啟用方式:

php bin/magento config:set dev/js/merge_files 1
php bin/magento config:set dev/css/merge_css_files 1
php bin/magento config:set dev/js/minify_files 1
php bin/magento config:set dev/css/minify_files 1
php bin/magento deploy:mode:set production
登入後複製

7. 緩存ElasticSearch查詢結果

Magento 2.4 使用ElasticSearch引擎進行索引和目錄管理。對於大型目錄,緩存查詢結果可以提高ElasticSearch性能。打開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;
}
登入後複製
登入後複製

這將啟用ElasticSearch內部查詢緩存機制。

總結

本文介紹了七種提升Magento 2網站速度的方法:使用Varnish作為全頁緩存、設置緩存預熱工具、延遲加載JavaScript、將所有圖片轉換為WebP、啟用HTML壓縮、壓縮和合併JS和CSS文件以及緩存ElasticSearch查詢結果。這些步驟將改善服務器響應時間和核心網絡指標。

以上是更快地製作Magento 2網站的7種簡單方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
CNCF ARM64飛行員:影響和見解 CNCF ARM64飛行員:影響和見解 Apr 15, 2025 am 08:27 AM

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

使用AWS ECS和LAMBDA的無服務器圖像處理管道 使用AWS ECS和LAMBDA的無服務器圖像處理管道 Apr 18, 2025 am 08:28 AM

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

21個開發人員新聞通訊將在2025年訂閱 21個開發人員新聞通訊將在2025年訂閱 Apr 24, 2025 am 08:28 AM

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL

See all articles