Spis treści
WooCommerce działa na WordPressie, a WordPress to PHP + MySQL. To nie jest problem sam w sobie — problem zaczyna się, gdy nikt nie optymalizuje tego stacku pod e-commerce z setkami produktów i tysiącami sesji dziennie.
Diagnoza: co właściwie jest wolne?
Zanim zaczniesz optymalizować, musisz wiedzieć, co jest wąskim gardłem. W 90% przypadków to jedno z trzech:
- TTFB (Time to First Byte) > 800ms — problem serwerowy. Hosting współdzielony, brak object cache, ciężkie zapytania SQL.
- LCP (Largest Contentful Paint) > 2.5s — problem frontendowy. Niezoptymalizowane obrazy, render-blocking CSS/JS, brak lazy loading.
- TBT (Total Blocking Time) > 300ms — za dużo JavaScriptu. Typowy winowajca: 15 pluginów, każdy ładuje swój JS na każdej podstronie.
Info
Narzędzia diagnostyczne: Chrome DevTools → Performance tab, WebPageTest.org (wybierz lokalizację EU), Query Monitor plugin (pokazuje wolne zapytania SQL bezpośrednio w WP admin).
Hosting: shared nie wystarczy
Hosting za 15 zł/mies. to OK na bloga z 500 wizytami. Dla sklepu WooCommerce z 200+ produktami i ruchem powyżej 1000 sesji/dzień to recepta na 4-sekundowy TTFB. Minimum, które rekomendujemy:
- VPS z min. 2 vCPU, 4 GB RAM, NVMe SSD
- PHP 8.2+ z OPcache (validate_timestamps=0 na produkcji)
- MySQL 8 lub MariaDB 10.6+ z odpowiednim innodb_buffer_pool_size (70% dostępnej RAM)
- Redis jako object cache (plugin Redis Object Cache)
- Nginx zamiast Apache (lub przynajmniej Nginx jako reverse proxy)
Object cache: najbardziej niedoceniana optymalizacja
WordPress domyślnie zapisuje transients w bazie danych. Przy każdym page load WooCommerce wykonuje 50–200 zapytań SQL. Redis lub Memcached przenosi te dane do RAM — efekt to spadek TTFB z 800ms do 150–200ms.
php
// wp-config.php
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
Frontend: obrazy i JS
Dwie zmiany, które dają 80% efektu:
- Konwersja obrazów do WebP/AVIF — plugin ShortPixel lub Imagify. Średnia redukcja rozmiaru: 60–75%.
- Eliminacja render-blocking JS — użyj Perfmatters lub Asset CleanUp, żeby wyłączyć ładowanie skryptów pluginów na stronach, gdzie nie są potrzebne. Przykład: skrypt Contact Form 7 nie musi się ładować na stronie produktu.
CDN i page cache
Cloudflare Free + plugin WP Super Cache (lub W3 Total Cache) to minimum. Dla WooCommerce ważne jest poprawne wykluczenie stron dynamicznych z cache:
text
Strony do wykluczenia z page cache:
/cart/*
/checkout/*
/my-account/*
Każda strona z cookie woocommerce_items_in_cart
Tip
Cloudflare APO (5$/mies.) cache’uje nawet dynamiczny HTML na edge. Dla WooCommerce wymaga dodatkowej konfiguracji, ale potrafi zbić TTFB do 50–100ms dla stron katalogowych.
Efekt końcowy
Po wdrożeniu tych zmian typowy sklep WooCommerce przechodzi z 4s do 1.2–1.8s na LCP (mobile, 4G). To nie magia — to po prostu prawidłowo skonfigurowany stack. Każdy dzień zwłoki to utracone zamówienia.






