
Optymalizacja PrestaShop: jak zwiększyć wydajność sklepu
Klient otwiera stronę produktu. Czeka. Kółko ładowania kręci się sekundę, dwie, trzy. Zdjęcie pojawia się piksel po pikselu, a baner promocyjny u góry doładowuje się z opóźnieniem i przesuwa cały układ strony kilka centymetrów w dół. Klient nie czeka dłużej. Zamyka kartę i wraca do wyników wyszukiwania, gdzie z otwartymi ramionami czeka na niego konkurencja z szybciej działającym sklepem. Taki scenariusz rozgrywa się codziennie w wielu sklepach na PrestaShop, zwykle bez wiedzy właściciela. Sklep „jakoś działa”, sprzedaż napływa, więc temat wydajności trafia na koniec listy priorytetów, gdzieś za nowymi funkcjami i kampaniami marketingowymi. Tymczasem optymalizacja PrestaShop to jeden z niewielu obszarów e-commerce, w którym poprawa nie wymaga zmiany oferty ani cen, a mimo to potrafi bezpośrednio przełożyć się na przychód.
W tym artykule pokazujemy, co realnie spowalnia sklepy na PrestaShop, jak to sprawdzić i które działania optymalizacyjne dają największy efekt przy rozsądnym nakładzie pracy.
Dlaczego wydajność sklepu ma znaczenie biznesowe, nie tylko techniczne
Wydajność bywa traktowana jako temat czysto techniczny, zarezerwowany dla programistów. W praktyce to jeden z niewielu wskaźników e-commerce, który właściciel sklepu może realnie kontrolować i który przekłada się wprost na wynik finansowy.
Google od lat mierzy tak zwane Core Web Vitals: trzy wskaźniki opisujące realne doświadczenie użytkownika na stronie. Largest Contentful Paint (LCP) pokazuje, jak szybko wczytuje się główna treść strony, na przykład zdjęcie produktu czy slider promocyjny. Interaction to Next Paint (INP) mierzy responsywność, czyli jak szybko strona reaguje na kliknięcia użytkownika, na przykład dodanie do koszyka. Cumulative Layout Shift (CLS) opisuje stabilność wizualną, czyli to, czy elementy strony nie przeskakują w trakcie ładowania. Wszystkie trzy wchodzą w skład sygnałów jakości strony branych pod uwagę przez dokumentację Google dotyczącą wyszukiwania.
Dobrze udokumentowanym przykładem wpływu wydajności na sprzedaż jest przypadek Vodafone, opisany w oficjalnym case study web.dev. W kontrolowanym teście A/B firma porównała dwie wersje tej samej strony, różniące się wyłącznie parametrami wydajnościowymi. Wersja z wynikiem LCP lepszym o 31 procent wygenerowała 8 procent więcej sprzedaży, a odsetek użytkowników docierających do koszyka wzrósł o 11 procent. To nie korelacja zaobserwowana w danych analitycznych, tylko wynik kontrolowanego eksperymentu, w którym jedyną zmienną była szybkość strony.
Ten sam mechanizm działa w drugą stronę. Każda dodatkowa sekunda ładowania strony koszyka lub checkoutu to realne ryzyko, że klient zamknie kartę zamiast dokończyć zamówienie. Zwłaszcza na urządzeniu mobilnym, gdzie połączenie bywa wolniejsze, a cierpliwość mniejsza. Do porzuconych koszyków wrócimy w dalszej części artykułu, bo to jeden z obszarów, w których niska wydajność kosztuje sklepy najwięcej.
Jak sprawdzić wydajność sklepu PrestaShop, zanim zaczniesz optymalizację
Zanim zaczniesz cokolwiek zmieniać, warto zmierzyć punkt wyjścia. Bez tego trudno ocenić, czy wprowadzone zmiany faktycznie coś poprawiły, czy tylko dały złudzenie postępu.
Podstawowym, bezpłatnym narzędziem jest PageSpeed Insights od Google. Pokazuje dwa rodzaje danych: wyniki laboratoryjne z narzędzia Lighthouse, czyli symulację wczytywania strony w kontrolowanych warunkach, oraz dane terenowe z Chrome User Experience Report (CrUX), zebrane od realnych użytkowników odwiedzających Twój sklep w ciągu ostatnich 28 dni. To rozróżnienie ma duże znaczenie praktyczne. Strona może uzyskać wynik 95 na 100 w Lighthouse i jednocześnie nie przechodzić Core Web Vitals w danych terenowych, jeśli realni klienci korzystają ze słabszych telefonów i wolniejszego internetu niż zakłada środowisko testowe.
Google ocenia wynik na poziomie 75. percentyla, co oznacza, że przynajmniej trzy czwarte odwiedzin musi mieścić się w progu uznawanym za dobry: LCP poniżej 2,5 sekundy, INP poniżej 200 milisekund i CLS poniżej 0,1. Dodatkowym źródłem tych samych danych jest raport Podstawowe wskaźniki internetowe w Google Search Console. Pokazuje wyniki zagregowane dla całej witryny i pozwala wychwycić, które grupy adresów URL zawodzą najczęściej, na przykład wszystkie strony produktowe albo konkretnie strona koszyka.
Najczęstsze przyczyny wolnego działania sklepu PrestaShop
Zanim przejdziemy do konkretnych działań, przyjrzyjmy się, skąd w ogóle bierze się spadek wydajności. W praktyce niemal zawsze da się go sprowadzić do kilku powtarzających się źródeł.
Hosting niedopasowany do skali sklepu
Hosting to najczęściej pomijany czynnik, a jednocześnie jeden z najważniejszych. Tani hosting współdzielony, zaprojektowany pod małe strony wizytówkowe, nie poradzi sobie z bazą danych rosnącą wraz z liczbą produktów, zamówień i klientów. Objawy są charakterystyczne: sklep działa akceptowalnie w nocy, kiedy ruch jest niski, i wyraźnie zwalnia w godzinach szczytu albo podczas kampanii promocyjnych, gdy serwer musi obsłużyć więcej równoczesnych zapytań, niż przewiduje jego konfiguracja.
Brak lub źle skonfigurowany cache
PrestaShop korzysta z systemu szablonów Smarty. System ten, przy każdym żądaniu może kompilować pliki szablonu od nowa, jeśli cache jest wyłączony albo źle skonfigurowany. W praktyce oznacza to, że serwer wykonuje tę samą pracę wielokrotnie. Zamiast raz zapisać gotowy wynik i serwować go kolejnym odwiedzającym.
Nieoptymalne zdjęcia produktowe
Katalogi produktowe w e-commerce potrafią liczyć tysiące zdjęć, a pojedyncze pliki eksportowane wprost z aparatu albo z systemu producenta bywają warte kilka megabajtów. Przy stronie kategorii wyświetlającej kilkadziesiąt miniatur różnica między dobrze skompresowanymi obrazami a plikami w oryginalnym rozmiarze potrafi oznaczać kilka sekund różnicy w czasie ładowania.
Zbyt wiele aktywnych modułów i nieaktualna wersja silnika
Każdy aktywny moduł w PrestaShop podpina się pod system hooków i wykonuje swój kod przy określonych zdarzeniach, często przy każdym wyświetleniu strony. Kilka dodatkowych modułów zwykle nie robi różnicy. Sklep z kilkudziesięcioma aktywnymi rozszerzeniami, z których część nie jest już faktycznie używana, generuje niepotrzebne zapytania do bazy danych i obciąża każde żądanie.
Ma to związek również z samą wersją silnika. Aktualna gałąź, PrestaShop 9, została oparta na nowszej wersji frameworka Symfony niż PrestaShop 8, co przekłada się między innymi na sprawniejsze mechanizmy cache’owania i lżejszy domyślny motyw. Sklepy działające na mocno nieaktualnych wersjach same siebie ograniczają wydajnościowo, niezależnie od tego, ile optymalizacji wprowadzi się na poziomie hostingu. Aktualizacja wiąże się jednak z ryzykiem technicznym, o którym pisaliśmy w artykule o błędach po aktualizacji PrestaShop, dlatego lepiej przeprowadzać ją metodycznie, najpierw na środowisku testowym.
Zaniedbana baza danych
Tabele takie jak rejestr połączeń klientów czy historia wyszukiwań rosną z czasem i rzadko są porządkowane. Bez odpowiednich indeksów oraz okresowego zarządzania takimi danymi zapytania do bazy stają się coraz wolniejsze wraz z wiekiem sklepu. Nawet jeśli liczba aktywnych produktów się nie zmienia.
Optymalizacja PrestaShop krok po kroku
Poniższe działania najlepiej wprowadzać w kolejności od najmniej do najbardziej inwazyjnych, testując sklep po każdej istotnej zmianie.
Konfiguracja cache w panelu PrestaShop
Ustawienia cache znajdziesz w panelu administracyjnym, w sekcji Parametry zaawansowane, Wydajność, co szczegółowo opisuje oficjalna dokumentacja PrestaShop. Domyślny cache plikowy Smarty można uzupełnić o Redis albo Memcached, jeśli hosting je obsługuje. Oba rozwiązania trzymają dane w pamięci RAM zamiast na dysku. Przy sklepach z większym ruchem daje to zauważalnie szybszy odczyt niż standardowy system plików.
Świadomego ustawienia wymaga też opcja przeliczania szablonów. Wariant, w którym pliki szablonu nigdy nie są przeliczane od nowa, jest najszybszy, ale wymaga ręcznego czyszczenia cache po każdej zmianie w motywie. W panelu znajdziesz do tego jeden przycisk czyszczenia, a korzystać z niego trzeba świadomie. Zbyt częste czyszczenie przy dużym ruchu potrafi na chwilę obciążyć serwer bardziej niż jego brak.
CCC, czyli łączenie, kompresja i cache plików CSS i JS
Funkcja CCC (Combine, Compress, Cache) w tej samej sekcji panelu łączy wiele plików CSS i JavaScript w mniejszą liczbę większych plików, kompresuje je i zapisuje w cache. Mniej pojedynczych żądań do serwera oznacza szybsze wczytanie strony, co jest szczególnie zauważalne przy wolniejszych połączeniach mobilnych. Przed włączeniem tej opcji sklep należy dokładnie przetestować, ponieważ część motywów i modułów nie radzi sobie dobrze z łączeniem plików JavaScript.
Kompresja obrazów i format WebP
Format WebP pozwala zmniejszyć wagę zdjęcia nawet o kilkadziesiąt procent względem klasycznego JPG czy PNG, przy zachowaniu porównywalnej jakości wizualnej. W PrestaShop można to wdrożyć modułem konwertującym obrazy automatycznie przy wgrywaniu do sklepu albo na poziomie konfiguracji serwera. Równie ważne jak sam format jest dopasowanie rozmiaru pliku do miejsca, w którym faktycznie się wyświetla. Wysyłanie do przeglądarki zdjęcia w rozdzielczości kilku tysięcy pikseli dla miniatury pokazywanej jako 300 pikseli to zbędne obciążenie, niezależnie od formatu pliku. Zoptymalizowane zdjęcia to zresztą tylko część większej układanki konwersji na stronie produktowej, o czym pisaliśmy szerzej w tekście o zasadach optymalizacji strony produktowej.
CDN i serwer zasobów statycznych
Dokumentacja deweloperska PrestaShop opisuje możliwość skonfigurowania oddzielnego serwera mediów dla zasobów statycznych, na przykład zdjęć. Rozproszenie ruchu na kilka subdomen albo faktyczny CDN pozwala przeglądarce otwierać więcej równoległych połączeń i skraca fizyczny dystans między serwerem a użytkownikiem. Ma to szczególne znaczenie przy sprzedaży poza jednym regionem.
Optymalizacja bazy danych
Regularne wykonywanie polecenia ANALYZE TABLE na tabelach sklepu pomaga bazie danych utrzymać aktualne statystyki potrzebne do wybierania efektywnych planów zapytań. Ta sama dokumentacja deweloperska rekomenduje dostosowanie parametrów MySQL, takich jak innodb_buffer_pool_size, do rzeczywistej wielkości bazy, oraz rozważenie wyłączenia performance_schema, jeśli nie jest aktywnie wykorzystywany do monitoringu. Te zmiany wymagają dostępu do konfiguracji serwera, więc w praktyce najczęściej wykonuje je administrator hostingu albo zespół techniczny sklepu.
Dobór hostingu i wersji PHP
Sam PrestaShop, nawet dobrze skonfigurowany, nie zrekompensuje słabego środowiska serwerowego. Aktualna gałąź PrestaShop 9 wymaga PHP w wersji minimum 8.1, a najnowsze wydania obsługują już PHP 8.4, co w praktyce przekłada się na zauważalnie krótszy czas przetwarzania zapytań niż starsze wersje języka. Poza samą wersją PHP warto sprawdzić też limit pamięci przydzielonej aplikacji (memory_limit) oraz dostępne zasoby RAM na serwerze. Zbyt niski limit potrafi spowalniać sklep równie mocno jak przestarzała wersja PHP, szczególnie przy rozbudowanych katalogach produktowych i większym ruchu. Hosting oparty na LiteSpeed zamiast standardowego Apache bywa szczególnie polecany w środowiskach PrestaShop ze względu na wbudowany mechanizm cache’owania na poziomie serwera, który odciąża aplikację, zanim żądanie w ogóle do niej dotrze.
Jeśli obecny hosting od dłuższego czasu jest źródłem problemów, przeniesienie sklepu na inny serwer bywa skuteczniejsze niż kolejna runda optymalizacji na tej samej, przeciążonej infrastrukturze. My w takich sytuacjach proponujemy klientom Woohoo Cloud, środowisko hostingowe zaprojektowane specjalnie pod e-commerce, choć optymalizację prowadzimy równie skutecznie na hostingu, który klient już ma.
Wydajność a porzucone koszyki: gdzie tracisz najwięcej
Wydajność ma szczególne znaczenie na ścieżce zakupowej, od strony koszyka po finalizację zamówienia. To moment, w którym klient podjął już decyzję o zakupie, a każda dodatkowa przeszkoda, także techniczna, zwiększa ryzyko rezygnacji.
Sklepy korzystające z jednostronicowego checkoutu (one page checkout) skracają tę ścieżkę, eliminując zbędne przeładowania strony między kolejnymi krokami zamówienia. Sam format checkoutu niewiele jednak pomoże, jeśli strona koszyka ładuje się wolno z powodu nieoptymalnych skryptów bramek płatności, zbyt dużej liczby modułów remarketingowych albo braku cache na tej konkretnej podstronie. Warto potraktować checkout jako osobny obszar do sprawdzenia w PageSpeed Insights, niezależnie od strony głównej czy kart produktów, bo to właśnie tam wolne działanie kosztuje najwięcej porzuconych zamówień.
Jak utrzymać wysoką wydajność na dłużej
Optymalizacja PrestaShop nie jest jednorazowym zadaniem. Sklep, który dziś ładuje się w półtorej sekundy, po kilku miesiącach dokładania nowych modułów, banerów i zdjęć produktowych może wrócić do punktu wyjścia.
Dobrym nawykiem jest sprawdzanie kluczowych wskaźników wydajności po każdej większej zmianie w sklepie, zwłaszcza po aktualizacji silnika, instalacji nowego modułu albo zmianie motywu. Regularny przegląd techniczny sklepu, obejmujący również wydajność, pozwala wychwycić problem, zanim przełoży się on na spadek sprzedaży, a nie dopiero wtedy, gdy klienci zaczną się skarżyć albo statystyki konwersji wyraźnie spadną. O tym, ile realnie kosztuje sklep brak takiej regularnej opieki, pisaliśmy w osobnym artykule.
Kiedy warto skorzystać z pomocy specjalistów
Część opisanych działań, jak kompresja zdjęć czy włączenie CCC, można wykonać samodzielnie z poziomu panelu administracyjnego. Zmiany dotyczące konfiguracji serwera, bazy danych czy migracji cache na Redis wymagają już dostępu i wiedzy na poziomie infrastruktury, a wprowadzone błędnie mogą zamiast poprawić wydajność, doprowadzić do niedostępności sklepu.
Jeśli nie masz pewności, od czego zacząć, albo wprowadzone zmiany nie dają oczekiwanego efektu, audyt techniczny zwykle szybciej wskazuje realne wąskie gardło niż kolejne samodzielne próby metodą prób i błędów. W Woohoo optymalizacja wydajności jest jednym z trzech filarów wsparcia programistycznego, obok bieżącej stabilności sklepu i rozwoju nowych funkcjonalności.
Najważniejsze wnioski
- Wydajność sklepu to wskaźnik biznesowy, nie tylko techniczny: udokumentowane testy A/B pokazują bezpośredni związek między szybkością strony a sprzedażą i liczbą porzuconych koszyków.
- Zanim zaczniesz optymalizację, zmierz punkt wyjścia w PageSpeed Insights i Google Search Console, korzystając z danych terenowych, nie tylko laboratoryjnych.
- Najczęstsze przyczyny spowolnienia to niedopasowany hosting, brak cache, nieoptymalne zdjęcia, nadmiar modułów oraz zaniedbana baza danych.
- Cache, CCC, kompresja obrazów i CDN da się wdrożyć samodzielnie z panelu PrestaShop. Zmiany na poziomie serwera i bazy danych zwykle wymagają wsparcia technicznego.
- Optymalizacja PrestaShop to proces ciągły, a nie jednorazowe zadanie: regularne sprawdzanie wydajności powinno wejść do standardowej checklisty po wdrożeniach i aktualizacjach.
Najczęściej zadawane pytania
Ile powinno trwać wczytanie strony sklepu PrestaShop, żeby uznać go za szybki?
Nie ma jednej uniwersalnej liczby, ale dobrym punktem odniesienia są progi Core Web Vitals: LCP poniżej 2,5 sekundy dla większości odwiedzin. W praktyce oznacza to, że główna treść strony, na przykład zdjęcie produktu, powinna być widoczna dla użytkownika w tym czasie, a nie że cała strona musi się w pełni załadować co do ostatniego skryptu.
Czy sama aktualizacja do PrestaShop 9 poprawi wydajność sklepu?
Nowsza architektura silnika daje pewien wzrost wydajności względem starszych wersji, ale aktualizacja nie zastąpi optymalizacji hostingu, cache czy obrazów. Źle skonfigurowany sklep na PrestaShop 9 może działać wolniej niż dobrze zoptymalizowany sklep na PrestaShop 8.
Jak sprawdzić wydajność sklepu PrestaShop bez płacenia za narzędzia?
PageSpeed Insights oraz raport Podstawowe wskaźniki internetowe w Google Search Console są bezpłatne i wystarczają do zdiagnozowania większości problemów. Płatne narzędzia monitoringu mają sens dopiero przy większym ruchu, kiedy potrzebny jest ciągły podgląd wydajności, a nie jednorazowa diagnoza.
Czy tani hosting współdzielony wystarczy dla rozwijającego się sklepu?
Na start, przy niewielkiej liczbie produktów i zamówień, zwykle wystarcza. Wraz ze wzrostem ruchu i bazy danych hosting współdzielony najczęściej staje się wąskim gardłem jako pierwszy, ponieważ zasoby serwera są dzielone z innymi stronami, na które właściciel sklepu nie ma wpływu.
Jak często warto sprawdzać wydajność sklepu?
Przy stabilnym sklepie wystarczy przegląd raz na kwartał. Dodatkowy pomiar ma sens tuż po większych zmianach, takich jak aktualizacja silnika, instalacja nowego modułu czy zmiana motywu, żeby szybko wyłapać ewentualną regresję.