Ubrzanje WooCommerce prodavnice: keš, fragmenti korpe, slike, dodaci i hosting
WooCommerce prodavnica ima korpu, naplatu i naloge kupaca, pa se ne može ubrzati na isti način kao obični sajt. Objašnjavamo šta sme u keš, kako smanjiti AJAX zahteve i gde su najčešća uska grla.
Sadržaj članka
Ubrzanje WooCommerce prodavnice je drugačiji posao od ubrzanja običnog WordPress sajta. Prezentacioni sajt može gotovo ceo da se kešira, dok prodavnica ima korpu, nalog kupca, naplatu i cene koje zavise od zaliha i akcija – delove koji moraju da budu „živi“ za svakog kupca. Zato opšti saveti tipa „instalirajte keš dodatak“ ovde nisu dovoljni, a ponekad i prave štetu. U ovom tekstu prolazimo kroz najčešće uzroke sporosti WooCommerce prodavnice i konkretne korake: od fragmenata korpe i pravila keširanja, preko slika i dodataka, do hostinga.
Zašto je WooCommerce sporiji od običnog sajta
WooCommerce radi na WordPress-u, pa nasleđuje sve njegove prednosti i slabosti, ali dodaje i sopstveno opterećenje:
- Više upita ka bazi – proizvodi, varijacije, cene, zalihe, porudžbine i sesije kupaca čuvaju se u bazi i čitaju pri svakom učitavanju dinamičnih stranica.
- Delovi koji se ne smeju keširati – korpa, naplata i „moj nalog“ razlikuju se za svakog kupca.
- AJAX zahtevi – brojač korpe, mini korpa i filteri često šalju dodatne zahteve serveru.
- Mnogo dodataka – plaćanje, dostava, filteri, recenzije, liste želja, marketinški pikseli. Svaki dodaje kod, a neki i upite ka bazi na svakoj stranici.
- Velike slike proizvoda – galerije sa više fotografija po proizvodu brzo povećavaju težinu stranice.
Osnove ubrzanja WordPress-a smo opisali u tekstu kako ubrzati WordPress sajt. Ovde se fokusiramo na ono što je specifično za prodavnice.
Izmerite pre nego što menjate
Bez merenja ne znate da li je problem u serveru, temi, dodacima ili slikama. Pre bilo kakve izmene zabeležite početno stanje:
- Testirajte više tipova stranica – početnu, kategoriju, stranicu proizvoda, korpu i naplatu. Prodavnica često ima brzu početnu, a sporu kategoriju sa filterima.
- Pogledajte vreme odziva servera (TTFB). Ako server sporo odgovara i za jednostavne stranice, problem je verovatno u hostingu ili bazi, a ne u slikama.
- Proverite Core Web Vitals za mobilne uređaje, jer većina kupaca dolazi sa telefona. Značenje metrika objašnjavamo u tekstu Core Web Vitals objašnjeno jednostavno.
Keširanje: šta sme, a šta ne sme u keš
Keširanje stranica je najveći pojedinačni dobitak u brzini, ali u prodavnici mora da se podesi pažljivo. Loše podešen keš može da prikaže jednom kupcu tuđu korpu ili staru cenu.
| Stranica | Keširanje stranice | Napomena |
|---|---|---|
| Početna, kategorije, proizvodi | Da | keš se briše kada se promeni cena ili zaliha |
| Blog i informativne stranice | Da | najlakši deo za keširanje |
| Korpa | Ne | sadržaj je različit za svakog kupca |
| Naplata (checkout) | Ne | sadrži lične podatke i sigurnosne tokene |
| Moj nalog | Ne | porudžbine i adrese ulogovanog kupca |
| Ulogovani korisnici | Obično ne | ili zaseban keš po korisniku, ako to alat podržava |
Većina ozbiljnih keš dodataka i serverskih keš rešenja prepoznaje WooCommerce i automatski isključuje korpu, naplatu i nalog. Ipak, uvek proverite ručno: dodajte proizvod u korpu u jednom pregledaču, pa otvorite sajt u drugom (ili u privatnom prozoru) i uverite se da korpa nije „prešla“.
Pored keša stranica, veliku razliku pravi i objektni keš (Redis ili Memcached), koji čuva rezultate upita ka bazi u memoriji. On pomaže upravo tamo gde keš stranica ne može – u korpi, naplati i administraciji. Da li je dostupan, zavisi od hostinga.
Fragmenti korpe i AJAX zahtevi
WooCommerce koristi takozvane fragmente korpe (cart fragments) da bi brojač i mini korpa u zaglavlju bili ažurni i na keširanim stranicama. Tehnički, to je AJAX zahtev koji se šalje serveru i koji se ne može keširati. Na prodavnicama sa mnogo posetilaca i slabijim serverom, taj zahtev ume da bude jedan od najsporijih na stranici.
Novije verzije WooCommerce-a su ovo delimično ublažile, ali mnoge teme i dodaci i dalje učitavaju fragmente na svakoj stranici. Opcije koje imate:
- učitavati fragmente samo kada korpa nije prazna ili samo na stranicama gde se mini korpa zaista prikazuje;
- zameniti mini korpu jednostavnom ikonicom koja vodi na stranicu korpe;
- proveriti da li tema ili dodatak za filtere šalju dodatne AJAX zahteve koje možete isključiti.
Svaku izmenu testirajte: dodavanje u korpu, promenu količine i brisanje proizvoda, na telefonu i računaru. Brža prodavnica u kojoj brojač korpe pokazuje pogrešan broj nije poboljšanje.
Slike proizvoda, tema i dodaci
Slike su najčešći razlog teških stranica kategorija. Nekoliko pravila:
- otpremajte fotografije u razumnoj rezoluciji, a ne direktno sa fotoaparata;
- koristite moderne formate poput WebP i odloženo učitavanje slika ispod prve vidljive površine – detaljnije u tekstu optimizacija slika za sajt;
- proverite da tema koristi odgovarajuće veličine sličica za kategorije, a ne originalne slike umanjene CSS-om;
- ne učitavajte automatski zum, slajder i galeriju tamo gde se ne koriste.
Tema može da bude glavni krivac. Višenamenske teme sa ugrađenim page builderom često učitavaju skripte i stilove za desetine funkcija koje prodavnica ne koristi.
Dodaci se vremenom nagomilaju. Prođite kroz listu i za svaki postavite pitanje da li se zaista koristi i da li postoji lakša alternativa. Posebno obratite pažnju na dodatke za filtere, preporuke proizvoda, pop-up prozore i društvene mreže. Opšte savete o izboru dodataka imamo u tekstu WordPress dodaci: saveti i greške.
Baza podataka i hosting
Prodavnica koja radi godinama nakuplja istekle sesije, privremene podatke (transients), revizije i zapise dodataka koji više nisu instalirani. Povremeno čišćenje baze, uz prethodni bekap, može da smanji vreme odziva na dinamičnim stranicama. Proverite i da li je uključeno HPOS skladištenje porudžbina, koje WooCommerce preporučuje za nove prodavnice, i da li su vaši dodaci kompatibilni sa njim.
Na kraju, hosting postavlja gornju granicu brzine. Deljeni hosting sa ograničenim resursima može da bude dovoljan za malu prodavnicu, ali kada broj proizvoda i posetilaca raste, obično su potrebni:
- aktuelna verzija PHP-a i dovoljno memorije;
- serverski keš i podrška za objektni keš;
- dovoljno procesorskih resursa za istovremene kupce, posebno tokom akcija;
- server blizu vaših kupaca ili CDN za statične fajlove.
Više o izboru imamo u tekstu koji hosting izabrati. Svaku veću izmenu – promenu teme, keša ili hostinga – prvo isprobajte na staging kopiji, a ne na živoj prodavnici.
Zaključak
Brza WooCommerce prodavnica nastaje kombinacijom više stvari: pravilno podešenog keša koji ne dira korpu i naplatu, kontrolisanih AJAX zahteva, optimizovanih slika, lagane teme, razumnog broja dodataka i hostinga koji može da izdrži saobraćaj. Počnite merenjem, menjajte jednu stvar po jednu i posle svake izmene testirajte kupovinu od početka do kraja. Ako želite da pogledamo zašto je vaša prodavnica spora i šta bi dalo najveći efekat, pošaljite nam upit za besplatnu analizu i ponudu.
Česta pitanja
Da li smem da keširam stranicu korpe i naplate?
Ne. Korpa, naplata i stranica naloga razlikuju se za svakog kupca i moraju biti isključene iz keša stranica. Većina keš rešenja to radi automatski, ali uvek proverite ručno iz dva različita pregledača.
Šta su WooCommerce fragmenti korpe?
To je AJAX zahtev koji ažurira brojač i mini korpu u zaglavlju i na keširanim stranicama. Ne može se keširati, pa na slabijem serveru ume da uspori sajt. Može se ograničiti ili zameniti jednostavnijim rešenjem.
Koliko dodataka je previše za WooCommerce?
Ne postoji tačan broj. Važnije je koliko je svaki dodatak težak i da li se koristi. Jedan loše napisan dodatak može da uspori prodavnicu više nego deset lakih.
Da li mi je potreban jači hosting za prodavnicu?
Za manju prodavnicu kvalitetan deljeni hosting može biti dovoljan. Kada raste broj proizvoda i istovremenih kupaca, posebno tokom akcija, obično se isplati prelazak na jači paket sa objektnim kešom i više resursa.
#WooCommerce#brzina sajta#keširanje#web shop#hosting