Ta instrukcja skupia się na zaawansowanych aspektach zarządzania PrestaShop, takich jak optymalizacja bazy danych i wydajności.
1. Czyszczenie bazy danych z niepotrzebnych danych (PrestaShop 1.7)
UWAGA: Przed wykonaniem jakichkolwiek operacji na bazie danych, ZAWSZE wykonaj pełną kopię zapasową bazy danych i plików sklepu. Niewłaściwe działania mogą doprowadzić do utraty danych lub uszkodzenia sklepu.
1.1. Podstawowe czyszczenie w panelu PrestaShop:
- Ścieżka:
Parametry Sklepu > Ogólne - Kroki:
- Przewiń stronę do sekcji „Czyszczenie danych”.
- Ustaw opcję „Włącz czyszczenie danych” na „Tak”.
- PrestaShop automatycznie usunie stare, niepotrzebne dane, takie jak:
- Stare, porzucone koszyki.
- Niepotwierdzone konta gości.
- Nieaktualne połączenia i logi.
- Stare statystyki wyszukiwania.
- Logi wiadomości e-mail.
- Kliknij „Zapisz”.
- Wskazówka: Aby to czyszczenie było wykonywane automatycznie i regularnie, musisz skonfigurować zadanie CRON na swoim serwerze, które będzie wywoływać URL czyszczenia danych podany w
Zaawansowane > Administracja > Wydajność > "Adres URL CRON dla czyszczenia danych".
1.2. Zaawansowane czyszczenie za pomocą modułu (zalecane dla większej kontroli):
Dla głębszego czyszczenia, które często obejmuje więcej tabel i daje większą kontrolę, zaleca się użycie dedykowanego modułu.
- Moduł: Poszukaj na PrestaShop Addons lub w Google modułów takich jak „PrestaShop Cleaner”, „Database Cleaner for PrestaShop”, „Database Optimization” itp.
- Przykład (bez podania konkretnego modułu, bo wybór zależy od dostępności i ceny):
- Przejdź do
Moduły > Menedżer Modułów. - Kliknij „Wgraj moduł” i zainstaluj pobrany moduł do czyszczenia bazy danych.
- Po instalacji kliknij „Konfiguruj” obok modułu.
- W interfejsie modułu będziesz mieć opcje wyboru konkretnych tabel do czyszczenia (np.
ps_connections,ps_connections_source,ps_guest,ps_cart,ps_log,ps_referrer_cache,ps_search_word,ps_page_vieweditp.). - Starannie wybierz, co chcesz usunąć, zrozumieć, jakie dane zostaną usunięte.
- Uruchom czyszczenie.
- Przejdź do
- Ważne: Niektóre moduły czyszczące mogą być płatne, ale ich funkcjonalność często jest warta inwestycji, jeśli baza danych jest bardzo duża.
- Przykład (bez podania konkretnego modułu, bo wybór zależy od dostępności i ceny):
2. Jak przyspieszyć PrestaShop na serwerze (PrestaShop 1.7)
Przyspieszenie PrestaShop to kombinacja ustawień serwera i konfiguracji sklepu.
2.1. Konfiguracja wydajności w panelu PrestaShop:
- Ścieżka:
Zaawansowane > Wydajność - Kroki:
- Właściwości Smarty:
- Kompilacja szablonów: Ustaw na „Nigdy nie kompiluj plików szablonów ponownie” (po zakończeniu prac nad szablonem). Podczas edycji szablonu ustaw na „Skompiluj szablony ponownie, jeśli pliki zostały zaktualizowane”.
- Pamięć podręczna: Ustaw na „Tak”.
- Wyczyść pamięć podręczną: Ustaw na „Wyczyść pamięć podręczną za każdym razem, gdy cokolwiek zostało zmodyfikowane” lub „Wyczyść pamięć podręczną ręcznie” (dla większej kontroli, ale wymaga pamiętania o ręcznym czyszczeniu po każdej zmianie).
- Rodzaj pamięci podręcznej: Pozostaw „System plików” chyba że masz skonfigurowane zaawansowane opcje na serwerze (patrz niżej).
- Tryb debugowania:
- Tryb debugowania: Upewnij się, że jest ustawiony na „Nie” na sklepie produkcyjnym. Włączaj tylko w celach diagnostycznych i deweloperskich.
- CCC (Combine, Compress, Cache) – Połącz, Kompresuj, Buforuj:
- Inteligentne buforowanie CSS: Ustaw na „Tak”.
- Inteligentne buforowanie JavaScript: Ustaw na „Tak”.
- Zredukuj kod HTML: Ustaw na „Tak”.
- Kompresja JavaScript w kodzie HTML: Ustaw na „Tak”.
- Optymalizacja Apache: Ustaw na „Tak”.
- Ważne: Po włączeniu CCC sprawdź, czy sklep wyświetla się poprawnie. Czasami może powodować konflikty z niektórymi modułami/szablonami.
- Serwery mediów (CDN):
- Jeśli używasz sieci CDN (Content Delivery Network), wprowadź adresy URL tutaj (np.
cdn1.twojadomena.pl). Wymaga to konfiguracji CDN poza PrestaShop.
- Jeśli używasz sieci CDN (Content Delivery Network), wprowadź adresy URL tutaj (np.
- Szyfrowanie:
- Algorytm: Ustaw na „Rijndael”.
- Pamięć podręczna:
- Jeśli Twój hosting oferuje zaawansowane systemy pamięci podręcznej (takie jak Memcached lub Redis), możesz je wybrać tutaj. Aby to zrobić, musisz najpierw upewnić się, że są zainstalowane i skonfigurowane na Twoim serwerze przez dostawcę hostingu. Są one znacznie szybsze niż domyślny „System plików”.
- Kliknij „Zapisz” po każdej zmianie.
- Po każdej zmianie ustawień wydajności, kliknij przycisk „Wyczyść pamięć podręczną” na górze strony.
- Właściwości Smarty:
2.2. Optymalizacja na poziomie serwera/hostingu:
- Wersja PHP: Upewnij się, że Twój sklep działa na najnowszej stabilnej i kompatybilnej wersji PHP dla PrestaShop 1.7 (np. PHP 7.3, 7.4). Nowsze wersje PHP oferują znaczną poprawę wydajności. Możesz zmienić wersję PHP w panelu kontrolnym swojego hostingu (np. cPanel, DirectAdmin).
- Wersja MySQL/MariaDB: Upewnij się, że baza danych używa aktualnej wersji (np. MySQL 5.7+, MariaDB 10.x).
- SSD Hosting: Wybieraj hostingi oferujące dyski SSD, które są znacznie szybsze niż tradycyjne HDD.
- Adekwatne zasoby: Upewnij się, że Twój plan hostingowy zapewnia wystarczającą ilość pamięci RAM i mocy procesora dla Twojego sklepu. Wzrost ruchu może wymagać droższego planu lub serwera VPS/dedykowanego.
- Limit Pamięci PHP (
memory_limit): Zwiększ limit pamięci PHP w plikuphp.inilub przez panel hostingu (np. do 256MB, 512MB lub więcej). PrestaShop może być pamięciożerny. - Limit czasu wykonania (
max_execution_time): Zwiększ go, jeśli masz problemy z timeoutami przy wykonywaniu dłuższych operacji (np. importy). - Gzip Compression: Upewnij się, że kompresja Gzip jest włączona na serwerze (najczęściej zarządzana przez plik
.htaccesslub konfigurację serwera). - Obrazy:
- Używaj zoptymalizowanych obrazów (mniejszy rozmiar pliku, ale dobra jakość). Moduły do optymalizacji obrazów mogą pomóc (np. konwersja do WebP, kompresja JPEG/PNG).
- Generuj miniatury (
Katalog > Obrazy) tylko w potrzebnych rozmiarach.
2.3. Optymalizacja kodu i modułów:
- Wyłącz/Odinstaluj nieużywane moduły: Każdy aktywny moduł zużywa zasoby. Przejrzyj
Moduły > Menedżer Modułówi wyłącz te, których nie używasz. Odinstalowanie jest jeszcze lepsze. - Użyj lekkiego i zoptymalizowanego szablonu: Temat ma ogromny wpływ na wydajność. Unikaj ciężkich, przeładowanych funkcji szablonów, jeśli szybkość jest priorytetem.
- Unikaj nadmiernej ilości zapytania SQL: Jeśli masz niestandardowe moduły lub modyfikacje, upewnij się, że nie generują zbyt wielu zapytań do bazy danych.
1. Jak czyścić bazę danych z niepotrzebnych danych w PrestaShop 1.7
Czyszczenie bazy danych z niepotrzebnych danych jest kluczowe dla poprawy wydajności sklepu, ale wymaga ostrożności. Zawsze wykonaj pełną kopię zapasową bazy danych przed przystąpieniem do jakichkolwiek operacji.
Krok 1: Wykonaj kopię zapasową bazy danych
- Ścieżka w PrestaShop:
Zaawansowane > Kopia zapasowa BD - Kroki:
- Kliknij „Tworzenie kopii zapasowej bazy danych”.
- System wygeneruje plik SQL, który zostanie pobrany na Twój komputer.
- Alternatywa: Użyj panelu hostingowego (np. cPanel, DirectAdmin) lub phpMyAdmin, aby wyeksportować bazę danych.
Krok 2: Zidentyfikuj niepotrzebne dane Niepotrzebne dane w bazie danych PrestaShop mogą obejmować:
- Stare koszyki porzucone przez klientów.
- Logi połączeń i statystyki (np. dane o odwiedzinach, wyszukiwaniach).
- Wygasłe sesje użytkowników.
- Nieaktywne lub testowe produkty, kategorie, klienci.
Krok 3: Użyj wbudowanego narzędzia PrestaShop do czyszczenia PrestaShop nie posiada wbudowanego narzędzia do pełnego czyszczenia bazy danych, ale możesz usunąć niektóre dane ręcznie lub za pomocą modułów.
- Usuwanie porzuconych koszyków:
- Ścieżka:
Klienci > Koszyki - Kroki:
- Na liście koszyków użyj filtrów, aby znaleźć stare koszyki (np. sprzed 30 dni).
- Zaznacz niepotrzebne koszyki i kliknij „Usuń wybrane”.
- Ścieżka:
- Usuwanie nieaktywnych klientów:
- Ścieżka:
Klienci > Klienci - Kroki:
- Użyj filtrów, aby znaleźć klientów, którzy nie złożyli zamówień (np. brak zamówień w kolumnie „Zamówienia”).
- Zaznacz niepotrzebnych klientów i kliknij „Usuń wybrane”.
- Ścieżka:
- Usuwanie testowych produktów/kategorii:
- Ścieżka:
Katalog > ProduktylubKatalog > Kategorie - Kroki:
- Znajdź testowe lub nieaktywne produkty/kategorie.
- Zaznacz je i kliknij „Usuń wybrane”.
- Ścieżka:
Krok 4: Czyszczenie bazy danych za pomocą phpMyAdmin (ręczna metoda) Jeśli masz dostęp do phpMyAdmin (dostępny w panelu hostingowym), możesz ręcznie usunąć niepotrzebne dane. Uwaga: Ta metoda wymaga wiedzy technicznej i ostrożności, ponieważ błędne operacje mogą uszkodzić sklep.
- Dostęp do phpMyAdmin:
- Zaloguj się do panelu hostingowego (np. cPanel, DirectAdmin).
- Znajdź sekcję „Bazy danych” i kliknij „phpMyAdmin”.
- Wybierz bazę danych swojego sklepu PrestaShop (nazwa bazy danych znajduje się w pliku
app/config/parameters.phpw katalogu głównym sklepu).
- Usuwanie porzuconych koszyków:
- W phpMyAdmin znajdź tabelę
ps_cart(prefiksps_może być inny, jeśli zmieniłeś go podczas instalacji). - Wykonaj zapytanie SQL, aby usunąć stare koszyki (np. starsze niż 30 dni):
DELETE FROM ps_cart WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY) AND id_cart NOT IN (SELECT id_cart FROM ps_orders);
- W phpMyAdmin znajdź tabelę
-
- To zapytanie usuwa koszyki starsze niż 30 dni, które nie zostały przekształcone w zamówienia.
Usuwanie logów połączeń i statystyk:
- Znajdź tabele takie jak
ps_connections,ps_connections_source,ps_connections_page,ps_log,ps_search_index. - Wykonaj zapytanie SQL, aby wyczyścić te tabele (np. usuń wszystkie dane lub dane starsze niż określony czas):
TRUNCATE TABLE ps_connections; TRUNCATE TABLE ps_connections_source; TRUNCATE TABLE ps_connections_page; TRUNCATE TABLE ps_log;
-
- Uwaga:
TRUNCATEusuwa wszystkie dane z tabeli. Jeśli chcesz zachować nowsze dane, użyjDELETEz warunkiem czasowym, np.DELETE FROM ps_connections WHERE date_add < DATE_SUB(NOW(), INTERVAL 30 DAY);.
- Uwaga:
Usuwanie wygasłych sesji:
- Znajdź tabelę
ps_session. - Wykonaj zapytanie SQL, aby usunąć stare sesje:
DELETE FROM ps_session WHERE date_upd < DATE_SUB(NOW(), INTERVAL 7 DAY);
Krok 5: Użyj Modułu do Automatycznego Czyszczenia Bazy Danych Jeśli nie czujesz się komfortowo z ręcznym czyszczeniem bazy danych, możesz użyć darmowych lub płatnych modułów dostępnych w PrestaShop Addons Marketplace, takich jak:
- „PrestaShop Cleaner” (darmowy) – pozwala na automatyczne usuwanie porzuconych koszyków, logów, sesji itp.
- Ścieżka:
Moduły > Menedżer Modułów > Dodaj nowy moduł - Kroki:
- Pobierz moduł z oficjalnego marketplace PrestaShop (https://addons.prestashop.com).
- Wgraj plik ZIP modułu w sekcji „Dodaj nowy moduł”.
- Zainstaluj moduł i skonfiguruj go, wybierając, jakie dane chcesz usunąć (np. stare koszyki, logi, sesje).
- Ścieżka:
Krok 6: Optymalizacja Bazy Danych Po usunięciu danych warto zoptymalizować tabele bazy danych, aby poprawić ich wydajność.
- W phpMyAdmin:
- Zaznacz wszystkie tabele w bazie danych (lub tylko te, które czyściłeś).
- Z rozwijanego menu na dole wybierz „Optymalizuj tabele”.
2. Jak przyspieszyć PrestaShop na serwerze
Optymalizacja wydajności PrestaShop wymaga działań zarówno w panelu administracyjnym, jak i na poziomie serwera. Oto szczegółowe kroki:
Krok 1: Włącz tryb debugowania, aby zidentyfikować problemy
- Ścieżka:
Zaawansowane > Wydajność - Kroki:
- W sekcji „Tryb debugowania” ustaw „Włącz tryb debugowania” na „Tak”.
- Przejdź na stronę sklepu i sprawdź, czy pojawiają się błędy lub ostrzeżenia, które mogą spowalniać działanie.
- Po zakończeniu analizy wyłącz tryb debugowania.
Krok 2: Włącz pamięć podręczną (cache)
- Ścieżka:
Zaawansowane > Wydajność - Kroki:
- W sekcji „Pamięć podręczna” ustaw „Używaj pamięci podręcznej” na „Tak”.
- Wybierz system pamięci podręcznej:
- Memcached – jeśli Twój serwer obsługuje Memcached (skontaktuj się z hostingiem, aby to potwierdzić).
- APC – jeśli Twój serwer obsługuje APC.
- File System – domyślna opcja, działa na każdym serwerze, ale jest wolniejsza.
- Kliknij „Zapisz”.
- Regularnie czyść pamięć podręczną, klikając „Wyczyść pamięć podręczną” w tej samej sekcji.
Krok 3: Włącz kompilację szablonów
- Ścieżka:
Zaawansowane > Wydajność - Kroki:
- W sekcji „Szablony Smarty” ustaw:
- „Kompilacja szablonów” na „Nigdy nie kompiluj ponownie plików szablonów” (dla sklepu produkcyjnego; w trybie deweloperskim wybierz „Kompiluj ponownie, jeśli pliki zostały zaktualizowane”).
- „Pamięć podręczna” na „Tak”.
- „Wyczyść pamięć podręczną” na „Nigdy” (chyba że wprowadzasz zmiany w szablonach, wtedy wybierz „Za każdym razem, gdy coś zostanie zmodyfikowane”).
- Kliknij „Zapisz”.
- W sekcji „Szablony Smarty” ustaw:
Krok 4: Włącz kompresję CSS, JS i HTML (CCC)
- Ścieżka:
Zaawansowane > Wydajność - Kroki:
- W sekcji „CCC (Kombinacja, Kompresja i Cache)” włącz wszystkie opcje:
- „Smart cache dla CSS” – Tak.
- „Smart cache dla JavaScript” – Tak.
- „Minifikacja HTML” – Tak.
- „Kompresja JavaScript w HTML” – Tak.
- „Przenieś JavaScript na koniec” – Tak.
- Kliknij „Zapisz”.
- Uwaga: Jeśli po włączeniu tych opcji pojawią się problemy z wyświetlaniem strony, wyłącz je po kolei, aby zidentyfikować źródło problemu (np. konflikt z modułem lub motywem).
- W sekcji „CCC (Kombinacja, Kompresja i Cache)” włącz wszystkie opcje:
Krok 5: Optymalizacja serwera Niektóre działania wymagają dostępu do ustawień serwera. Jeśli nie masz wiedzy technicznej, skontaktuj się z dostawcą hostingu.
- Wersja PHP: Upewnij się, że używasz najnowszej wspieranej wersji PHP dla PrestaShop 1.7 (np. PHP 7.4, jeśli to możliwe, ponieważ jest szybsza niż starsze wersje, ale kompatybilna z PS 1.7).
- W panelu hostingowym (np. cPanel) znajdź sekcję „Wybierz wersję PHP” lub „PHP Selector” i zmień wersję.
- Włącz OPcache: OPcache przyspiesza działanie PHP, przechowując skompilowany kod w pamięci.
- W panelu hostingowym znajdź ustawienia PHP i upewnij się, że OPcache jest włączony. Jeśli nie masz takiej opcji, skontaktuj się z hostingiem.
- Włącz kompresję Gzip: Kompresja Gzip zmniejsza rozmiar przesyłanych danych.
- W panelu hostingowym znajdź opcję „Optymalizuj witrynę” lub „Włącz kompresję Gzip”. Jeśli nie ma takiej opcji, dodaj poniższy kod do pliku
.htaccessw katalogu głównym sklepu:<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript </IfModule>
- W panelu hostingowym znajdź opcję „Optymalizuj witrynę” lub „Włącz kompresję Gzip”. Jeśli nie ma takiej opcji, dodaj poniższy kod do pliku
- Użyj CDN (Content Delivery Network): CDN przyspiesza ładowanie zasobów statycznych (obrazów, CSS, JS) przez serwowanie ich z serwerów bliżej użytkownika.
- Popularne usługi CDN to Cloudflare (darmowy plan dostępny) lub KeyCDN. Skonfiguruj CDN w panelu administracyjnym usługi, a następnie w PrestaShop w sekcji
Zaawansowane > Wydajnośćw polu „Serwery mediów” dodaj adresy URL dostarczone przez CDN.
- Popularne usługi CDN to Cloudflare (darmowy plan dostępny) lub KeyCDN. Skonfiguruj CDN w panelu administracyjnym usługi, a następnie w PrestaShop w sekcji
Krok 6: Optymalizacja obrazów Duże obrazy mogą znacząco spowalniać stronę. PrestaShop nie ma wbudowanego narzędzia do kompresji obrazów, ale możesz użyć modułów lub narzędzi zewnętrznych.
- Użyj Modułu do kompresji obrazów:
- Zainstaluj moduł, np. „Image Compressor With TinyPNG” lub „Image Optimization” z PrestaShop Addons Marketplace.
- Ścieżka:
Moduły > Menedżer Modułów > Dodaj nowy moduł - Skonfiguruj moduł, aby automatycznie kompresował obrazy przy wgrywaniu.
- Ręczna kompresja obrazów:
- Użyj narzędzi takich jak TinyPNG (https://tinypng.com) lub Squoosh (https://squoosh.app) do kompresji obrazów przed wgraniem ich do sklepu.
Krok 7: Wyłącz niepotrzebne moduły Niektóre moduły, szczególnie te związane ze statystykami, mogą spowalniać sklep.
- Ścieżka:
Moduły > Menedżer Modułów - Kroki:
- Przejrzyj listę zainstalowanych modułów.
- Wyłącz moduły, których nie używasz, klikając „Wyłącz” (np. „Statystyki odwiedzin”, „Wyszukiwanie w czasie rzeczywistym”).
- Uwaga: Nie usuwaj modułów, jeśli nie jesteś pewien ich funkcji, ponieważ mogą być kluczowe dla działania sklepu.
Krok 8: Testowanie wydajności Po wprowadzeniu zmian przetestuj wydajność sklepu za pomocą narzędzi takich jak:
- Google PageSpeed Insights (https://pagespeed.web.dev)
- GTmetrix (https://gtmetrix.com)
- Pingdom (https://tools.pingdom.com) Wyniki tych testów wskażą, co jeszcze można poprawić.
