PS PrestaShop Średnio zaawansowany

DataFirefly Speed Pack: dokumentacja

Instalacja, konfiguracja i wykorzystanie cache stron, Critical CSS i zaawansowanej optymalizacji Speed Pack w PrestaShop 8 i 9.

Zaktualizowano Wersja modułu 1.0.0

DataFirefly Speed Pack łączy w jednym module pełny cache stron, Critical CSS, minifikację i łączenie zasobów, Delay JS, natywny lazy loading, resource hints, przepisywanie CDN, dyrektywy serwera i czyszczenie bazy danych. Ten przewodnik obejmuje instalację, szybki start i każdą zakładkę konfiguracji.

Wymagania i zgodność

  • PrestaShop 8.0 do 9.x
  • PHP 7.2 do 8.3
  • Prawo zapisu do folderu cache oraz, dla dyrektyw serwera, do głównego pliku htaccess
  • Obsługa multisklepu i wielojęzyczności

Speed Pack jest komplementarny wobec modułów DataFirefly Core Web Vitals i WebP AVIF Pro: nie duplikuje ani konwersji obrazów, ani optymalizacji dostarczanych już przez te moduły.

Instalacja

  1. Prześlij archiwum przez Moduły > Menedżer modułów > Załaduj moduł albo skopiuj folder datafireflyspeedpack do katalogu modules/.
  2. Kliknij Zainstaluj.
  3. Otwórz konfigurację modułu. Token podgrzewania jest generowany automatycznie i wyświetlany w zakładce Pulpit.

Szybki start

Dla bezpiecznego startu włączaj opcje w tej kolejności i sprawdzaj rendering na każdym etapie:

  1. Włącz tylko Cache stron. Przejdź na stronę kategorii w trybie prywatnym: pierwsze ładowanie zwraca nagłówek X-DfSpeedPack-Cache: MISS, przeładowanie zwraca HIT.
  2. Włącz minifikację HTML/CSS/JS i defer.
  3. Włącz lazy load obrazów (chroniąc obraz LCP, zobacz niżej).
  4. Włącz Critical CSS, a następnie CSS asynchroniczny.
  5. Włącz Delay JS.
  6. Na końcu, i tylko po weryfikacji wizualnej, włącz łączenie CSS/JS.

W Zaawansowane > Wydajność wyłącz natywną optymalizację CSS/JS (CCC) i pozwól Speed Packowi zarządzać minifikacją i łączeniem. Moduł wykrywa ten konflikt i pokazuje go na Pulpicie.

Cache stron

Cache stron serwuje zbuforowany HTML bardzo wcześnie, przez hook actionDispatcherBefore, przed utworzeniem kontrolera i zapytaniami o produkty. Klucz cache zmienia się per sklep, język, waluta i urządzenie.

Zakres

Buforowane są wyłącznie strony gości z pustym koszykiem. Wykrywanie zalogowanego klienta i koszyka odbywa się jak najwcześniej przez cookie. Żadna strona zalogowanego klienta nigdy nie jest serwowana z cache.

Kontrolery buforowalne

Biała lista kontrolerów (jeden na linię) określa kwalifikujące się strony: na przykład index, category, product, cms, manufacturer. Usuń kontroler, aby całkowicie wykluczyć go z cache.

Wykluczenia

  • URL-e: podciągi, jeden na linię.
  • Cookies: obecność jednego z tych cookies wyłącza buforowanie.
  • User-Agents: wykluczone agenty.
  • Ignorowane parametry URL: parametry śledzące (utm, fbclid, gclid itp.) są usuwane z klucza, aby uniknąć fragmentacji cache.

Czas życia i unieważnianie

Czas życia jest konfigurowalny (0 = do ręcznego wyczyszczenia). Unieważnianie jest automatyczne przy każdej modyfikacji produktu, kategorii, strony CMS, producenta, dostawcy lub stanu magazynowego. Możesz też w każdej chwili wyczyścić cache dedykowanym przyciskiem.

CSS

  • Minifikacja CSS inline i łączonego.
  • Łączenie lokalnych arkuszy w jeden plik, z przepisywaniem względnych ścieżek w regułach url().
  • CSS asynchroniczny: arkusze są ładowane przez preload, a potem onload, aby wyeliminować blokujący CSS.

Critical CSS

Wklej swój CSS above-the-fold per typ strony w dedykowanych polach. Jest on wstrzykiwany inline w nagłówku, a reszta jest ładowana asynchronicznie. Pole * służy jako fallback dla wszystkich stron bez reguły specyficznej.

Włącz CSS asynchroniczny razem z Critical CSS, aby uniknąć efektu strony bez stylów (FOUC).

JavaScript

  • Minifikacja JS inline i łączonego.
  • Łączenie lokalnych plików JS.
  • Automatyczny defer skryptów.

Delay JS

Delay JS odracza wykonanie skryptów do pierwszej interakcji użytkownika (przewinięcie, kliknięcie, klawisz, ruch myszy lub dotknięcie), z fallbackiem czasowym. To największy zysk na TBT i wyniku mobilnym.

  • Uwzględnij tylko: jeśli wypełnione, opóźniane są wyłącznie skrypty zawierające te słowa kluczowe.
  • Wyklucz: słowa kluczowe skryptów, których nigdy nie należy opóźniać (np. jquery, core).
  • Dodaj atrybut data-df-nodelay na znaczniku script, aby wykluczyć go indywidualnie.

Media

Natywny lazy loading dodaje atrybuty loading=lazy i decoding=async do obrazów oraz loading=lazy do iframe.

Chroń swój obraz LCP (grafikę hero, pierwszy widoczny obraz), dodając mu atrybut data-no-lazy albo dopisując go do wykluczeń. W przeciwnym razie lazy load może pogorszyć LCP.

Resource hints

  • Preconnect i DNS-prefetch: jeden URL na linię, dla domen zewnętrznych (czcionki, analytics, CDN).
  • Preload: w formacie url|typ (np. /img/hero.webp|image). Możliwe typy: image, font, style, script. Preloaduj swój obraz LCP i krytyczne czcionki.
  • font-display swap: wstrzykiwany do reguł czcionek inline, aby uniknąć niewidocznego tekstu.

CDN

Przepisywanie CDN zastępuje lokalny host zasobów statycznych Twoją domeną CDN. Wprowadź URL CDN, a następnie wzorce (wyrażenia regularne) uwzględniane i wykluczane, po jednym na linię. Przepisywane są wyłącznie lokalne zasoby pasujące do wzorców uwzględnianych.

Serwer (htaccess)

Speed Pack może zapisywać dyrektywy serwera między dedykowanymi znacznikami w głównym pliku htaccess:

  • Kompresja GZIP / Brotli
  • Cache przeglądarki dla zasobów (rok, immutable)
  • Connection Keep-Alive

Dyrektywy są usuwane automatycznie przy odinstalowaniu. Jeśli plik nie jest zapisywalny, wyświetla się ostrzeżenie.

Jeśli Twój serwer ma już włączoną kompresję (na przykład w konfiguracji serwera WWW), nie ma potrzeby duplikować jej tutaj.

Baza danych

Czyszczenie usuwa porzucone koszyki (bez zamówienia, starsze niż skonfigurowana liczba dni) i powiązane osierocone wiersze, stare połączenia i gości, a także stare statystyki wyszukiwania i logi.

Zamówienia nigdy nie są dotykane. Mimo to wykonaj kopię zapasową bazy przed pierwszym czyszczeniem.

Podgrzewanie cache

Podgrzewanie (warmer) zbiera adresy URL z Twojego sitemap, a następnie podgrzewa cache, aby odwiedzający zawsze otrzymywali stronę w HIT.

Z zaplecza

Zakładka Pulpit: kliknij Zbierz URL-e, a potem Podgrzej. Pasek postępu śledzi przebieg partiami.

Przez zadanie CRON

Zautomatyzuj zbieranie i podgrzewanie po każdym nocnym czyszczeniu. Token jest wyświetlany na Pulpicie.

curl -s "https://twoj-sklep.pl/module/datafireflyspeedpack/preload?action=collect&token=TWOJ_TOKEN"
curl -s "https://twoj-sklep.pl/module/datafireflyspeedpack/preload?action=warm&token=TWOJ_TOKEN"

Atrybuty kontrolne w motywie

  • data-no-lazy: wyłącza lazy load na obrazie lub iframe (obraz LCP).
  • data-df-nodelay: wyklucza znacznik script z Delay JS.
  • data-df-nodefer: wyklucza znacznik script z defer.
  • data-df-nooptim: wyklucza blok lub link z minifikacji i łączenia.

Import / Eksport ustawień

W zakładce Zaawansowane wyeksportuj wszystkie ustawienia w formacie JSON, aby zreplikować je w innym sklepie, albo zaimportuj istniejący plik.

Rozwiązywanie problemów

Strona pozostaje w MISS

Sprawdź, czy przeglądasz jako gość (wylogowany, pusty koszyk), czy kontroler jest na białej liście, czy URL nie jest wykluczony i czy nie ma cookie wykluczającego. Pracownicy zalogowani do zaplecza nigdy nie otrzymują strony z cache.

Wygląd psuje się po włączeniu łączenia

Wyłącz łączenie CSS/JS albo dodaj wadliwy plik do odpowiednich wykluczeń. Łączenie jest celowo domyślnie wyłączone.

Tekst bez stylów przy ładowaniu (FOUC)

Włącz lub uzupełnij Critical CSS danej strony i upewnij się, że CSS asynchroniczny jest włączony.

Skrypt przestał działać z Delay JS

Dodaj jego słowo kluczowe do listy wykluczeń Delay JS albo atrybut data-df-nodelay na znaczniku.

Odinstalowanie

Odinstalowanie usuwa dyrektywy htaccess, czyści cache oraz usuwa ustawienia i zakładkę administracyjną modułu.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia