# DataFirefly Speed Pack: dokumentacja

> 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…

- Strona: <https://www.datafirefly.com/pl/documentation/datafirefly-speed-pack/>
- Język: pl
- Zaktualizowano: 2026-08-01
- Inne języki: [fr](https://www.datafirefly.com/documentation/datafirefly-speed-pack/index.md), [en](https://www.datafirefly.com/en/documentation/datafirefly-speed-pack/index.md), [es](https://www.datafirefly.com/es/documentation/datafirefly-speed-pack/index.md), [de](https://www.datafirefly.com/de/documentation/datafirefly-speed-pack/index.md), [it](https://www.datafirefly.com/it/documentation/datafirefly-speed-pack/index.md), [pt](https://www.datafirefly.com/pt/documentation/datafirefly-speed-pack/index.md), [nl](https://www.datafirefly.com/nl/documentation/datafirefly-speed-pack/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

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.
