更快地製作Magento 2網站的7種簡單方法
Magento 2電商平台因其速度問題而飽受詬病,緩慢的商品目錄頁面和反應遲鈍的結賬流程是常見問題。本文將分享七個實用技巧,助您提升Magento 2在線商店的運行速度。
1. 使用Varnish作為緩存應用
Varnish是一款HTTP代理服務器,可緩存內容,安裝在Web服務器前面可顯著提升網站性能。 Magento 2內置支持Varnish。啟用方式如下:
-
進入管理面板 > 商店 > 配置 > 高級 > 系統 > 全頁緩存,並將“緩存應用程序”設置為Varnish Cache。
-
展開Varnish配置選項卡,導出VCL文件。
將此文件交給您的系統管理員或主機支持團隊進行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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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