Przejdź do treści
PrestaShop

Optymalizacja szybkości PrestaShop: od 3 do 95 punktów w PageSpeed

12 lutego 2025 8 min czytania

Jeden z naszych klientów przyszedł do nas z PrestaShopem, który w Google PageSpeed Insights uzyskiwał 23 punkty na mobile. Sklep ładował się 8-9 sekund. Po 3 tygodniach pracy wynik wynosił 91 punktów, a czas ładowania skrócił się do 1,8 sekundy.

Oto co zrobiliśmy.

1. Hosting i serwer

Pierwsza rzecz do sprawdzenia to zawsze hosting. PrestaShop na współdzielonym serwerze za 20 zł miesięcznie nie ma szans być szybki. Sklep powinien stać na VPS z minimum 2GB RAM i obsługą PHP 8.1+.

Warto też skonfigurować PHP-FPM, OPcache i Redis (albo Memcached) do cache'owania sesji i obiektów.

2. Cache'owanie w PrestaShop

PrestaShop ma wbudowany system cache'owania, który domyślnie jest wyłączony albo skonfigurowany nieptymalnie. W panelu administracyjnym przejdź do Parametry zaawansowane > Wydajność i włącz:

- Cache szablonów Smarty
- Kompresję CCC (CSS, JS)
- Cache po stronie serwera (najlepiej Redis)

3. Obrazki

Najczęstszy winowajca wolnego ładowania. Kilka rzeczy do zrobienia:

Po pierwsze, wszystkie zdjęcia produktów powinny być w formacie WebP - zmniejsza rozmiar o 25-35% w porównaniu do JPEG przy tej samej jakości wizualnej.

Po drugie, użyj lazy loading dla zdjęć poza ekranem. W nowszych wersjach PS jest to wbudowane, w starszych trzeba to dodać ręcznie.

Po trzecie, sprawdź wymiary obrazków. Jeśli zdjęcie produktu ma 3000x3000 px, a wyświetlasz je w siatce 300x300 px - marnujesz przepustowość.

4. Moduły

Każdy zbędny moduł to dodatkowe zapytania do bazy i czas renderowania. Przejrzyj listę zainstalowanych modułów i wyłącz wszystko, czego aktywnie nie używasz.

Szczególną uwagę zwróć na moduły ładujące zewnętrzne skrypty (czaty, widgety, trackery). Każde żądanie do zewnętrznego serwera dodaje latency.

5. Baza danych

Po roku działania sklepu baza danych rośnie i zaczyna spowalniać zapytania. Warto raz na jakiś czas:

- Wyczyścić logi i historię koszyka (tabele ps_log, ps_cart)
- Uruchomić OPTIMIZE TABLE na największych tabelach
- Sprawdzić, czy indeksy na kolumnach używanych w zapytaniach są założone

6. CDN

Jeśli masz klientów z całej Polski, CDN ma mniejsze znaczenie niż przy sklepie z klientami z całego świata. Ale nawet lokalnie CDN redukuje obciążenie serwera dla plików statycznych (CSS, JS, obrazki).

Cloudflare w darmowym planie spokojnie wystarcza dla większości sklepów.