# DataFirefly Speed Pack — Documentazione

> DataFirefly Speed Pack riunisce in un unico modulo la cache di pagina completa, il Critical CSS, la minificazione e combinazione delle risorse, il Delay JS, il lazy loading nativo, i…

- Pagina: <https://www.datafirefly.com/it/documentation/datafirefly-speed-pack/>
- Lingua: it
- Aggiornato il: 2026-06-27
- Altre lingue: [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), [pl](https://www.datafirefly.com/pl/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)
- Indice: <https://www.datafirefly.com/it/documentation/llms.txt>

DataFirefly Speed Pack riunisce in un unico modulo la cache di pagina completa, il Critical CSS, la minificazione e combinazione delle risorse, il Delay JS, il lazy loading nativo, i resource hints, la riscrittura CDN, le direttive server e la pulizia del database. Questa guida copre l'installazione, l'avvio e ogni scheda di configurazione.

## Requisiti e compatibilità

- PrestaShop 8.0 a 9.x
- PHP 7.2 a 8.3
- Accesso in scrittura alla cartella di cache e, per le direttive server, al file htaccess radice
- Multinegozio e multilingua supportati

Speed Pack è complementare ai moduli DataFirefly Core Web Vitals e WebP AVIF Pro: non duplica né la conversione delle immagini né le ottimizzazioni già fornite da quei moduli.

## Installazione

1. Caricate l'archivio da **Moduli > Gestore moduli > Carica un modulo**, oppure copiate la cartella `datafireflyspeedpack` nella directory `modules/`.
2. Cliccate su **Installa**.
3. Aprite la configurazione del modulo. Un token di precaricamento viene generato automaticamente e mostrato nella scheda Dashboard.

## Avvio rapido

Per un'attivazione sicura, abilitate le opzioni in quest'ordine e verificate il rendering a ogni passo:

1. Abilitate solo la **cache di pagina**. Navigate una pagina di categoria in una finestra privata: il primo caricamento restituisce l'header `X-DfSpeedPack-Cache: MISS`, il ricaricamento restituisce `HIT`.
2. Abilitate la **minificazione** HTML/CSS/JS e il **defer**.
3. Abilitate il **lazy load** delle immagini (proteggendo l'immagine LCP, vedi sotto).
4. Abilitate il **Critical CSS** e poi il **CSS asincrono**.
5. Abilitate il **Delay JS**.
6. Per ultima, e solo dopo una verifica visiva, abilitate la **combinazione** CSS/JS.

In **Parametri avanzati > Prestazioni**, disattivate l'ottimizzazione CSS/JS nativa (CCC) e lasciate che Speed Pack gestisca minificazione e combinazione. Il modulo rileva questo conflitto e lo segnala nella Dashboard.

## Cache di pagina

La cache di pagina serve l'HTML memorizzato molto presto, tramite l'hook `actionDispatcherBefore`, prima dell'istanziazione del controller e prima delle query prodotti. La chiave di cache varia per negozio, lingua, valuta e dispositivo.

### Ambito

Vengono memorizzate in cache solo le **pagine ospiti con carrello vuoto**. Il rilevamento del cliente collegato e del carrello avviene il prima possibile tramite il cookie. Nessuna pagina di cliente collegato viene mai servita dalla cache.

### Controller cacheabili

La whitelist dei controller (uno per riga) determina le pagine idonee: per esempio `index`, `category`, `product`, `cms`, `manufacturer`. Rimuovete un controller per escluderlo completamente dalla cache.

### Esclusioni

- **URL**: sottostringhe, una per riga.
- **Cookie**: la presenza di uno di questi cookie disattiva la memorizzazione in cache.
- **User-Agent**: agenti esclusi.
- **Parametri URL ignorati**: i parametri di tracciamento (utm, fbclid, gclid…) vengono rimossi dalla chiave per evitare la frammentazione della cache.

### Durata e invalidazione

La durata è configurabile (0 = fino alla pulizia manuale). L'invalidazione è **automatica** a ogni modifica di prodotto, categoria, pagina CMS, produttore, fornitore o stock. Potete anche svuotare la cache in qualsiasi momento dal pulsante dedicato.

## CSS

- **Minificazione** del CSS inline e combinato.
- **Combinazione** dei fogli locali in un unico file, con riscrittura dei percorsi relativi nelle regole url().
- **CSS asincrono**: i fogli vengono caricati tramite preload e poi onload per eliminare il CSS bloccante.

### Critical CSS

Incollate il vostro CSS above-the-fold per tipo di pagina nei campi dedicati. Viene iniettato inline nell'head, mentre il resto viene caricato in modo asincrono. Il campo `*` è il ripiego per ogni pagina senza regola specifica.

Abilitate il CSS asincrono _insieme al_ Critical CSS per evitare qualsiasi lampo di contenuto senza stile (FOUC).

## JavaScript

- **Minificazione** del JS inline e combinato.
- **Combinazione** dei file JS locali.
- **Defer** automatico degli script.

### Delay JS

Il Delay JS rinvia l'esecuzione degli script fino alla prima interazione dell'utente (scroll, clic, tasto, movimento del mouse o tocco), con un ripiego temporizzato. È il guadagno maggiore su TBT e sul punteggio mobile.

- **Includi solo**: se compilato, vengono ritardati solo gli script che contengono queste parole chiave.
- **Escludi**: parole chiave degli script da non ritardare mai (es. jquery, core).
- Aggiungete l'attributo `data-df-nodelay` a un tag script per escluderlo singolarmente.

## Media

Il lazy loading nativo aggiunge gli attributi `loading=lazy` e `decoding=async` alle immagini, e `loading=lazy` agli iframe.

Proteggete la vostra immagine LCP (visual hero, prima immagine visibile) aggiungendole l'attributo `data-no-lazy` o inserendola nelle esclusioni. Altrimenti il lazy load può degradare l'LCP.

## Resource hints

- **Preconnect** e **DNS-prefetch**: una URL per riga, per i domini di terze parti (font, analytics, CDN).
- **Preload**: in formato `url|tipo` (es. `/img/hero.webp|image`). Tipi possibili: image, font, style, script. Precaricate la vostra immagine LCP e i font critici.
- **font-display swap**: iniettato nelle regole dei font inline per evitare il testo invisibile.

## CDN

La riscrittura CDN sostituisce l'host locale delle risorse statiche con il vostro dominio CDN. Inserite la URL del CDN, poi i pattern (espressioni regolari) inclusi ed esclusi, uno per riga. Vengono riscritte solo le risorse locali che corrispondono ai pattern inclusi.

## Server (htaccess)

Speed Pack può scrivere direttive server tra marcatori dedicati nel file htaccess radice:

- Compressione GZIP / Brotli
- Cache del browser per le risorse (un anno, immutable)
- Connection Keep-Alive

Le direttive vengono rimosse automaticamente alla disinstallazione. Se il file non è scrivibile, viene mostrato un avviso.

Se il vostro server attiva già la compressione (ad esempio tramite la configurazione del server web), non è necessario duplicarla qui.

## Database

La pulizia elimina i carrelli abbandonati (senza ordine, oltre il numero di giorni configurato) e le relative righe orfane, le connessioni e gli ospiti vecchi, nonché le statistiche di ricerca e i log vecchi.

Gli ordini non vengono mai toccati. Effettuate comunque un backup del database prima della prima pulizia.

## Preriscaldamento della cache

Il preriscaldamento raccoglie le URL dalla vostra sitemap e poi preriscalda la cache, in modo che i vostri visitatori ricevano sempre una pagina in HIT.

### Dal back-office

Scheda Dashboard: cliccate su **Raccogli URL** e poi su **Preriscalda**. Una barra di avanzamento segue il progresso per lotti.

### Tramite attività CRON

Automatizzate la raccolta e il preriscaldamento dopo ogni svuotamento notturno. Il token è mostrato nella Dashboard.

```
curl -s "https://vostro-negozio/module/datafireflyspeedpack/preload?action=collect&token=VOSTRO_TOKEN"
curl -s "https://vostro-negozio/module/datafireflyspeedpack/preload?action=warm&token=VOSTRO_TOKEN"
```

## Attributi di controllo nel tema

- `data-no-lazy` — disattiva il lazy load su un'immagine o un iframe (immagine LCP).
- `data-df-nodelay` — esclude un tag script dal Delay JS.
- `data-df-nodefer` — esclude un tag script dal defer.
- `data-df-nooptim` — esclude un blocco o un link dalla minificazione e dalla combinazione.

## Importazione / esportazione delle impostazioni

Dalla scheda Avanzato, esportate tutte le impostazioni in formato JSON per replicarle su un altro negozio, o importate un file esistente.

## Risoluzione dei problemi

### Una pagina resta in MISS

Verificate di navigare come ospite (disconnesso, carrello vuoto), che il controller sia nella whitelist, che la URL non sia esclusa e che non sia presente alcun cookie di esclusione. I dipendenti collegati al back-office non ricevono mai una pagina in cache.

### Un layout si rompe dopo l'attivazione della combinazione

Disattivate la combinazione CSS/JS, o aggiungete il file problematico alle esclusioni corrispondenti. La combinazione è disattivata di default di proposito.

### Testo senza stile al caricamento (FOUC)

Attivate o completate il Critical CSS della pagina interessata, e assicuratevi che il CSS asincrono sia attivato.

### Uno script non funziona più con il Delay JS

Aggiungete la sua parola chiave alla lista di esclusione del Delay JS, o l'attributo `data-df-nodelay` sul tag.

## Disinstallazione

La disinstallazione rimuove le direttive htaccess, svuota le cache ed elimina le impostazioni e la scheda di amministrazione del modulo.
