Magento 2 je trgovinska platforma, ki je znana po svojem obsegu funkcionalnosti in posledično po svoji kompleksnosti. Ravno ta kompleksnost je za marsikoga precej velik zalogaj in posledično imamo veliko trgovin, ki so počasi odzivne in zaradi tega ujezijo marsikaterega obiskovalca trgovine.
Na Magentu delam že več kot deset let, ampak, ko sem namestil svojo prvo Magento 2 trgovino je bilo vse skupaj neodzivno. Mislil sem, da sem naredil kakšno napako in ponovil celoten postopek, ampak še vedno sem bil v začaranem krogu neskončnega nalaganja strani. Po pregledu vseh glavnih problemov sem prišel do zaključka, da je okolje, na katerem je bilo vse skupaj postavljeno precej pod zahtevami za normalno delovanje trgovine. Ni ostalo drugega, kot da se poišče nov precej bolj zmogljiv strežnik, ki bi prenesel vse skupaj.
Žal je ta sprememba pomenila, da trgovine, ki so bile prej na deljenem gostovanju, niso imele več primernega okolja, katerega bi se lahko ohranilo in na njem nadgradilo trgovino. Tudi najmanjše spletne trgovine bi se morale odločiti za svoj dediciran strežnik, kar pa je verjetno za marsikoga precej velik finančni zalogaj, tako da ni rešitev primerna. In začelo se je iskanje rešitev.
Prva izmed rešitev za vse Magento 1 trgovine je bila sigurno nadgradnja na Openmage (neuradni Magento 1 razvoj). Ampak ta rešitev ni bila primerna za tiste, ki so si želeli nove Magento 2 verzije. Zaradi tega sem, po ogromno porabljenega časa in par novih sivih laseh, prišel do nekaj ključnih dejavnikov, ki vplivajo na hitrost in dobro delovanje Magento 2.
Na Google Speed insight, smo za spletno trgovino https://swisspower.co, ki ima precej dodatnih funkcionalnosti (vse od push obvestil, email obveščanja ob dogodkih, preusmeritev trgovine na primerno jezikovno različico, integriran blog sistem in še mnogo drugih) ter je gostovana na Neoserv deljenem gostovanju (turbo gostovanje), dosegli oceno 100 od 100.
Da vam olajšam delo, sem za vas pripravil 5 glavnih dejavnikov, na katere bodite pozorni pri postavitvi Magento 2 trgovine.
1. Hitro in zanesljivo gostovanje
Eden izmed pomembnejših dejavnikov za dobro delovanje trgovine je dobro postavljeno strežniško okolje, saj lahko ta precej vpliva na hitrost delovanja. Tudi če imamo zelo zmogljiv strežnik ampak njegovo delovanje in okolje nista optimizirana, se lahko zgodi, da bo deloval precej slabše kot veliko manj zmogljiv strežnik. Preden se odločite za ponudnika gostovanja, priporočam testno namestitev samega Magento sistema, saj boste tako dobili občutek ali vse deluje, kot mora in kako hitro. Z dodatnimi moduli in vsebino bo namreč vpliv na delovanje še večji. Imel sem celo primere, ko ponudnik gostovanja ni znal vzpostaviti primernega okolja.
Trgovina Swisspower deluje na zadnji verziji Magento sistema 2.4.4. in php 8.1 z OPcache. Da sem zmanjšal stroške gostovanja in postavil trgovino na deljenem gostovanju sem Elasticsearch na trgovini zamenjali z MySql.
2. Poznavanje funkcionalnosti sistema
Eden izmed glavnih razlogov problemov z delovanjem je zelo pogosto napačna konfiguracija sistema, saj je sam sistem zelo obsežen in se hitro kaj napačno nastavi. Pogosto marsikdo tudi ne pozna dobrega delovanja in funkcij sistema in namesto da bi si prebral vsa navodila in razumel logiko delovanja je prva stvar, ki jo želi ta, da bi se spremenilo delovanje trgovine z modulom. Modul seveda reši zadevo, ampak povzroči tudi spremembo delovanja, ki lahko vpliva na hitrost in povzroča napake pri delovanju. Dolgoročno je module tudi potrebno nadgrajevati, kar lahko pomeni precej dodatnega dela pri vzdrževanju trgovine.
Uradna uporabniška navodila za sistem so na voljo na naslovu:
https://docs.magento.com/user-guide/
Spremembe konfiguracije vedno tudi stestirajte, saj lahko nekatere spremembe, za katere mislimo, da bodo pomagale, negativno vplivajo na delovanje (npr. JavaScript bundling).
3. Uporaba modulov
Poleg tega, da poskusite čim bolj omejiti dodatne module, je treba preveriti katere module, ki se namestijo s samim Magento sistemom, boste tudi uporabljali. Tiste, ki jih ne potrebujete, namreč lahko izklopite. Bodite pa pozorni, da ne izklopite kakšnega modula preveč.
Ko se odločite za dodatne module, vedno dobro preverite njihovo delovanje. Nujno je preveriti, ali prihaja do napak pri izvajanju in kako moduli vplivajo na samo hitrost delovanja. Če modul ni dobro napisan, lahko že ena sama funkcija precej upočasni delovanje trgovine.
4. Redno posodabljanje sistema
Ena največjih napak, ki jo je Magento po mojem mnenju naredil, je ta, da so prehitro lansirali nov Magento 2 sistem. Ta je imel v prvih verzijah toliko napak, da po mojem mnenju ni bil najbolj primeren za uporabo. Zato sem sam strankam raje priporočil, da še ne nadgradijo trgovine iz Magento 1 sistema, saj je stari sistem deloval precej bolje in hitreje.
Sedaj se stanje delovanja počasi vzpostavlja in vsaka verzija deluje precej bolje ter ima odpravljenih ogromno napak in dodanih nekaj dodatnih funkcionalnosti.
Nova verzija (2.4.4.) ima podporo tudi za php 8.1, ki precej pohitri samo delovanje trgovine.
5. Optimizirana grafična predloga trgovine
Po mojem mnenju je prilagojena grafična predloga eden izmed pomembnejših dejavnikov pri delovanju trgovine, saj lahko naredi precej veliko razliko pri delovanju, če je narejena dobro. Večina dela napako in se odloči za predizdelano predlogo, saj ta omogoča veliko dodatnih možnosti in mnogo izbir prilagoditev samega izgleda. Potrebno je vedeti, da imajo takšne teme že same vključenih veliko dodatnih modulov, ki jih je čez čas potrebno nadgrajevati poleg tega tudi vsak po svoje vplivajo na delovanje. Hkrati pa so narejene tako, da imajo vključenih mnogo različnih knjižnic (“css” in “js”), ki omogočajo veliko različnih stilov in hitrejše prilagoditve izgleda. Ampak to pomeni več kode, ki se mora ob prikazu trgovine naložiti in več kode, ki jo morate prilagoditi, ko si zaželite kakšne spremembe.
Sam strankam zaradi tega ne ponujam več predizdelanih predlog, saj je dolgoročno več problemov kot koristi. Prav tako tudi niso omejene z izgledom in delovanjem predloge. Tako za začetek, po pogovoru s stranko, vedno grafično pripravim, kako naj bi vse skupaj izgledalo. Ko je grafični izgled usklajen s stranko, grem v izdelavo unikatne grafične predloge. Samo tako se namreč lahko vso delovanje in vsi prikazi prilagodijo tako, da so narejeni optimalno (avtomatsko prilaganje slik, zakasnelo nalaganje, vgrajene pisave, ...).
Sproti pri delu se vedno spremlja Google Pagespeed insight, ki vam tudi konkretno javi kaj so problemi pri nalaganju strani. In seveda preverite tudi Magento loge, saj ti pogosto javijo kakšno napako, ki se je ne opazi.
V kolikor ne veste kako dobro deluje vaša trgovina jo stestirajte na naslovu https://pagespeed.web.dev/. Sama hitrost delovanja lahko vpliva na vaše obiskovalce in posledično na prodajo in stroške oglaševanja, tako da je to sigurno stvar, ki se je ne sme zanemariti.
Vsebino pripravil:
Anže Voh
Magento certified solution specialist