Te is tapasztaltad, hogy a WooCommerce bővítményre épülő oldal lassú? Nehézkesen vagy hiányosan töltődnek be a termékek? A vásárlóid panaszkodnak, hogy keservesen hosszadalmas a termékek közötti keresés? A VPS-edben már minden létező erőforrást megnöveltél, de ez csak egy hajszálnyi javulást hozott?
A MAXER-nél is üzemelnek ilyen weboldalak és az oldal tulajdonosai, készítői nálunk keresik a megoldást a problémára. Amit szolgáltatóként tudunk tenni, azt meg is tesszük, de tapasztalatunk szerint ezen nem sokat segít az erőforrás növelés. A probléma ugyanis sokkal mélyebben gyökerezik és teljes mértékben kívül esik a tárhely szolgáltató felelősségén.
Kérlek ne ugorj rögtön a “hogyan gyorsíthatom be az oldalt” szekcióra, hanem olvasd végig az egész cikket. Csak így fogod megérteni a WooCommerce hiányosságaiból eredő problémákat, amik az oldal lassulását okozzák.
- Mi az a WooCommerce?
- Hogyan működik egy webáruház adatbázisa?
- Hogyan működik a WooCommerce adatbázis?
- Miért lassul le a WooCommerce oldal?
- Hogyan gyorsíthatom be a WooCommerce oldalamat?
- Konklúzió
Mi az a WooCommerce?
A WooCommerce egy WordPress bővítmény, aminek a segítségével könnyen és gyorsan webáruházat készíthetsz. Népszerűségének az egyik oka, hogy nyílt forráskódú, tehát nagy mértékben testreszabható. Emellett olyan további funkciókat is biztosít, mint pl. biztonságos fizetés és szállítási lehetőségek integrálására.

Egy kezdő felhasználó is könnyen telepíti, ráadásul az integrációja kiváló SEO-t nyújt webáruházak számára. Természetesen a legkiemelkedőbb tulajdonsága, hogy ingyenes. Nem csoda, hogy sokan a WooCommerce-t választják pl. a Shopify helyett, amikor elkezdik építeni a saját webshopjukat.
Hogyan működik egy webáruház adatbázisa?
A webáruházak általában sokkal nagyobb adatbázist használnak, akár több százezer vagy milliós rekorddal (más néven sorral), mint egy átlagos informatív jellegű weboldal. Minden egyes művelet a webáruházban egy lekérdezést generál az adatbázisban, legyen az termék keresés, kosárba rakás vagy megrendelés, stb.
Sok múlik azon, hogy mekkora látogatószámot produkál az oldal. Mekkora a látogató elkötelezettsége, például mennyire járja be a weboldalt, mennyi oldalt tölt le. Az egy oldalon behivatkozott képek mérete és száma is befolyásolhatja az oldal kiszolgálás sebességét.
A végső felhasználói élményhez nagyban hozzájárul a weboldal dizájnjának komplexitása (böngésző rendering) is. Hiába trendi, de az összélményt ronthatja, ha a weboldal tele van interaktív elemekkel, animációkkal és túlzottan sok JavaScript és CSS definícióval. Ezek szintén lassítják az oldal kiszolgálását.
Normál esetben egy jól átgondolt és felépített adatbázis nem okozhat oldal lassulást. Egy ilyen adatbázissal rendelkezű kisebb vagy közepes méretű webáruház gond nélkül fut bármelyik VPS csomagunkban. Sőt nem is kell hozzá kifejezetten nagy méretű VPS vagy gyakori skálázás.
A gond akkor van, ha az adatbázis felépítése nem megfelelő. Például felesleges rekordokat hoz létre minden egyes lekérdezésnél.
Hogyan működik a WooCommerce adatbázis?
Az, hogy egy idő után lassú egy WooCommerce oldal, elsősorban a WooCommerce adatbázis hiányosságának köszönhető.
A WooCommerce alapértelmezetten a WordPress adatbázis tábláit és custom (egyedi) táblákat is használ az adatok tárolására.
Nem használ viszont dedikált táblát a vásárlói adatok tárolására. Ezek az adatok különböző adatbázis táblákban vannak szétszórva, éppen ezért nehéz őket megtalálni és kinyerni.
A WooCoomerce kétféle felhasználói adatot tárol:
- Megrendelés alapú vásárlói adatok: Amint egy megrendelés generálódik a webáruházadban, a WooCommerce rögtön eltárolja a vásárlói adatokat. A vásárlói adatot a megrendeléssel együtt megőrzi, akár regisztrált a vásárló a webáruházadban, akár nem.
- WordPress felhasználói adatok: Az oldaladat látogató WordPress felhasználók adatai közül azokét tárolja, akik regisztráltak a WooCommerce oldaladon. Ezek olyan alapvető adatok, mint az email cím, a regisztráció napja, szállítási és fizetési adatok. A WordPress ezeket az adatokat a gyorsabb vásárlási folyamat miatt használja.

Miért lassul le a WooCommerce oldal?
Ennek több oka is van, de a legnagyobb hiba a WooCommerce adatbázis felépítésében van.
Vásárlói adatok tárolása a WooCommerce oldalon
Először is a már korábban említett vásárlói adat tárolásának problémája miatt. A vásárlói adatok nem egy dedikált táblában, hanem több különböző táblában vannak tárolva. A vásárlói adatok növekedésével megnő a bennük történő keresési idő is, ami lassulást okoz.
Túl sok tábla a WooCommercben
Amikor egy friss WooCommerce verziót telepítesz a WordPress oldaladra, akkor a bővítmény sok adatbázis táblát telepít a WordPress adatbázisodba. Akár olyanokat is, amiket nem fogsz használni a webáruházadban. Önmagában ez még nem probléma, mert ha egy táblát nem használsz, az nem okozza az oldal lassulását, igaz?
Sok felesleges bejegyzés képződik egy táblában
A WooCommerce legalább 40 meta bejegyzést készít minden egyes megrendelés után. Ez plusz 40 rekord (azaz sor) a táblában megrendelésenként. Ahogy a termékpaletta nő és a webáruházat egyre többen látogatják, arányosan nő a megrendelések száma is.
Számoljuk ki, hogy ha egy nap 10 megrendelést adnak le, az 400 plusz rekord a táblában. Egy hónap alatt napi 10 megrendeléssel számolva az 12000 plusz rekord.
Magyarán, ahogy a megrendelések száma nő a webáruházban, úgy nő a táblák mérete az adatbázisodban is. Ennek következménye, hogy a lekérdezések lelassulnak és egyre hosszab ideig tart az oldal betöltése is.
Hogyan gyorsíthatom be a WooCommerce oldalamat?
Több custom (egyedi) tábla használata segíthet a problémán. Maga a WooCommerce év elején bejelentette, hogy 2022 harmadik negyedévében új custom táblákkal jön ki. Ezzel változtatnak a skálázás menetén, egyszerűsítenek a táblákon és növelik a megbízhatóságot.
Skálázhatóság: Az új custom tábláknak köszönhetően a webáruházaknak nem lesz szükségük extra bővítményekre és szoftverekre a skálázáshoz. Ezt dedikált custom táblák bevezetésével szeretnék elérni. Így a táblák tiszták maradnak és könnyebben kezelhetőek.
Egyszerűség: Könnyebb és egyszerűbb adat elérés és kinyerés a WooCommerce táblákból a WordPress tábláktól függetlenül.
Megbízhatóság: Az új custom táblák azt is könnyebbé teszik, hogy visszaállíts célzott biztonsági mentési adatokat. Mindezek felett egyszerűbb lesz beállítani az olvasási/írási zárolásokat.
A custom tábláknak köszönhetően tehát megszűnik a megrendeléskent létrejövő plusz 40 rekord a táblákban. (Valójában a plusz 40 bejegyzésnek nem 40 rekordként, vagyis sorként kellene létrejönnie a táblán belül, hanem 40 mezőként.)
További megoldások, amiket te tehetsz az oldal gyorsulásáért
Rengeteg – főleg angol nyelvű – cikk taglalja, hogy mivel lehet felgyorsítani a WooCommerce webáruházat.

Cachelés
A cachelés növelheti a WooCommerce webáruház teljesítményét. A böngésző cachelésnek köszönhetően néhány fájl közvetlenül a felhasználó böngészőjében tárolódik. Ezzel csökken a szerverek irányába történő lekérdezések száma, amikor az oldal betöltődik.
Arra viszont ügyelj, hogy bizonyos oldalakat, mint a jelszó visszaállítás, ki kell zárni a cachelésből. Ha ezek az oldalak cachelődnek, akkor a felhasználó nem tudja visszaállítani a jelszavát. Ez pedig extra support forgalmat generál neked.
Ha komoly fejlesztési változtatásokat hajtottál végre, akkor szerver szinten is ellenőrizd a cache beállításokat.
Rendszeres frissítés
Szinte minden WordPress guru kiemelei a rendszeres frissítést. A WordPress mellett a bővítmények, témák és egyéb kiegészítők is legyenek frissek. A frissítéseket érdemes nem rögtön az élő oldalon végigcsinálni, hanem fejlesztői környezetben. Ha szükséges, kérd szakember segítségét.
Fizetés feldolgozással kapcsolatos hibák
Ellenőrizd a payment gateway (magyarul fizetési kapu) kapcsolatot és konfigurációt.
Figyelj arra, hogy az SSL cert megfelelően legyen konfigurálva az oldaladon. Ha nincs SSL telepítve a weboldalara, akkor a payment processor (azaz fizetés feldolgozó) szoftverek nem fognak működni.
Kerüld el az autentikációs problémákat is. Ilyen probléma akkor keletkezhet, ha hiba van a webshopod és payment gateway közötti kapcsolatban.
Alapvetően minden megrendelés “processing” vagyis “folyamatban” státuszt kap, ha megtörtént a fizetés és csökken az áru mennyiség. Az oldal készítőjének vagy adminisztrátorának kell “completed” vagyis “teljesült” állapotra állítani a megrendelést. Ezzel kivédve a megrendeléssel kapcsolatos vásárlói support üzeneteket.
Email értesítéssel kapcsolatos hibák
Van, hogy a vásárló nem kap visszaigazoló emailt a megrendelésről és előfordul, hogy a webáruházhoz nem érkezik meg az értesítés a rendelésről. Ellenőrizd az értesítés beállításokat a WordPress irányítópultján a WooCommerce alatt az Email fülre kattintva.
Adatbázis túlterhelés
A megrendelés során képződő extra 40 bejegyzés mellett akadnak más adatbázis túlterhelést okozó problémák. Bizonyos bővítmények extra adatokkal túlterhelhetik az adatbázist. Például egy auditing bővítmény minden a weboldalon történő aktivitást logol. Ez nagyon hasznos lehet hibaelhárításnál, de túl nagy logot kreál. Érdemes beállítani, hogy egy bizonyos idő után automatikusan törlődjenek ezek az adatok.
Konklúzió
Akármennyire is népszerű a WooCommerce, talán azoknak a megállapítása lehet igaz, akik szerint alkalmatlan nagyobb webshopok működtetésére.
Ráadásul mindaddig lassú marad egy WooCommerce oldal, amíg maguk a WooCommerce fejlesztői nem javítják az adatbázis strukturális hiányosságait.
Tehát a labda most a WooCommerce oldalán pattog és kíváncsian várjuk, hogy a custom tábláik meghozzák-e az ígért javulást.
Felhasznált cikkek: