Prędkość ładowania sklepu internetowego bezpośrednio decyduje o konwersji – sklep ładujący się w 1 sekundę osiąga nawet 2,5× wyższy współczynnik konwersji niż ten ładujący się 5 sekund. Każda sekunda opóźnienia może kosztować nawet 7% sprzedaży, a Google premiuje w rankingu strony spełniające progi Core Web Vitals (LCP poniżej 2,5 s, INP poniżej 200 ms, CLS poniżej 0,1). Ten przewodnik wyjaśnia jak mierzyć, diagnozować i optymalizować prędkość technicznie – od hostingu po konfigurację platform WooCommerce, PrestaShop, Magento, Shoper i IdoSell.
- Dlaczego prędkość ładowania sklepu internetowego decyduje o konwersji i SEO
- Core Web Vitals dla sklepów internetowych – progi LCP, INP i CLS
- Jak mierzyć prędkość sklepu internetowego – narzędzia i interpretacja wyników
- Optymalizacja obrazów produktowych – WebP, AVIF i lazy loading
- Cache w sklepie internetowym – strategie od browser cache do Redis
- Optymalizacja zasobów front-end – minifikacja, JavaScript i CSS
- Hosting i infrastruktura serwera a prędkość sklepu internetowego
- Optymalizacja platform e-commerce – WooCommerce, PrestaShop, Magento, Shoper, IdoSell
- Mobile-first optymalizacja prędkości sklepu
- Monitoring i utrzymanie prędkości sklepu – przed i po sezonach sprzedażowych
- FAQ – najczęstsze pytania o prędkość sklepu internetowego
Dlaczego prędkość ładowania sklepu internetowego decyduje o konwersji i SEO
Prędkość ładowania sklepu internetowego obniża współczynnik konwersji o około 7% za każdą dodatkową sekundę i wpływa na pozycję w Google poprzez Core Web Vitals jako oficjalny sygnał rankingowy od 2021 roku. Dane mPulse Mobile pokazują nieliniowy spadek konwersji wraz ze wzrostem czasu ładowania, a 53% użytkowników mobilnych opuszcza stronę ładującą się dłużej niż 3 sekundy (Think with Google).
| Czas ładowania | Współczynnik konwersji (mPulse) |
|---|---|
| 2,4 s | 1,9% |
| 3,3 s | 1,5% |
| 4,2 s | poniżej 1% |
| 5,7 s i więcej | 0,6% |
Raport Portent z analizy 27 krajów potwierdza, że sklep ładujący się 1 sekundę osiąga 3,05% konwersji, a przy 4 sekundach spada do 0,67% – to różnica ponad 4,5×. Case study Amazona z 2019 roku wykazało, że 1 sekunda opóźnienia kosztuje firmę 1,6 mld USD utraconej sprzedaży rocznie, a Walmart odnotował +2% współczynnika konwersji za każdą sekundę poprawy. Wpływ prędkości ładowania sklepu internetowego nie kończy się na sprzedaży: bounce rate rośnie o 32% przy wzroście czasu ładowania z 1 do 3 sekund, co Google traktuje jako negatywny sygnał behawioralny.
Jak czas ładowania wpływa na współczynnik konwersji – dane benchmarkowe
Zależność między czasem ładowania a współczynnikiem konwersji jest geometryczna, nie liniowa – opóźnienie z 1 s do 5 s nie obniża konwersji 5×, ale właśnie 4,5×. Dla sklepu generującego 1000 zamówień miesięcznie przy średniej wartości koszyka 250 zł, optymalizacja z 4 s do 2 s LCP może zwiększyć przychód o 50-70 tys. zł miesięcznie. Bezpośredni wpływ na abandon cart: każda dodatkowa sekunda na stronie checkout zwiększa porzucenia koszyka o 4-8%.
Prędkość sklepu jako czynnik rankingowy Google
Google ogłosił Page Speed sygnałem rankingowym dla desktop w 2010, Mobile Speed Update w 2018, a w czerwcu 2021 wprowadził Core Web Vitals jako część Page Experience. Wolne strony obniżają crawl budget – Googlebot indeksuje mniej URL-i przy długim TTFB, co dla sklepów z dużymi katalogami (>10 tys. produktów) oznacza opóźnienia w indeksacji nowych pozycji. Mobile-first indexing od 2023 roku oznacza, że Google rankuje wersję mobilną jako primary – to mobilny PSI score i CWV decydują o pozycji w SERP.
Core Web Vitals dla sklepów internetowych – progi LCP, INP i CLS
Core Web Vitals to trzy metryki Google (LCP, INP, CLS) oceniające doświadczenie użytkownika sklepu – każda ma progi „dobry/wymaga poprawy/zły” z bezpośrednim wpływem na ranking. Czwarty istotny wskaźnik TTFB nie należy formalnie do Core Web Vitals, ale jest fundamentem osiągnięcia dobrych wyników LCP.
| Metryka | Dobry | Wymaga poprawy | Zły | Co mierzy w sklepie |
|---|---|---|---|---|
| LCP | <2,5 s | 2,5-4 s | >4 s | Ładowanie głównego zdjęcia produktu |
| INP | <200 ms | 200-500 ms | >500 ms | Responsywność kliknięcia „Dodaj do koszyka” |
| CLS | <0,1 | 0,1-0,25 | >0,25 | Stabilność layoutu przy lazy-loading zdjęć |
| TTFB | <200 ms | <600 ms | >800 ms | Czas odpowiedzi serwera (nie CWV, ale kluczowy) |
W marcu 2024 Google zastąpił FID (First Input Delay) metryką INP (Interaction to Next Paint), która mierzy responsywność wszystkich interakcji w trakcie sesji, a nie tylko pierwszej. Oceny Core Web Vitals widoczne są w Google Search Console w raporcie „Podstawowe wskaźniki internetowe” oraz w danych field z CrUX (Chrome User Experience Report) zbieranych przez 28 dni od realnych użytkowników Chrome. Próg „dobrego” wyniku Core Web Vitals dla sklepu internetowego wymaga, by 75% sesji mieściło się w zielonych progach – to oznacza, że pojedyncze szybkie strony nie wystarczą.
LCP (Largest Contentful Paint) – jak mierzyć i poprawiać
LCP to czas wyrenderowania największego elementu w viewport – w sklepie internetowym najczęściej jest to zdjęcie hero produktu lub baner kategorii. Próg dobrego LCP wynosi poniżej 2,5 s. Optymalizacja: preload elementu LCP (<link rel="preload" as="image">), serwowanie obrazu w WebP lub AVIF, CDN dla statycznych zasobów, redukcja TTFB. Diagnostyka: PageSpeed Insights wskazuje konkretny element jako „LCP element” w zakładce Diagnostyka.
INP (Interaction to Next Paint) – responsywność koszyka i filtrów
INP mierzy opóźnienie między interakcją użytkownika a aktualizacją UI – krytyczne dla sklepu internetowego są kliknięcia filtrów kategorii, „Dodaj do koszyka”, przyciski checkout. Próg dobrego INP wynosi poniżej 200 ms. INP zastąpił FID w marcu 2024, ponieważ FID mierzył tylko pierwszą interakcję. Optymalizacja: code splitting, lazy loading bibliotek JavaScript (Webpack, Vite), eliminacja render-blocking resources, unikanie długich tasków JS (>50 ms).
CLS (Cumulative Layout Shift) – stabilność przy ładowaniu zdjęć produktów
CLS to suma niespodziewanych przesunięć layoutu w trakcie ładowania – próg dobrego CLS wynosi poniżej 0,1. W sklepie internetowym typowe sprawcy: lazy-loaded zdjęcia produktów bez zarezerwowanej przestrzeni, banner cookie wyświetlany po załadowaniu, dynamiczne rekomendacje produktów. Optymalizacja: atrybuty width i height na każdym <img>, CSS aspect-ratio, skeleton screens dla kart produktowych, rezerwacja miejsca dla bannerów.
TTFB (Time to First Byte) – ukryte wąskie gardło serwera
TTFB to czas między żądaniem HTTP a otrzymaniem pierwszego bajtu odpowiedzi – doskonały TTFB wynosi poniżej 200 ms, akceptowalny do 600 ms, problematyczny powyżej 800 ms. Główne przyczyny wysokiego TTFB w sklepach internetowych: shared hosting z noisy neighbour effect, brak object cache Redis, długie zapytania SQL do bazy WooCommerce/PrestaShop. Diagnostyka: zakładka Network w Chrome DevTools pokazuje „Waiting (TTFB)” per zasób, WebPageTest waterfall ma kolumnę dedykowaną TTFB.

Jak mierzyć prędkość sklepu internetowego – narzędzia i interpretacja wyników
Prędkość sklepu internetowego mierzy się narzędziami Google PageSpeed Insights, GTmetrix, WebPageTest i Lighthouse – każde pokazuje inne aspekty wydajności, a różnica między danymi „lab” i „field” jest kluczowa dla diagnozy. Dane laboratoryjne to symulowany pojedynczy test z kontrolowanego środowiska, dane z pola to anonimizowane pomiary realnych użytkowników Chrome (CrUX) z ostatnich 28 dni.
| Narzędzie | Typ danych | Lokalizacja testu | Najlepsze do |
|---|---|---|---|
| PageSpeed Insights | Lab + Field (CrUX) | USA (lab) | Szybki audyt, oficjalne wyniki Google |
| GTmetrix | Lab | Vancouver (free), 22 lokalizacji (paid) | Waterfall analysis, historia |
| WebPageTest | Lab | 40+ lokalizacji (Polska, Niemcy) | Filmstrip, advanced settings, 3G/4G |
| Lighthouse (DevTools) | Lab | Lokalna maszyna | Audyt z poziomu przeglądarki |
| Google Search Console | Field (CrUX) | Realni użytkownicy | Monitoring CWV, podział URL groups |
Wynik PageSpeed Insights 0-100 nie koreluje 1:1 z rankingiem – Google używa danych field z CrUX dla rankingu, a wynik laboratoryjny jest jedynie wskazówką diagnostyczną. Strona z Progressive Web App może mieć 15 punktów w PSI, ale dla użytkownika ładuje się natychmiastowo dzięki service worker. Pomiar prędkości sklepu internetowego wymaga obu typów danych: lab dla diagnozy, field dla rankingu.
Google PageSpeed Insights – co mówi wynik, jak go czytać
PageSpeed Insights podaje osobne wyniki dla mobile i desktop w skali 0-100, gdzie zielony to 90-100, pomarańczowy 50-89, czerwony 0-49. Sekcje raportu: „Field Data” z CrUX (jeśli witryna ma wystarczający ruch), „Lab Data” z Lighthouse (zawsze dostępne), „Opportunities” z konkretnymi sugestiami i „Diagnostics” z technicznymi szczegółami. Mobilny PSI jest priorytetowy – Google używa wersji mobilnej do rankingu (mobile-first indexing), a throttling 4× CPU + 3G symuluje warunki realnego użytkownika smartphone.
GTmetrix i WebPageTest – zaawansowana analiza waterfall
GTmetrix oferuje Performance Score (oparty na Lighthouse) i Structure Score, waterfall timeline z dokładnymi czasami każdego zasobu, testowanie z Vancouver w darmowym planie i 22 lokalizacji w płatnym (od 14,95 USD/mies.). WebPageTest pozwala testować z lokalizacji Polska, Niemcy, Czechy, generuje filmstrip view (klatka po klatce ładowania), umożliwia porównanie 2-9 runs side-by-side i zaawansowane ustawienia: 3G slow, 4G LTE, simulated mobile CPU. Dla sklepów obsługujących klientów z konkretnego kraju test z lokalizacji geograficznie bliskiej jest niezbędny.
Google Search Console (raport CWV) i CrUX – dane realnych użytkowników
Google Search Console w sekcji „Doświadczenie > Podstawowe wskaźniki internetowe” pokazuje agregowane dane field z CrUX dla witryny: podział na mobile/desktop, grupy URL z podobnymi problemami, trend 90 dni. CrUX zbiera dane z Chrome (>50% rynku przeglądarek), próg 75% sesji w zielonej strefie definiuje „dobry” wynik dla URL. Dla sklepów internetowych raport pozwala filtrować strony produktowe (/produkt/), kategorii (/kategoria/) i checkout – każda sekcja może wymagać innej optymalizacji.
Lighthouse – audyt wydajności w DevTools
Lighthouse w Chrome DevTools (zakładka Lighthouse) pozwala wykonać audyt lokalnie bez wysyłania URL do Google – przydatne dla stron za autentykacją lub środowisk staging. Audyt Performance generuje score 0-100, sześć metryk (FCP, LCP, TBT, CLS, Speed Index, TTI) oraz Opportunities i Diagnostics z konkretnymi rekomendacjami. Tryb Mobile stosuje throttling 4× slowdown CPU + Slow 4G (1,6 Mbps download), Desktop bez throttling. Lighthouse jest też dostępny jako CLI (npx lighthouse URL) i CI integration dla GitHub Actions.
Optymalizacja obrazów produktowych – WebP, AVIF i lazy loading
Obrazy stanowią zazwyczaj 60-70% wagi strony produktowej sklepu internetowego – konwersja do WebP/AVIF, kompresja i lazy loading to najszybciej zwracające się optymalizacje skracające czas ładowania o 40-60%. Cel rozmiaru pojedynczego obrazu produktowego: poniżej 200 KB dla zdjęcia hero, poniżej 50 KB dla miniatury w siatce kategorii.
| Format | Kompresja vs JPEG | Wsparcie przeglądarek (2026) | Zastosowanie |
|---|---|---|---|
| JPEG | Baseline | 100% | Fallback dla starych urządzeń |
| WebP | -25% do -34% | 95%+ | Standard dla sklepów 2026 |
| AVIF | -50% vs JPEG | 90%+ | Premium quality, lepsze zdjęcia produktowe |
| PNG | +30% vs JPEG | 100% | Logo, ikony z przezroczystością |
Optymalizacja obrazów produktowych w sklepie internetowym wymaga trzech kroków: kompresji (lossy/lossless), konwersji do nowoczesnych formatów (WebP, AVIF) oraz strategii ładowania (lazy loading, srcset). Dla sklepu z 5000 produktów × 5 zdjęć/produkt = 25 000 obrazów, manualna optymalizacja jest niemożliwa – automatyzacja przez moduł CMS lub CDN z transformacją on-the-fly jest standardem.
Konwersja do WebP i AVIF – narzędzia i automatyzacja
WebP ma wsparcie 95%+ przeglądarek (od Safari 14, iOS 14), AVIF osiągnął 90%+ w 2025 roku – oba formaty można serwować z fallback do JPEG przez tag <picture>. Narzędzia konwersji: Squoosh (online, drag&drop), cwebp CLI (Google), Sharp (Node.js, batch), ImageMagick. Automatyzacja przez CDN: Cloudflare Polish (auto-WebP/AVIF), Cloudinary (f_auto), imgix, Bunny.net Optimizer. WooCommerce wtyczki: Imagify (5GB/mies. free), ShortPixel (100 obrazów free), EWWW Image Optimizer. PrestaShop: moduły WebP w Module Marketplace.
Lazy loading dla galerii produktowych i stron kategorii
Native HTML5 lazy loading (<img loading="lazy">) ma wsparcie 95%+ przeglądarek od 2020 roku – przeglądarka opóźnia ładowanie obrazów poza viewport do momentu zbliżenia się do nich. Krytyczna zasada: NIE stosować lazy loading do elementu LCP (zdjęcie hero w pierwszym viewport) – opóźni to LCP o 200-500 ms. Dla zaawansowanych przypadków (parallax, infinite scroll) używaj IntersectionObserver API. WooCommerce ma natywne lazy loading od WordPress 5.5, PrestaShop 1.7+ wspiera natywnie. Efekt na stronie kategorii z 100 miniaturami: skrócenie TTI o 1-3 s.
Responsive images i srcset – serwowanie odpowiednich rozmiarów
Atrybuty srcset i sizes informują przeglądarkę, który rozmiar obrazu pobrać dla danego viewport – błąd serwowania obrazu 2000 px na telefon 375 px to 80% zmarnowanego transferu. WordPress generuje automatycznie 5 rozmiarów (thumbnail, medium, medium_large, large, full) i wstawia poprawny srcset. PrestaShop ma generator miniatur w panelu admina (Konfiguracja > Obrazy). CDN z transformacją on-the-fly (Cloudinary w_400,f_auto,q_auto) eliminuje konieczność manualnego generowania – parametry URL definiują rozmiar i format.
Cache w sklepie internetowym – strategie od browser cache do Redis
Cache w sklepie internetowym działa na kilku poziomach od pamięci przeglądarki po Redis i Varnish Cache – prawidłowa hierarchia cache może skrócić TTFB z 800 ms do poniżej 100 ms. Wyzwanie e-commerce: dynamiczne treści (koszyk, zalogowany użytkownik, ceny promocyjne) wymagają strategii cache invalidation, która nie podawałaby zalogowanemu użytkownikowi A koszyka użytkownika B.
| Poziom cache | Lokalizacja | Czas trwania | Co cachuje |
|---|---|---|---|
| Browser cache | Przeglądarka | Dni-rok | CSS, JS, obrazy, fonts |
| CDN cache | Edge serwery | Minuty-godziny | Statyczne zasoby, HTML public |
| Full Page Cache | Serwer (Varnish/Nginx) | Minuty-godziny | Strony anonimowe |
| Object cache | RAM serwera (Redis) | Minuty-dni | Wyniki SQL, sesje |
| OPcache | RAM serwera (PHP) | Per restart | Skompilowany bytecode PHP |
Hierarchia cache w sklepie internetowym powinna być warstwowa: każde żądanie HTTP najpierw trafia do CDN (cache hit = brak obciążenia origin), następnie do Full Page Cache (cache hit = brak PHP), potem do Object Cache (cache hit = brak SQL), na końcu do bazy danych. Cache invalidation musi działać przy: aktualizacji produktu, zmianie ceny, dodaniu zamówienia, edycji zawartości CMS.
Browser cache – co i na jak długo cachować
Browser cache kontroluje się nagłówkami Cache-Control i Expires – statyczne zasoby (CSS, JS, obrazy, fonts) powinny mieć max-age=31536000 (1 rok) z content hashing w nazwie pliku (style.a4f9e2.css) dla cache busting przy aktualizacji. HTML stron sklepu: max-age=0, no-cache lub krótkie wartości (5-60 min) z s-maxage dla CDN. Konfiguracja: .htaccess (Apache mod_expires), nginx.conf (expires 1y;). Weryfikacja w DevTools > Network > Response Headers.
Object cache: Redis i Memcached dla platform e-commerce
Object cache przechowuje wyniki zapytań PHP/SQL w pamięci RAM, eliminując powtórne odpytywanie bazy danych – Redis vs Memcached: Redis jest persystentny, obsługuje złożone struktury danych (lists, sets, hashes) i jest standardem dla nowoczesnego e-commerce. WooCommerce: plugin „Redis Object Cache” Till Krüssa (darmowy, 1M+ instalacji). PrestaShop: konfiguracja Memcached/Redis w Zaawansowane > Wydajność. Magento 2: natywne wsparcie Redis dla session storage i default cache. Efekt wdrożenia: TTFB redukcja o 50-80%.
Full Page Cache – Varnish dla Magento i dynamiczne treści
Full Page Cache (FPC) cachuje gotową odpowiedź HTML, eliminując PHP rendering – Varnish Cache to reverse proxy oficjalnie wspierany przez Magento 2 jako rekomendowany FPC. Mechanizm „hole punching” przez ESI (Edge Side Includes) wyłącza dynamiczne fragmenty (mini-koszyk, dane zalogowanego użytkownika) z cache, podczas gdy reszta strony jest serwowana z Varnish. Dla WooCommerce/PrestaShop alternatywą jest Nginx FastCGI Cache lub WP Rocket. Wdrożenie Varnish skraca TTFB do 30-50 ms dla cached pages.
CDN – Content Delivery Network i gdy go potrzebujesz
CDN (Content Delivery Network) to rozproszona sieć serwerów brzegowych (PoP) blisko użytkownika końcowego – cachują statyczne zasoby (obrazy, CSS, JS) i serwują z najbliższej lokalizacji. Kiedy CDN ma sens: sklep obsługuje >1 kraj, duży udział obrazów, sezonowe peaki ruchu. Dostawcy: Cloudflare (darmowy plan, 300+ PoP, automatyczny WebP/Brotli), Bunny.net (pay-per-use od 0,01 USD/GB), KeyCDN, AWS CloudFront. CDN nie zastąpi wolnego origin TTFB – cache statycznych zasobów nie pomaga, jeśli sam HTML generuje się 2 sekundy.
Optymalizacja zasobów front-end – minifikacja, JavaScript i CSS
Nieoptymalizowany JavaScript blokuje renderowanie sklepu internetowego – minifikacja, defer/async i usunięcie zbędnych skryptów third-party mogą poprawić LCP o 0,5-2 sekundy. Ścieżka krytyczna renderowania: przeglądarka parsuje HTML, napotyka <link> CSS (blokuje render), napotyka <script> (blokuje parsing) – każdy blokujący zasób opóźnia first paint o 50-500 ms.
| Optymalizacja | Średni efekt | Trudność wdrożenia |
|---|---|---|
| Minifikacja CSS/JS | -20-30% rozmiaru | Niska (wtyczki) |
| Brotli compression | -15-25% transferu | Niska (konfig serwera) |
| Defer/async JS | -200-800 ms LCP | Średnia (audyt) |
| Critical CSS inline | -300-700 ms FCP | Wysoka (build process) |
| Usunięcie third-party | -500-2000 ms TBT | Średnia (decyzja biznesowa) |
Optymalizacja front-end sklepu internetowego wymaga audytu: ile bajtów JS jest niewykorzystanych (DevTools Coverage tab pokazuje zazwyczaj 50-70%), które skrypty third-party są render-blocking, które style CSS są krytyczne dla above-the-fold. Cel: rozmiar HTML <100 KB, CSS <50 KB, JS <300 KB (skompresowane).
Minifikacja i łączenie plików CSS/JS
Minifikacja usuwa whitespace, komentarze, skraca nazwy zmiennych – narzędzia: Terser (JS), CSSNano, HTMLMinifier. Łączenie plików redukuje liczbę żądań HTTP, ale w erze HTTP/2 ma mniejsze znaczenie (multiplexing). WooCommerce: WP Rocket (49 USD/rok, automatyczna minifikacja + cache + CDN), Autoptimize (darmowy). PrestaShop: Back Office > Zaawansowane > Wydajność > CCC (Combine, Compress and Cache). Magento 2: bin/magento setup:static-content:deploy -f w trybie produkcyjnym, włącz minify w config.xml.
Critical CSS i render-blocking resources
Critical CSS to inline style dla above-the-fold treści w <head> – reszta CSS ładowana asynchronicznie przez rel="preload". Identyfikacja w PageSpeed Insights: „Eliminate render-blocking resources”. Narzędzia generujące critical CSS: Critical (npm package), Penthouse, automatyzacja w buildzie Webpack/Vite. Async loading reszty CSS: <link rel="preload" href="style.css" as="style" onload="this.rel='stylesheet'">. Efekt: redukcja FCP o 300-700 ms.
Skrypty zewnętrzne (third-party) – audyt i defer/async
Skrypty zewnętrzne są największym źródłem render-blocking resources w sklepach internetowych – typowi sprawcy: Facebook Pixel, Google Tag Manager (gdy zawiera 20+ tagów), Hotjar, LiveChat, chatboty, narzędzia A/B testing. Audyt: Ghostery rozszerzenie pokazuje wszystkie trackery, Coverage tab w DevTools wskazuje % nieużywanego JS. Techniki: defer (parsowanie po DOM), async (asynchronicznie, kolejność niezdefiniowana), facade pattern (placeholder zamiast widget, ładuje się po kliknięciu – np. YouTube embed). Efekt audytu: typowo 500-2000 ms oszczędności.
Kompresja Brotli i Gzip
Gzip to standard od 1990s kompresujący tekst (HTML, CSS, JS) o około 70%, Brotli to nowszy algorytm Google dający dodatkowe 15-30% kompresji vs Gzip – wymaga HTTPS. Konfiguracja Nginx: brotli on; brotli_comp_level 6; brotli_types text/css application/javascript;. Apache: mod_brotli z BrotliCompressionQuality 6. Cloudflare automatycznie aplikuje Brotli dla proxowanych zasobów. Weryfikacja: curl -I -H "Accept-Encoding: br" https://sklep.pl powinno zwrócić content-encoding: br.
Hosting i infrastruktura serwera a prędkość sklepu internetowego
Hosting to fundament prędkości sklepu internetowego – migracja ze shared hostingu na VPS może sama w sobie skrócić TTFB z 800 ms do poniżej 200 ms bez żadnych zmian w kodzie. Wybór hostingu wpływa na wszystkie pozostałe optymalizacje: object cache wymaga dedykowanego RAM, Varnish wymaga dostępu root, PHP 8.2 wymaga konfigurowalnej wersji.
| Typ hostingu | TTFB (typowy) | Cena/mies. | Dla jakiego sklepu |
|---|---|---|---|
| Shared hosting | 600-2000 ms | 10-50 zł | Startup <1000 zamówień/mies. |
| VPS (Hetzner, OVH) | 100-300 ms | 50-200 zł | Sklep 1000-50 000 zamówień |
| Serwer dedykowany | 50-150 ms | 300-1000 zł | Duży sklep, >50 000 zamówień |
| Chmura (AWS, GCP) | 50-200 ms | Zmienne | Enterprise, elastyczność |
Hosting dla sklepu internetowego musi spełniać minimum techniczne: PHP 8.1+ z OPcache, PHP-FPM process manager, MySQL 8.0+ lub MariaDB 10.6+, dyski SSD NVMe (nie HDD ani SATA SSD), HTTP/2 lub HTTP/3, Brotli compression, dostęp do konfiguracji Nginx/Apache. Decyzja o hostingu powinna poprzedzać optymalizacje front-end – wolny serwer sprawia, że kompresja obrazów daje minimalną poprawę.
Shared hosting vs. VPS vs. serwer dedykowany – porównanie dla e-commerce
Shared hosting dzieli zasoby CPU/RAM między setki klientów – „noisy neighbour” effect oznacza, że sąsiad uruchamiający backup w południe spowalnia twój sklep. VPS (Virtual Private Server) ma dedykowane vCPU i RAM, pełną kontrolę nad konfiguracją: Hetzner Cloud (od 4,5 EUR/mies. za 2 vCPU + 4GB RAM), OVH VPS, DigitalOcean Droplet. Serwer dedykowany ma sens przy >50 000 wizyt/dzień (>1500 zamówień/mies.). Chmura (Hetzner Cloud, AWS) oferuje elastyczny scaling – autoscaling przed Black Friday +200% mocy, redukcja po sezonie.
Lokalizacja serwera i latencja – wpływ na TTFB
Latencja sieciowa to czas propagacji sygnału – około 1 ms na 200 km. Sklep dla polskich klientów: serwer w Polsce (OVH Warszawa, Beyond.pl Poznań) lub Niemczech (Hetzner Frankfurt) daje latencję 5-20 ms. Serwer w US-East dodaje 100-150 ms latencji do TTFB dla każdego polskiego użytkownika. Test lokalizacji: WebPageTest z Berlin/Warsaw vs. Virginia, porównanie TTFB. CDN cachuje statyczne zasoby blisko użytkownika, ale nie eliminuje latencji do origin dla dynamicznego HTML – to jest kluczowy bottleneck dla SaaS sklepów hostowanych za oceanem.
PHP 8.x – dlaczego wersja PHP ma znaczenie
PHP 8.2 jest 2-3× szybszy niż PHP 7.4 dla typowych workloadów WooCommerce (testy Kinsta z 2023). OPcache kompiluje PHP do bytecode i przechowuje w pamięci – bez OPcache każde żądanie wymaga ponownego parsowania plików PHP. PHP-FPM (FastCGI Process Manager) zarządza pulą procesów workerów – pool z 20 workerami obsługuje 20 jednoczesnych żądań. Sprawdzenie wersji: php -v w SSH, w cPanel/Plesk panel administracyjny. Wymagania platform: WooCommerce 8.x wymaga PHP 8.0+, Magento 2.4.6+ wymaga PHP 8.2.
Baza danych – optymalizacja MySQL i indeksy dla dużych katalogów
Optymalizacja bazy danych w sklepie internetowym z dużym katalogiem (>10 tys. produktów) wymaga indeksów na często filtrowanych kolumnach: product_id, category_id, sku, stock_status. EXPLAIN przed SELECT identyfikuje full table scan (type=ALL = problem). Defragmentacja tabel: OPTIMIZE TABLE wp_posts;. WooCommerce: WP-Optimize plugin czyści wersje postów, transient cache, expired sessions. PrestaShop: wyłącz logowanie SQL (_PS_DEBUG_SQL_=false) na produkcji. Magento 2: partial reindex w cron (bin/magento indexer:reindex) zamiast full reindex co godzinę.
Optymalizacja platform e-commerce – WooCommerce, PrestaShop, Magento, Shoper, IdoSell
Każda platforma e-commerce ma specyficzne wąskie gardła – WooCommerce potrzebuje object cache Redis i PHP 8.2, PrestaShop wymaga Smarty cache i optymalizacji SQL, a Magento 2 wymaga stosu Varnish + Redis dla osiągnięcia LCP poniżej 2,5 s. Optymalizacja prędkości sklepu internetowego per platforma wymaga znajomości jej architektury cache i typowych pluginów wydajnościowych.
| Platforma | Średni czas ładowania | Kluczowe wyzwania | Stack rekomendowany |
|---|---|---|---|
| WooCommerce | 3,0-3,5 s | Nadmiar wtyczek, wolna baza WordPress | Redis Object Cache, PHP 8.2, WP Rocket |
| PrestaShop | 2,8-3,2 s | Nadmiar modułów, niezoptymalizowane SQL | Smarty cache (fs), CCC, MySQL indeksy |
| Magento 2 | 3,5-4,0 s | Złożona architektura, ciężkie JS | Varnish + Redis + PHP-FPM 8.2 |
| Shoper | 2,0-2,5 s | Ograniczone możliwości backendu (SaaS) | Optymalizacja obrazów, min. skryptów |
| IdoSell | 2,0-2,5 s | Ograniczone możliwości konfiguracji | Optymalizacja obrazów, IAI Cache |
Wybór platformy e-commerce determinuje sufit prędkości – SaaS (Shoper, IdoSell) ma niski sufit konfiguracji, ale dobrą bazę „out of the box”. Self-hosted (WooCommerce, PrestaShop, Magento) wymaga kompetencji DevOps, ale pozwala osiągnąć LCP poniżej 1,5 s przy odpowiednim stacku.
WooCommerce – wybór hostingu, object cache, konfiguracja wtyczek
WooCommerce wymaga managed hostingu (Kinsta, SiteGround) lub VPS z minimum 2 vCPU + 4 GB RAM dla sklepu z 1000+ zamówień/miesiąc. Stack rekomendowany: PHP 8.2 + OPcache (64 MB+), Redis Object Cache (plugin Till Krüss), WP Rocket (49 USD/rok) lub LiteSpeed Cache (darmowy, wymaga LSWS). Audyt wtyczek przez Query Monitor – każda wtyczka dodaje 5-50 ms TTFB, sklep z 50 wtyczkami = 500-2500 ms tylko z PHP. Czyszczenie: WP-Optimize usuwa wersje postów, expired transients, spam komentarze. Wymaganie: limit 30-40 wtyczek, audyt co 6 miesięcy.
PrestaShop – Smarty cache, kompresja zasobów, optymalizacja SQL
PrestaShop w panelu Back Office > Zaawansowane > Wydajność oferuje natywne narzędzia: Smarty cache w trybie „file system” (nie APC), CCC (Combine, Compress and Cache) dla CSS i JS, kompresja Apache/Nginx. Tryb deweloperski (_PS_MODE_DEV_=true) MUSI być wyłączony na produkcji – dodaje 200-500 ms per request. Moduły: wyłączenie nieużywanych w Module Manager, audyt poprzez stopwatch w trybie debug. SQL: indeksy na id_product, id_category, reference. Object cache: moduły Memcached/Redis w PrestaShop Addons Marketplace. Optymalizacja prędkości PrestaShop redukuje TTFB z 1500 ms do 300 ms.
Magento 2 – Varnish, Redis, Full Page Cache, optymalizacja indeksacji
Magento 2 wymaga production stack: Varnish 7.x jako Full Page Cache, Redis dla session storage i default cache, Nginx + PHP-FPM 8.2 + OPcache 256 MB. Konfiguracja w app/etc/env.php: cache > frontend > default > backend = Cgi\Redis i session > save = redis. Deployment produkcyjny: bin/magento deploy:mode:set production, bin/magento setup:di:compile, bin/magento setup:static-content:deploy -f pl_PL en_US. Reindeksacja: cron z partial index (bin/magento indexer:set-mode schedule), nie full reindex. Magento Cloud (Adobe Commerce on Cloud) ma wbudowane Varnish + Redis + Fastly CDN.
Shoper i IdoSell – możliwości optymalizacji w SaaS
Shoper i IdoSell to SaaS – hosting i cache zarządzane przez platformę, brak dostępu do serwera. Optymalizacja prędkości sklepu internetowego ogranicza się do warstwy contentu i frontendu: przesyłanie obrazów już skompresowanych do WebP (platforma akceptuje), minimalizacja skryptów zewnętrznych (Google Tag Manager max 3-5 tagów), wyłączenie nieużywanych bloków/widgetów w szablonie. Shoper: Panel admina > Konfiguracja > Wydajność. IdoSell: konfiguracja IAI Cache, optymalizacja feedów produktowych, lazy loading w szablonie. Sufit SaaS: LCP około 2-2,5 s przy dobrej konfiguracji – lepsze wyniki wymagają migracji na self-hosted.
Mobile-first optymalizacja prędkości sklepu
76% Polaków kupuje przez telefon, a 53% opuszcza sklep mobilny ładujący się ponad 3 sekundy – wynik mobilny w PSI jest priorytetowy, bo Google indeksuje wersję mobilną jako główną. Mobile-first optymalizacja prędkości sklepu wymaga testowania w realistycznych warunkach (3G slow, 4× CPU throttling), a nie tylko na 1 Gbps Wi-Fi z desktop CPU.
| Wskaźnik mobilny | Wartość | Źródło |
|---|---|---|
| Udział m-commerce w PL | 76% | Trusted Shops 2024 |
| Bounce rate przy >3 s | 53% | Think with Google |
| Wzrost CR przy +1 s szybciej | +27% | Deloitte Milliseconds Make Millions |
| Spadek bounce przy +1 s szybciej | -36% | Deloitte 2020 |
| Mobile-first indexing | Od 2023 |
Mobile-first oznacza priorytet mobilnego LCP/INP/CLS w Google Search Console nad desktop, mobile PSI score jako wyznacznik problemów oraz testowanie na realnych urządzeniach. Throttling w DevTools symuluje, ale nie odwzorowuje thermal throttling telefonu po 5 minutach intensywnego użycia.
Statystyki i mobile-first indexing
Mobile-first indexing Google używa wersji mobilnej witryny do crawlowania, indeksowania i rankingu – od lipca 2024 wszystkie strony są indeksowane mobile-first (transformacja zakończona). PSI mobile stosuje throttling: 4× CPU slowdown (symulacja Moto G4), Slow 4G (1,6 Mbps download, 750 Kbps upload, 150 ms RTT). Dane Trusted Shops 2024: 76% polskich e-shopperów kupuje przez smartphone, 22% przez desktop, 2% tablet. Dane Deloitte „Milliseconds Make Millions”: strony +1 s szybciej generują +27% konwersji i -36% bounce rate.
Testowanie na realnych urządzeniach vs. DevTools
Throttling DevTools to symulacja – nie odwzorowuje thermal throttling, baterii, limitów GPU. Realne testy: BrowserStack (real device cloud, 2000+ urządzeń), WebPageTest z wyborem Moto G4 lub Pixel 3a, własny smartphone na 4G LTE (nie domowe Wi-Fi). Różnice mogą wynosić 30-100% w LCP – obserwowano sklepy z PSI mobile 85, ale realnym LCP 4 s na 2-letnim Samsung Galaxy A. Google Search Console w raporcie CWV pokazuje field data z realnych użytkowników mobilnych, podzielone na URL groups – to ostateczny wskaźnik, nie wynik laboratoryjny.
Monitoring i utrzymanie prędkości sklepu – przed i po sezonach sprzedażowych
Prędkość sklepu internetowego degraduje się po każdej aktualizacji wtyczki, nowym module czy kampanii marketingowej – stały monitoring z alertami i load test przed Black Friday są niezbędne. Średnio sklep WooCommerce po 12 miesiącach bez audytu ma o 30-50% wolniejszy TTFB niż w dniu wdrożenia (kumulacja transients, wersji postów, nowych wtyczek).
| Metoda monitoringu | Typ danych | Częstotliwość | Narzędzia |
|---|---|---|---|
| RUM (Real User Monitoring) | Field | Ciągły | CrUX, SpeedCurve, Datadog |
| Synthetic monitoring | Lab | Co 5-60 min | UptimeRobot, GTmetrix Monitoring |
| Manual audyt | Lab | Tygodniowo/miesięcznie | PSI, Lighthouse |
| Load testing | Lab | Przed peak | k6, JMeter, Gatling |
| GSC CWV report | Field | Tygodniowo | Google Search Console |
Monitoring prędkości sklepu internetowego to dwie warstwy: ciągły (RUM dla problemów u realnych użytkowników) i okresowy (synthetic + load testing przed peakami). Alerty powinny włączać się przy: LCP >2,5 s dla >10% sesji, TTFB >800 ms przez >5 min, error rate >1%.
Ciągłe monitorowanie – alerty i Real User Monitoring (RUM)
Real User Monitoring zbiera dane od realnych użytkowników przez JavaScript snippet – CrUX (darmowe, dane z Chrome), SpeedCurve (od 30 USD/mies., dashboard CWV), Datadog RUM, New Relic Browser. RUM pokazuje 75-percentyl LCP per kraj, urządzenie, typ strony – krytyczne dla zidentyfikowania, że strona checkout ma LCP 4 s na iPhone, podczas gdy strona główna ma 1,5 s. Alerty Slack/email przy degradacji: SpeedCurve, Datadog, Calibre. Google Search Console cotygodniowy przegląd raportu Core Web Vitals – bezpłatny i wystarczający dla 90% sklepów.
Load testing przed Black Friday i wyprzedażami sezonowymi
Load testing symuluje wzmożony ruch przed sezonami sprzedażowymi – k6 (open-source, JavaScript) jest standardem dla scenariuszy e-commerce, alternatywy: Apache JMeter (Java GUI), Gatling (Scala). Scenariusz dla sklepu: 500-2000 concurrent users, czas trwania 15 min, ścieżka strona główna -> kategoria -> produkt -> dodaj do koszyka -> checkout. Metryki: TTFB pod obciążeniem, p95 response time (95% requestów <1 s), error rate (cel <1%). Cel: brak degradacji >20% vs normalny ruch. Timing: minimum 4 tygodnie przed Black Friday – czas na naprawę wąskich gardeł (skalowanie hostingu, optymalizacja DB queries).
FAQ – najczęstsze pytania o prędkość sklepu internetowego
Jak przyspieszyć ładowanie stron internetowych?
Najpierw zmierz wynik w PageSpeed Insights i zidentyfikuj największy problem – zazwyczaj są to nieskompresowane obrazy lub render-blocking skrypty zewnętrzne. Następnie wdróż cache (browser cache + object cache Redis), skompresuj obrazy do WebP/AVIF i włącz lazy loading dla obrazów poza viewport.
Jaka jest dobra prędkość witryny?
Sklep internetowy powinien ładować się poniżej 2-3 sekund. Google rekomenduje LCP poniżej 2,5 s jako próg „dobrego” wyniku Core Web Vitals – sklep z LCP poniżej 2 s ma przewagę konkurencyjną w SERP i konwersji.
Jak sprawdzić prędkość ładowania strony?
Użyj Google PageSpeed Insights (wpisz URL w pagespeed.web.dev), GTmetrix lub WebPageTest. PSI jest darmowy i pokazuje wyniki dla mobile i desktop wraz z konkretnymi rekomendacjami w sekcjach Opportunities i Diagnostics.
Od jakiej mocy jest szybkie ładowanie?
W kontekście LCP: poniżej 2,5 s to „dobry” wynik wg Google. Poniżej 2 s dla sklepu internetowego oznacza przewagę konkurencyjną – większość sklepów w Polsce mieści się w przedziale 2,5-4 s na mobile.
Ile sekund powinien ładować się sklep internetowy?
Cel to LCP poniżej 2 s, akceptowalny próg to 2,5 s. Powyżej 3 s sklep traci 53% użytkowników mobilnych (Think with Google), a Google obniża pozycję w rankingu przez sygnał Core Web Vitals.
Co to jest LCP, INP i CLS?
To trzy wskaźniki Core Web Vitals: LCP (Largest Contentful Paint) mierzy czas ładowania głównej treści, INP (Interaction to Next Paint) mierzy responsywność kliknięć, CLS (Cumulative Layout Shift) mierzy stabilność layoutu podczas ładowania. Progi „dobre”: LCP <2,5 s, INP <200 ms, CLS <0,1.
Czy wynik PageSpeed Insights wpływa na ranking Google?
Nie bezpośrednio – Google używa danych field z CrUX (realni użytkownicy Chrome), nie laboratoryjnego wyniku PSI. Wysoki wynik PSI zwykle koreluje z dobrymi Core Web Vitals, ale ostateczna ocena dla rankingu pochodzi z 28-dniowych danych realnych użytkowników w Google Search Console.
Jak cache wpływa na prędkość sklepu WooCommerce?
Object cache Redis może skrócić TTFB o 50-80% przez cachowanie wyników zapytań SQL w pamięci RAM. WP Rocket lub LiteSpeed Cache automatyzują konfigurację Full Page Cache + browser cache + minifikacji CSS/JS bez znajomości serwera.
Czy CDN przyspiesza sklep internetowy?
Tak, dla statycznych zasobów (obrazy, CSS, JS) – Cloudflare, Bunny.net czy KeyCDN serwują pliki z serwera brzegowego najbliższego użytkownikowi. CDN nie przyspieszy wolnego TTFB serwera origin – jeśli dynamiczny HTML generuje się 2 s, CDN tylko cachuje statykę.
Jaki hosting wybrać dla sklepu internetowego?
VPS (Hetzner Cloud od 4,5 EUR/mies., OVH VPS) to minimum dla sklepów z regularnym ruchem 1000+ zamówień/miesiąc. Shared hosting powoduje nieprzewidywalny TTFB (600-2000 ms) przez „noisy neighbour” effect i nie pozwala na konfigurację Redis/Varnish.
Dlaczego sklep ładuje się wolno na mobile?
Najczęstsze przyczyny: wolna sieć komórkowa (3G/4G ma RTT 50-200 ms vs Wi-Fi 5-10 ms), throttling CPU telefonu (4× wolniejszy od desktop), zbyt duże obrazy (brak srcset), zbyt wiele skryptów JavaScript blokujących renderowanie. Mobile-first optymalizacja wymaga testów na realnych urządzeniach przez WebPageTest lub BrowserStack.