Dlaczego WooCommerce działa wolno z natury?
Zwykły blog WordPress można w całości serwować z cache, serwer generuje stronę raz i podaje gotowy plik HTML tysiącom odwiedzających. WooCommerce ma trudniejsze zadanie: koszyk, ceny po rabacie i stany magazynowe muszą być dynamiczne. Każda strona produktu, kategoria czy koszyk mogą wymagać dziesiątek zapytań do bazy danych.
Do tego dochodzi kilka typowych winowajców, które widzę u klientów najczęściej:
- Cart fragments AJAX, WooCommerce domyślnie wysyła żądanie AJAX do
/wp-admin/admin-ajax.phpprzy każdym wejściu na stronę, żeby odświeżyć mini-koszyk. Nawet gdy odwiedzający nie jest zalogowany i ma pusty koszyk. To potrafi generować setki zbędnych zapytań dziennie i blokować cache całej strony. - Rozrośnięta tabela
wp_options, wtyczki zapisują dane w opcjach zautoload = yes. WordPress ładuje je przy każdym żądaniu. Jeśli autoload urósł do kilku megabajtów, każde zapytanie zaczyna się od kosztownego odczytu pamięci. - Ciężkie lub zduplikowane wtyczki, wtyczki do płatności, wysyłki, recenzji, programów lojalnościowych, każda dodaje hooki, skrypty i zapytania SQL. Dwadzieścia aktywnych wtyczek na przeciętnym hostingu współdzielonym to duże obciążenie.
- Brak cache obiektowego, bez Redis lub Memcached WordPress odpytuje bazę danych przy każdym zapytaniu, nawet gdy wynik był już obliczony chwilę wcześniej.
- Słaby hosting, na hostingu współdzielonym z limitem pamięci PHP
256 MBi wolnym dyskiem HDD sklep będzie wolny niezależnie od optymalizacji.
Diagnoza, skąd wiedzieć, co zwalnia sklep?
Zanim zaczniesz cokolwiek zmieniać, zmierz aktualny stan. Używam do tego dwóch narzędzi:
- Query Monitor, wtyczka, którą instaluję na czas diagnozy. Pokazuje liczbę zapytań SQL przy jednym ładowaniu strony (jeśli widzisz ponad 50–80 zapytań, to już sygnał alarmowy), czas ich wykonania i które wtyczki je generują. Widać też zapytania blokujące renderowanie i błędy PHP.
- Google PageSpeed Insights lub GTmetrix, sprawdzam metryki frontendowe: LCP, TTFB (czas do pierwszego bajtu, jeśli przekracza 600 ms, problem jest po stronie serwera), rozmiar strony i nieoptymalne zasoby.
Po diagnozie mam czarno na białym, od czego zacząć.
Rozwiązania, co faktycznie przyspiesza WooCommerce
1. Cache strony i object cache Redis
Cache strony to podstawa. Na hostingach z LiteSpeed (np. Cyber_Folks, Zenbox) wystarczy wtyczka LiteSpeed Cache, ma dedykowaną integrację z WooCommerce i potrafi cache'ować nawet strony dla zalogowanych użytkowników. Na Apache/Nginx polecam WP Rocket. Oba rozwiązania mają opcję wykluczenia koszyka i strony kasy z cache, co jest niezbędne.
Object cache Redis dodaje warstwę pamięci RAM między WordPressem a bazą danych. Zamiast wykonywać to samo zapytanie SQL dziesięć razy, wynik jest pobierany z pamięci w ułamku milisekundy. Na hostingach home.pl, LH.pl i Zenbox Redis jest dostępny w panelu, wystarczy włączyć i zainstalować wtyczkę Redis Object Cache.
2. Wyłączenie cart fragments AJAX
To jedna z najszybszych poprawek. Jeśli nie używasz mini-koszyka w nagłówku strony, możesz całkowicie wyłączyć cart fragments jedną linijką w functions.php swojego motywu lub wtyczki site-specific:
add_action( 'wp_enqueue_scripts', function() {
wp_dequeue_script( 'wc-cart-fragments' );
}, 11 );
Po tej zmianie strona główna i kategorie mogą być w pełni serwowane z cache, a TTFB spada nawet o połowę.
3. Optymalizacja bazy danych, autoload i rewizje
Sprawdź, ile danych jest ładowanych przez autoload. W phpMyAdmin lub przez WP-CLI możesz uruchomić:
SELECT SUM(LENGTH(option_value)) / 1024 / 1024 AS mb
FROM wp_options
WHERE autoload = 'yes';
Jeśli wynik przekracza 1–2 MB, masz problem. Pełny poradnik o tym, co usunąć i jak bezpiecznie zmienić opcje autoload, znajdziesz w artykule Optymalizacja bazy danych WordPress. Usuń też stare rewizje wpisów, transients i dane osierocone przez odinstalowane wtyczki, WP-Optimize lub Advanced DB Cleaner robią to automatycznie.
4. Audyt i ograniczenie wtyczek
Każda aktywna wtyczka to kod ładowany przy każdym żądaniu, nawet na stronach, gdzie ta wtyczka nic nie robi. Przejdź przez listę aktywnych wtyczek i odpowiedz na pytanie: czy ta wtyczka jest naprawdę potrzebna? Często okazuje się, że kilka wtyczek dubluje funkcje (np. dwie wtyczki SEO, dwa systemy cache, wtyczka do backup nieużywana od roku).
Query Monitor pokaże, które wtyczki generują najwięcej zapytań SQL, to od nich zacznij.
5. Obrazy i CDN
Ciężkie zdjęcia produktów to częsty problem. Zadbaj o konwersję do formatu WebP (ShortPixel, Imagify lub wbudowane funkcje LiteSpeed Cache) i włącz lazy loading. CDN, Cloudflare w darmowym planie, zredukuje czas odpowiedzi dla użytkowników z różnych lokalizacji i zdejmie część obciążenia z serwera.
Jeśli potrzebujesz kompleksowej pomocy, sprawdź moją usługę optymalizacji prędkości WordPress, diagnozuję sklep, wdrażam poprawki i mierzę efekt.
Wpływ na konwersję
Badania branżowe konsekwentnie pokazują, że sklep ładujący się powyżej 3 sekund traci znaczną część odwiedzających jeszcze przed zobaczeniem produktu. W e-commerce każde 100 ms opóźnienia ma przełożenie na wskaźnik dodania do koszyka. Optymalizacja szybkości to nie kosmetyka, to bezpośrednia inwestycja w przychód.
Kiedy lepiej zadzwonić do specjalisty
Jeśli po przeczytaniu tego poradnika nadal nie wiesz, co zwalnia Twój sklep, TTFB przekracza 1 sekundę mimo włączonego cache, albo boisz się ruszać bazę danych i pliki konfiguracyjne, zadzwoń do mnie. Zdiagnozuję sklep, powiem co i w jakiej kolejności naprawić, i wdrożę zmiany bez ryzyka przestoju. Skontaktuj się pod numer 577 020 415, reakcja w ciągu godziny, bezpłatna wycena, a pomoc w ramach naprawy WooCommerce rozliczam co 15 minut.