Przejdź do treści
Wydajność

Wolny WooCommerce - jak przyspieszyć sklep?

Sklep zwalnia inaczej niż zwykła strona. Połowa ruchu ma koszyk albo sesję, a te widoki nie korzystają z pamięci podręcznej strony, więc każde wejście generuje się od nowa. Dlatego przy WooCommerce nie wystarczy włączyć cache i skompresować zdjęcia. Wąskim gardłem jest zwykle baza danych i to, ile pracy wykonuje serwer przy każdym wyświetleniu listy produktów.

Dlaczego sklep jest trudniejszy niż zwykła strona?

ElementStrona firmowaSklep WooCommerce
Cache stronydziała niemal wszędzieomija koszyk, kasę i panel klienta
Liczba wpisów w baziesetkidziesiątki tysięcy z wariantami
Zapytania na jedno wyświetleniekilkanaścieczęsto kilkaset
Sesje użytkownikówbrakkażdy klient z koszykiem ma własną
Zadania w tlepojedynczesynchronizacje, e-maile, kursy walut

Konsekwencja jest praktyczna: w sklepie liczy się wydajność serwera i bazy, a nie tylko waga strony. Optymalizacja skopiowana z poradnika dla witryny firmowej daje tam połowiczne efekty.

Baza danych: najczęstsze wąskie gardło

WooCommerce trzyma dane produktów, zamówień i sesji w kilku tabelach, które rosną szybciej, niż ktokolwiek zauważa.

Największym problemem bywa tabela z danymi tymczasowymi. Wtyczki zapisują tam wyniki, które miały wygasnąć, a nie wygasają. Przy sklepie działającym od dwóch lat potrafi ważyć więcej niż wszystkie produkty razem wzięte.

Druga sprawa to sesje klientów i porzucone koszyki. Trzecia to logi wtyczek, które zapisują każde zdarzenie i nigdy nie sprzątają.

Przy diagnozie wolnego sklepu zaczynamy od rozmiaru tabel, nie od PageSpeed. Kilka razy okazywało się, że cała optymalizacja polegała na usunięciu logów wtyczki, o której klient dawno zapomniał.
Krzysztof Czapnik, KC Mobile

Cache w sklepie: co można, a czego nie

Cache strony obejmuje to, co dla wszystkich wygląda tak samo: stronę główną, listy kategorii, karty produktów, wpisy na blogu. To zwykle większość ruchu z wyszukiwarki.

Poza pamięcią podręczną zostają koszyk, kasa, panel klienta, wyniki wyszukiwania i strona podziękowania za zamówienie. Te muszą być świeże i tam decyduje wydajność serwera.

Rozwiązaniem dla tej drugiej grupy jest cache obiektów, czyli zapisywanie wyników zapytań do bazy. Wymaga wsparcia serwera, najczęściej Redisa. Według ofert popularnych hostingów pakiety za 20-30 zł miesięcznie zwykle go nie mają, więc przy sklepie z ruchem to argument za mocniejszym pakietem.

Konfigurację warstw opisujemy w poradniku cache w WordPress. W sklepie najważniejsze są wykluczenia, bo błąd w nich oznacza, że klient widzi cudzy koszyk.

Listy produktów, filtry i wyszukiwarka

Lista kategorii z filtrowaniem to najcięższy widok w typowym sklepie. Każdy filtr generuje zapytanie po atrybutach, a te przy dużym katalogu bywają kosztowne.

Trzy rzeczy dają najwięcej:

  • ograniczenie liczby produktów na stronie do rozsądnej wartości zamiast pokazywania całej kategorii naraz
  • rezygnacja z liczników przy filtrach, które przy każdym wejściu przeliczają liczbę produktów w każdym wariancie
  • zamiana domyślnej wyszukiwarki na rozwiązanie z własnym indeksem, jeśli klienci faktycznie z niej korzystają

Sprawdź też miniatury na listach. Jeśli kafelek o boku 200 pikseli pobiera pełnowymiarowe zdjęcie produktowe, dwadzieścia kafelków oznacza kilkanaście megabajtów na jedno wejście. Szerzej piszemy o tym w poradniku optymalizacja zdjęć.

Wtyczki i integracje w sklepie

Sklep ma zwykle dwa razy więcej wtyczek niż strona firmowa i każda integracja dokłada zapytania albo zadania w tle.

Największe koszty generują wtyczki odpytujące zewnętrzne usługi przy wyświetlaniu strony: kursy walut, stany magazynowe, terminy dostawy, rekomendacje. Jeśli zewnętrzny serwis odpowiada wolno, Twoja karta produktu czeka razem z nim.

Rozwiązaniem jest przeniesienie takich zapytań do zadań cyklicznych i zapisywanie wyniku, zamiast pytania na żywo przy każdym wyświetleniu.

Osobna kategoria to wtyczki dublujące funkcje, na przykład dwa systemy rabatów albo dwie integracje wysyłkowe. Rozkładamy to w poradniku za dużo wtyczek WordPress.

Zadania w tle, które spowalniają sklep

WooCommerce wykonuje wiele operacji w tle: wysyłkę e-maili, synchronizację stanów, przeliczanie raportów, czyszczenie sesji. Domyślnie uruchamia je ruch odwiedzających, co oznacza, że ktoś zawsze płaci za nie czekaniem.

Standardowe rozwiązanie to wyłączenie mechanizmu opartego na ruchu i zastąpienie go prawdziwym zadaniem cyklicznym po stronie serwera. Wtedy operacje wykonują się według harmonogramu, a nie przy losowym kliencie.

Sprawdź też kolejkę zadań. Przy sklepie z integracjami potrafi rosnąć szybciej, niż jest przetwarzana, a wtedy każde kolejne wejście dokłada pracy zamiast ją zdejmować. Narastająca kolejka jest jednym z częstszych powodów, dla których sklep zwalnia stopniowo przez kilka tygodni, bez żadnej pojedynczej zmiany, którą dałoby się wskazać jako przyczynę.

Przy dużych katalogach warto ograniczyć raporty i statystyki generowane na bieżąco. Przeliczanie sprzedaży za ostatnie dwa lata przy każdym otwarciu panelu to typowa przyczyna wolnej administracji.

Kasa i płatności: tam wolno kosztuje najwięcej

Opóźnienie na stronie głównej denerwuje, opóźnienie w kasie kosztuje. Klient jest tam najbliżej decyzji i jednocześnie najbardziej wyczulony na to, czy sklep działa sprawnie.

Kasa jest wykluczona z pamięci podręcznej, więc każde wejście to praca serwera. Dochodzą do tego zapytania do zewnętrznych usług: kalkulacja kosztów dostawy, sprawdzenie punktów odbioru, walidacja kodu rabatowego. Jeśli którakolwiek odpowiada wolno, klient czeka razem z nią.

Praktyczne minimum to trzy rzeczy: ustawienie krótkiego limitu oczekiwania na odpowiedzi zewnętrznych usług, zapisywanie ich wyników zamiast pytania przy każdym kroku oraz ograniczenie liczby pól formularza do tych, których naprawdę potrzebujesz.

Zmierz ścieżkę zakupu osobno, w oknie prywatnym, z produktem w koszyku. Wynik PageSpeed dla strony głównej nie mówi nic o tym, jak zachowuje się kasa.

Ile kosztuje optymalizacja sklepu?

Według naszego cennika podstawowa optymalizacja sklepu, obejmująca bazę, cache i obrazy, to 1500-3000 zł. Dane z większych wdrożeń, z audytem kodu i infrastruktury, pokazują 3000-8000 zł. Sklepy z rozbudowanymi integracjami wyceniamy indywidualnie.

Różnica względem strony firmowej wynika z zakresu: dochodzi analiza zapytań, zadań w tle i integracji, a każda zmiana musi zostać sprawdzona na całej ścieżce zakupu.

Bezpłatną wstępną analizę robimy w ciągu 24 godzin. Zwykle wystarcza, żeby powiedzieć, czy problemem jest baza, serwer, czy po prostu dwadzieścia wtyczek robiących to samo.

Kolejność, która działa przy sklepie

1. Zmierz czas odpowiedzi osobno dla strony głównej, karty produktu i koszyka
2. Sprawdź rozmiary tabel i wyczyść dane tymczasowe oraz logi wtyczek
3. Włącz cache strony z poprawnymi wykluczeniami i przetestuj zakup
4. Dołóż cache obiektów, jeśli serwer to obsługuje
5. Popraw miniatury na listach i zdjęcia na kartach produktów
6. Przenieś zapytania do zewnętrznych usług do zadań cyklicznych
7. Dopiero teraz rozważ mocniejszy serwer

Po każdym kroku przejdź pełną ścieżkę zakupu. W sklepie optymalizacja, która przyspieszyła stronę główną i zepsuła kasę, jest stratą, a nie zyskiem.

Robimy to jednorazowo albo w ramach stałej opieki nad stroną WordPress. Napisz przez formularz na stronie kontakt, a zaczniemy od bezpłatnej analizy.

Korzyści

  • Zaczynamy od bazy i zapytań, bo w sklepie to one są wąskim gardłem, nie waga strony
  • Cache z wykluczeniami dla koszyka i kasy, przetestowany na pełnej ścieżce zakupu
  • Zapytania do zewnętrznych usług przenosimy do zadań cyklicznych
  • Bezpłatna wstępna analiza w ciągu 24 godzin

Najczęściej zadawane pytania

Ile kosztuje optymalizacja WooCommerce?
Podstawowa, obejmująca bazę, cache i obrazy, to 1500-3000 zł. Kompleksowa, z audytem kodu i infrastruktury, 3000-8000 zł. Sklepy z niestandardowymi integracjami wyceniamy indywidualnie po przeglądzie.
Dlaczego cache nie przyspiesza mojego sklepu?
Bo koszyk, kasa i panel klienta są z niego wykluczone i muszą być generowane za każdym razem. Jeśli znaczna część ruchu ma sesję, zysk z cache strony jest ograniczony i trzeba sięgnąć po cache obiektów oraz wydajniejszy serwer.
Sklep działa szybko, ale panel administracyjny wolno. Dlaczego?
Panel nie korzysta z cache i dodatkowo przelicza raporty sprzedaży. Przy dużej liczbie zamówień warto ograniczyć zakres statystyk generowanych na bieżąco i sprawdzić kolejkę zadań w tle.
Czy warto usunąć nieużywane warianty produktów?
Tak, przy dużych katalogach ma to wymierne znaczenie. Każdy wariant to osobne wpisy w bazie i dodatkowa praca przy filtrowaniu. Porządek w katalogu bywa szybszym zyskiem niż zmiana serwera.
Czy przejście na mocniejszy hosting rozwiąże problem?
Pomoże tam, gdzie wąskim gardłem jest serwer, czyli w koszyku i panelu. Nie naprawi natomiast zapytań do zewnętrznych usług przy każdym wyświetleniu ani pełnowymiarowych zdjęć w miniaturach. Kolejność ma znaczenie, bo hosting kosztuje co miesiąc.
Sklep zwalnia tylko w kampaniach i w szczycie sezonu. Co z tym zrobić?
To sygnał, że limity konta hostingowego kończą się przy większym ruchu, a nie że sklep jest źle napisany. Przed kampanią warto sprawdzić, ile jednoczesnych procesów obsłuży pakiet, i rozważyć czasowe przejście na mocniejszy. Sam cache tu nie wystarczy, bo znaczna część ruchu ma koszyk i omija pamięć podręczną.
Ile trwa optymalizacja sklepu?
Podstawowa zwykle 2-3 dni, kompleksowa tydzień lub więcej, bo każda zmiana wymaga sprawdzenia całej ścieżki zakupu. Największy skok widać zwykle po uporządkowaniu bazy i poprawnym wdrożeniu cache.
Bezpłatna wycena