Na początku większość sklepów PrestaShop działa bardzo szybko. Strony ładują się sprawnie, panel administracyjny reaguje natychmiast, a klienci bez problemu przeglądają produkty. Z czasem jednak coś zaczyna się zmieniać...

Najpierw pojawiają się pojedyncze sygnały - ktoś napisze, że sklep ładuje się wolniej. Potem panel administracyjny zaczyna reagować z opóźnieniem. W końcu zdarza się, że w godzinach większego ruchu sklep potrafi ładować się kilka sekund. Właściciele sklepów często myślą wtedy "czemu ta presta jest taka wolna?!". W praktyce jednak, w większości przypadków problem nie leży w samym silniku sklepu - a więc w PrestaShop..., ale w środowisku, w którym działa.

Poniżej kilka sytuacji, które najczęściej powodują spadek wydajności sklepu na PrestaShop.

1. Hosting współdzielony osiąga swój limit

Na starcie hosting współdzielony jest rozsądnym wyborem. Kosztuje niewiele i nie wymaga żadnej administracji. Problem pojawia się dopiero wtedy, gdy sklep zaczyna generować większy ruch. Wtedy zaczyna być widoczne coś, czego na początku wcale nie widać - zasoby serwera są współdzielone z wieloma innymi stronami.

To oznacza, że Twój sklep korzysta z tej samej puli CPU, pamięci i operacji dyskowych co inne strony znajdujące się na tym samym serwerze. Więc inni klienci hostingu wykorzystują dokładnie to, co i my. Pytanie kto będzie pierwszy... Dopóki ruch jest niewielki, wszystko działa poprawnie. Jednak gdy sklep zaczyna obsługiwać więcej użytkowników jednocześnie, bardzo łatwo dojść do momentu, w którym dostępne zasoby serwera przestają wystarczać dla wszystkich. Wtedy pojawiają się objawy, które właściciele sklepów znają bardzo dobrze:

  • długie ładowanie stron produktów,
  • wolno działający koszyk,
  • panel administracyjny reagujący z dużym opóźnieniem.

W praktyce często spotykam sklepy PrestaShop działające na hostingu współdzielonym, które już zaczynają odczuwalnie zwalniać w momencie gdy liczba jednoczesnych użytkowników przekracza kilka osób. Wtedy jedynym sposobem jest wybór nowego serwera pod sklep.

2. Zbyt duża liczba modułów w sklepie

PrestaShop ma ogromną zaletę - ma modularną budowę, więc można go bardzo łatwo rozbudować o dodatkowe funkcje za pomocą... modułów. Płatności, integracje z kurierami, systemy marketingowe, moduły analityczne, wyszukiwarki produktów… lista tych dodatków potrafi być naprawdę długa. I co istotne - pojedyncze moduły kosztują niewiele w porównaniu do tradycyjnych rozwiązań - np. kosztu programisty, który musiałby daną funkcjonalność "dokodować" do danego sklepu.

Na pierwszy rzut oka wygląda to pięknie, ale ma też pewną oczywistą wadę. Każdy moduł dodaje własny kod, który musi zostać wykonany przy generowaniu strony. Jeżeli sklep działa kilka lat, bardzo często okazuje się, że zainstalowanych jest kilkadziesiąt modułów. Część z nich jest aktywna, mimo że nie jest już potrzebna, albo część została zainstalowana tylko "na próbę" i już dawno przestała być używana.

W efekcie serwer przy każdym wejściu na stronę wykonuje coraz więcej operacji, co w naturalny sposób zaczyna wpływać na czas ładowania sklepu.

3. Baza danych zaczyna być wąskim gardłem

Sklep internetowy to w dużej mierze ciągłe operacje na bazie danych. Wszystkie zmiany produktów, opisy, ceny... to wszystko zapisywane jest w bazie danych. Każde wejście na stronę produktu oznacza pobranie informacji o:

  • cenie,
  • dostępności,
  • wariantach,
  • zdjęciach,
  • powiązanych produktach itp.

Do tego dochodzą zapytania generowane przez moduły, koszyk, wyszukiwarkę czy system promocji.

Jeżeli baza danych nie jest odpowiednio skonfigurowana lub działa na serwerze z ograniczonymi zasobami, bardzo łatwo dochodzi do sytuacji, w której to właśnie ona staje się najwolniejszym elementem całego sklepu. W praktyce oznacza to, że nawet szybki serwer WWW nie pomoże - sklep będzie czekał na odpowiedź bazy danych.

4. Brak skutecznego cache

Cache to jeden z najważniejszych elementów wpływających na wydajność sklepu. Bez niego każda strona musi być generowana od początku przy każdym wejściu użytkownika. W przypadku sklepu z dużą liczbą produktów oznacza to ogromną liczbę zapytań do bazy danych i operacji wykonywanych przez serwer.

Istnieje wiele rodzajów i architektury cache. Może być plikowy, bazowy, w pamięci RAM, wykorzystywany przez PHP lub tylko przez serwer WWW. Jednak wspólną cechą tych wszystkich systemów cache'ujących jest to, że skonfigurowany odpowiednio - pozwala ograniczyć operacje na serwerze i znacząco skrócić czas generowania strony. W praktyce często okazuje się, że samo poprawne ustawienie mechanizmów cache potrafi radykalnie poprawić szybkość działania sklepu.

5. Serwer nie jest przygotowany pod sklep

Ostatnia sytuacja, którą bardzo często spotykam w praktyce, to serwer skonfigurowany w sposób bardzo ogólny. Uniwersalny. Taki do wszystkiego... i do niczego. Takie ustawienia mogą działać poprawnie dla prostych stron internetowych, ale sklepy e-commerce mają zupełnie inne wymagania. Liczba zapytań do bazy danych, operacje wykonywane przez PHP czy sposób obsługi ruchu użytkowników są znacznie bardziej wymagające.

Jeżeli środowisko serwerowe nie jest dopasowane do tego typu aplikacji, wydajność sklepu zaczyna spadać wraz ze wzrostem ruchu. Kluczowa jest dopasowana konfiguracja serwerowa.

Czy problemem jest serwer?

Jeżeli sklep PrestaShop zaczyna działać coraz wolniej, nie zawsze oznacza to konieczność natychmiastowej zmiany hostingu lub serwera. Czasami wystarczy:

  • przejrzeć i poprawić konfigurację serwera,
  • zoptymalizować bazę danych,
  • ograniczyć liczbę zbędnych modułów.

Zdarza się jednak, że sklep po prostu jest zbyt duży na swój hosting. W takiej sytuacji najlepszym rozwiązaniem jest przygotowanie środowiska serwerowego dopasowanego do jego rzeczywistych potrzeb i generowanego obciążenia. Dobrze dobrany i skonfigurowany serwer potrafi skrócić czas ładowania strony z kilku sekund do ułamka sekundy, co bezpośrednio wpływa zarówno na komfort klientów, jak i na sprzedaż.

Jeżeli chcesz sprawdzić, co spowalnia Twój sklep, zobacz jak wygląda konfiguracja serwera dla PrestaShop albo skontaktuj się z nami - pomożemy ustalić przyczynę problemu i spróbujemy przyspieszyć Twój sklep.

Najczęstsze pytania o wydajność PrestaShop

Sam silnik PrestaShop nie jest z natury wolny. W większości przypadków spowolnienie wynika z konfiguracji serwera, dużej liczby modułów lub ograniczeń hostingu.

Małe sklepy zwykle działają bez większych problemów przy 2-4 GB RAM. Sklepy z większą liczbą produktów i ruchem często wymagają 8 GB RAM lub więcej, szczególnie jeśli korzystają z wielu modułów. Duże sklepy zazwyczaj oprócz samych modułów, mają jeszcze dodatkowe serwery usług (ElasticSearch, Redis itp.). Te z kolei rezerwują dość dużo pamięci do swojego działania. W takich przypadkach 8 GB to absolutne minimum.

Bardzo często tak. VPS daje dostęp do własnych, wydzielonych zasobów serwera, dzięki czemu sklep nie musi konkurować o CPU i pamięć z innymi stronami znajdującymi się na tym samym hostingu.

Hosting może być dobry, ale konfiguracja serwera niekoniecznie... Często bywa niedopasowana do sklepów e-commerce. W takich sytuacjach problemem bywa konfiguracja bazy danych, cache lub PHP.

Podobne wpisy