Przyspieszanie sklepu PrestaShop – sklep internetowy wolno działa

Prędkość wczytywania strony ma ogromne znaczenie na komfort zakupów robionych przez Twoich Kleinów oraz wyniki sprzedaży Twojego sklepu internetowego. Z szeregu badań przeprowadzonych – szeroko opisanych i udostępnionych publicznie jasno wynika. Strona która ładuje się 5 sekund w porównaniu do strony która ładuje się 1 sekundę straci 35% użytkowników którzy chcą wejść na stronę – a co gorsza ta strona sprzeda 40% mniej! Jeśli Twój sklep internetowy działa wolno poważnie rozważ jego optymalizację.

I. Sklep na PrestaShop działał szybko ale z czasem zaczął działać coraz wolniej.

PrestaShop domyślnie zbiera różnego rodzaju statystyki. Dane te są magazynowane w bazie MySQL razem z innymi danymi sklepu takimi jak kategorie, produkty, czy zamówienia. W zależności od popularności sklepu oraz daty jego założenia lub ostatniego serwisowania baza MySQL potrafi bardzo szybko się rozrastać. Milion rekordów czy wielkość pow. 200MB dla tabeli ps_connections nie jest niczym zaskakującym dla deweloperów PrestaShop. Taki stan negatywnie wpływa na wydajność sklepu internetowego ponieważ każde zdarzenie w przypadku tabeli ps_connections jest to zapis każdego przychodzącego połączenia dane np: data, IP komputera. Zapis do pustej tabeli trwa dużo krócej niż przetworzenie zapytania do bazy która ma 200MB lub więcej. Nie zawsze możemy sobie pozwolić na pełne wyczyszczenie tablic ze względu na analizowanie danych, ale danych z przed np. 2lat nie ma sensu analizować.

Screen tabel prestashop – podkreślono na czerwono rozmiar tabeli pc_connections

1) Czyszczenie tabel MySQL przechowujących statystyki PrestaShop.
2) Czyszczenie logów PrestaShop.
3) Nieznalezione strony – 404.
4) Czyszczenie archiwalnych wyszukiwań w naszym sklepie.
5) statystyki odsyłające.
6) Smarty

W celu usunięcia rekordów należy zalogować się np. do phpMyAdmin żeby wykonać zapytania SQL

1. Czyszczenie tabel MySQL PrestaShop przechowujących statystyki.

TRUNCATE TABLE ps_connections;
TRUNCATE TABLE ps_connections_source;
TRUNCATE TABLE ps_connections_page;
TRUNCATE TABLE ps_guest;

2. Czyszczenie logów Prestashop.

Tabela ps_log zbiera i zapisuje informacje na temat rzeczy wykonywanych w panelu administratora np.: powielenie produktu, modyfikacja produktu, dodanie produktu, …
przez zalogowanych użytkowników sklepu PrestaShop. Aby wyczyścić tabelę należy wykonać zapytanie SQL:

TRUNCATE TABLE ps_log;

3. 404 – strony nie znalezione.

Generowane przez boty sieciowe lub po prostu pod strony które nie istnieją bądź przestały istnieć (np. w wyniku usunięcia produktu) są zapisywane w tabeli ps_pagenotfound . Zapytanie SQL do usunięcia danych z tabeli:

TRUNCATE TABLE ps_pagenotfound;

4. Archiwalne wyszukiwania w naszym sklepie internetowym.

Wato przejrzeć przeanalizować jak klienci szukają produktów w naszym sklepie internetowym, czy posiadamy te produkty (może warto rozszerzyć ofertę). Może algorytm wyszukiwania wymaga poprawy? Klienci szukają parametrów produktu których nie uwzględniliśmy w naszym algorytmie.
Po przeanalizowaniu tabelę możemy wyczyścić zapytaniem:

TRUNCATE TABLE ps_statssearch;

5. Czyszczenie statystyk odsyłających:

TRUNCATE TABLE ps_referrer_cache;

6. Usuwanie z bazy cache smarty

TRUNCATE TABLE ps_smarty_cache;
TRUNCATE TABLE ps_smarty_last_flush;
TRUNCATE TABLE ps_smarty_lazy_cache;

II. Wydajność serwera na którym jest zainstalowany sklep internetowy

Sklepy internetowe na PrestaShop jest mniej zasobożerny niż silnik Magento. Niemniej serwer do obsługi sklepu internetowego należy dobrać wg założeń sprzedażowych sklepu. Specyfika hostingu PrestaShop inaczej będzie wyglądać dla sklepów na które spływa kilka/kilkanaście zamówień dziennie a inaczej dla sklepu realizującego kilkaset zamówień dziennie. Nie ma się co łudzić, że oferta hostingów współdzielonych największych firm hostingowych w Polsce będzie spełniać nasze oczekiwania. Usługi są tak wyskalowane, że niestety wydajność PrestaShop będzie niezadowalająca.

Jako przykład prezentujemy porównanie wydajności sklepu internetowego największej firmy hostingowej w Polsce która reklamuje się jako najbardziej wydajna na rynku z naszym standardowym VPS który obsługuje ok. sto stron (w tym kilka sklepów).

Prędkość ładowania PrestaShop na hostingu współdzielonym jednej z największych firm w Polsce to aż 23 sekundy!
Prędkość generowania na zwykłym serwerze VPS Pro-Link który obsługuje dużą liczbę stron czas generowania 1,5 sekundy.

Podany przykład obrazuje różnice 20 razy szybsze wygenerowanie strony. Największy który mówi, że jest najszybszy mija się mocno z prawdą. Prawdopodobnie podają jakiś parametr np. szybkości odczytu z dysków który na działanie naszego sklepu nie ma żadnego wpływu.

III. Optymalizacja szablonów PrestaShop

Jeśli zdecydujemy się na zakup gotowego szablonu musimy liczyć się z jego uniwersalnością dopasowaną do różnych branży. Szablony bardzo częśto generują ogromą liczbę zapytań SQL do bazy w celu wygenerowania jednego widoku. Zdażyło się nam optymalizować szablony które miały po kilka tysięcy zapytań do bazy żeby przygotować widok strony startowej. Jedno zapytanie do bazy to milisekundy ale przemnożone przez kilatysięcy to już sekundy.

Prędkość generowania szablony strony głównej. 1,2
Przykładowa liczba zapytań SQL w tym przypadku 1258 w celu wygenerowania jednego widoku.

Liczbę należy przemnożyć przez liczbę oczewkianych użytkowników sklepu internetowego żeby uzyskać realną liczbę zapytań wykonaną w ciągu sekundy do bazy MySQL. Oczywiście należy przyjąć wartości skrajne np. w przypadku puszczanie posta/reklamy na facebook do sklepu internetowego ilu użytkowników przejdzie do strony oraz czy nasz sklep poradzi sobie z obsługą ich zapytań. Należy pamiętać że między stroną załadowaną w 1sekundę a 5sekund różnica sprzedaży to 40% mniej dla tej drugiej wartości.

Zamów wycenę
Polityka prywatności | Regulamin
Pro-link 2005-2020