DataFirefly Speed Pack: dokumentacja
Instalacja, konfiguracja i wykorzystanie cache stron, Critical CSS i zaawansowanej optymalizacji Speed Pack w PrestaShop 8 i 9.
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
- Prześlij archiwum przez Moduły > Menedżer modułów > Załaduj moduł albo skopiuj folder
datafireflyspeedpackdo katalogumodules/. - Kliknij Zainstaluj.
- 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:
- Włącz tylko Cache stron. Przejdź na stronę kategorii w trybie prywatnym: pierwsze ładowanie zwraca nagłówek
X-DfSpeedPack-Cache: MISS, przeładowanie zwracaHIT. - Włącz minifikację HTML/CSS/JS i defer.
- Włącz lazy load obrazów (chroniąc obraz LCP, zobacz niżej).
- Włącz Critical CSS, a następnie CSS asynchroniczny.
- Włącz Delay JS.
- 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-nodelayna 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.