Logo Magento a rychloměr

Jak zvýšit výkon e-shopu Magento 2?

Rychlý eshop znamená více objednávek, menší nároky na hardware, lepší pozice ve vyhledávání, méně chyb a více spokojených návštěvníků. E-shopy Magento 2 se s rostoucím počtem produktů, rozšíření a návštěvníků zpomalují na neakceptovatelnou mez. Naštěstí existují způsoby jak i toto ecommerce řešení zrychlit. Ve výsledku může vystavovat stránky v řádu desítek milisekund. Jak na to?

Nepodceňujte sílu hardware (Foto: Tom Raftery)

1. Použijte výkonný server

Neprovozujte Magento 2 na sdíleném hostingu. Hosting má slabý a nestabilní výkon, omezený vzdálený přístup i možnosti nastavení. Využijte dedikovaný server nebo ideálně VPS. Virtuální server nabízí jak SSH přístup, tak i snadné zálohování a výkonnostní flexibilitu. Můžete začít u dvouprocesorového stroje se 4 a více GB RAM a postupně navyšovat. Nedostávají se systémové prostředky? Zkuste přidělit MySQL vlastní server. Slabá místa na serveru odhalíte pomocí příkazu top, pravděpodobně na vrcholu tabulky najdete mnoho php-fpm procesů nebo právě MySQL.

Fresh džus
Udržujte své Magento aktuální. Čerstvé je lepší.

2. Aktualizujte na nejnovější verzi Magento 2

Tým vývojářů Magento 2 neustále aktualizuje, opravuje a vylepšuje. Mnohé z úprav se dotýkají i výkonu. Nejnovější verze Magento 2 (aktuálně 2.4.2) s největší pravděpodobností poskytne i nejvyšší výkon. Magento 2 doporučujeme instalovat pomocí composeru.

Silo
Zvyšte výkon správným nastavením databáze.

3. Optimalizujte nastavení InnoDB

Magento 2 používá databázi v hojné míře, vhodné nastavení MySQL serveru proto hraje klíčovou roli na celkovém výkonu aplikace. Tabulky databáze Magento 2 využívají transakční úložiště InnoDB. K zjištění nejvhodnějšího nastavení využijete s úspěchem utilitu MySQLTuner najde slabá místa a navrhne vhodné nastavení databázového stroje.

Rotačka, tiskařský stroj
Ukládejte kopie stránek do Varnish cache

4. Ukládejte stránky do Varnish cache

Magento 2 využívá koncept celostránkové cache. Renderované HTML stránky jsou ukládány v mezipaměti a v případě opětovného dotazu na stránku dostanete odpověď rychlostí blesku. Magento 2 podporuje interní celostránkovou cache a Varnish, jako doporučené řešení. Osvědčilo se nám řešení s Apache serverem vystaveným na portu 8080 pouze pro localhost a Varnish naslouchajícím na portu 80 s předřazenou SSL proxy Apache na portu 443. Více informací o nastavení HTTP serveru Magento 2 pro Varnish s SSL certifikátem naleznete zde. Pro další zrychlení předehříváním Varnish cache si přečtěte náš článek.

5. Nastavte Redis cache

Magento 2 ve výchozím nastavení používá souborovou cache pro škálu generovaných dat – od nastavení designu, administrace a frontendu po data jazykových mutací, kategorií a produktů. Používat souborový systém pro často používaná data není ideální. Naštěstí existuje jednoduchý způsob jak umístit tyto frekventovaně podávané informace do paměti. Stačí jen nainstalovat Redis server a upravit nastavení cache v app/etc/env.php

Mapa světové sítě
Podávejte statický obsah z CDN

6. Podávejte statický obsah z CDN

Toto doporučení platí nejen pro Magento. Content delivery network pořídíte snadno a bez dalších nákladů. Snížite zátěž serveru a ziskáte výkonnostní boost s minimálním úsilím. CDN často nabízí i další výhody – např. firewall, ochranu před DDoS útoky, optimalizaci obrázků, minimalizaci HTML a JS a další. Ušetřete si práci s optimalizací webového serveru a svěřte statický obsah CDN. Write.cz používá služby Cloudflare.

Dva šneci
Magento rozšíření často nejsou výkonnostně optimalizovaná (Foto: Michael Brace)

7. Pozor na pomalá témata a rozšíření

V neposlední řadě dejte pozor na použité téma a instalovaná rozšíření, ne všechna jsou optimalizovaná pro výkon. Zatímco jádro systému je neustále pod dohledem špičkových vývojářů, autoři témat a rozšíření Magento 2 bohužel často nevěnují výkonu dostatečnou pozornost. Doporučujeme po instalaci témat a rozšíření vyzkoušet výkon webu a v případě problému kontaktovat vývojáře nebo sáhnout po alternativě.

8. Vypněte nepoužívaná Magento 2 rozšíření

Ušetřete práci souborovému systému, procesoru a snižte využití paměti vypnutím nepoužívaných rozšíření. Často se jedná o platební nebo dodací metody vhodné pro určitý trh, moduly instalované „na zkoušku“ ap.. Po deaktivaci modulu zkontrolujte důkladně chod stránek, především u core modulů Magenta.

Palubní deska automobilu - dashboard
Kontroluje stav svého eshopu

9. Profilujte

Magento 2 integruje profiler. Spuštěný profiler ve výchozím nastavení zobrazuje na konci stránky strom tříd a využitého času ke generování stránky. Odhalíte tak slabá místa v kódu a ten pak můžete optimalizovat.

10. Sledujte výkon

Udržujte Magento 2 v perfektní kondici s nástroji pro monitoring serveru. Ve Write.cz používáme New Relic pro nepřetržitou kontrolu běhu serverů a aplikací, varování o poklesu výkonu a chybách v aplikacích.

Závěrem

Magento proslulo strmou křivkou učení. Špatná konfigurace e-shopu nebo volba neoptimalizovaného rozšíření či tématu může mít za následek pomalý běh systému a někdy může být těžké úzké hrdlo odhalit. Věnujte pozornost výše uvedeným tipům a ušetříte si mnoho času a nepříjemností s výkonem Magenta 2.

Vítáme Vaše komentáře, rádi zodpovíme dotazy na téma e-shopu Magento, nejen v oblasti optimalizace výkonu.

Přidejte komentář