Le immagini sono spesso tra le risorse più visibili di una pagina Web e tra le più costose da trasferire. Una fotografia di diversi megabyte può finire in una card larga poche centinaia di pixel. Una hero image può diventare l’elemento principale del caricamento percepito. Una galleria può moltiplicare richieste e decodifiche.
Ottimizzare non significa quindi comprimere il più possibile. Significa fornire la buona immagine, nella variante corretta, al momento giusto e con la qualità necessaria.
Non esiste un pulsante magico “ottimizza”
Un’immagine può essere troppo pesante per molte ragioni:
- dimensioni eccessive;
- formato inadatto;
- compressione insufficiente;
- assenza di varianti responsive;
- caricamento con priorità sbagliata;
- spazio non riservato nel layout.
Una vera strategia affronta l’intera catena.
Il pipeline globale
sorgente master
→ ruolo dell’immagine
→ dimensioni utili
→ formato adatto
→ compressione
→ varianti responsive
→ integrazione HTML
→ priorità / lazy loading
→ misura reale
Ogni fase condiziona le successive. Comprimere un originale da 6.000 px prima di chiedersi se ne servano solo 1.200 significa ottimizzare il problema sbagliato.
1. Capire il ruolo dell’immagine
Una fotografia editoriale, una hero, una miniatura, un avatar, un logo, uno screenshot e un’icona hanno esigenze diverse.
Una hero visibile subito può influenzare l’LCP e deve essere disponibile rapidamente. Un’immagine dopo migliaia di parole può invece essere caricata in ritardo. Un’icona vettoriale può essere più adatta in SVG che in un formato fotografico.
2. Partire da una sorgente master
Conserva una versione di alta qualità e genera le varianti da quella:
→ 480 px
→ 800 px
master originale → 1200 px
→ 1600 px
→ 2000 px
Non generare una variante grande partendo da una miniatura già ridotta: i dettagli persi non vengono recuperati.
3. Scegliere le dimensioni necessarie
Il ridimensionamento è spesso il guadagno più importante. Se l’originale è 6000 × 4000 ma l’immagine appare al massimo a 900 CSS px, servire sempre l’originale è raramente giustificato.
Considera anche la densità dello schermo, ma non usare il DPR come scusa per inviare sempre il file massimo. Prepara alcuni livelli ragionevoli e lascia al browser la scelta quando necessario.
Per fotografie, WebP, AVIF e JPEG possono essere adatti. Per screenshot e grafica con contorni netti, WebP lossless o PNG possono funzionare meglio. Per loghi e forme geometriche, SVG è spesso naturale.
Il formato non deve essere scelto perché “moderno”, ma perché produce un buon compromesso tra qualità, peso, compatibilità e costo di produzione.
5. Comprimere dopo il ridimensionamento
Una volta stabilite le dimensioni, regola la compressione. Con formati lossy, confronta visivamente dettagli difficili come capelli, fogliame, testo e gradienti.
I valori di qualità non sono confrontabili direttamente tra codec o encoder. “80” in due strumenti non significa la stessa qualità visiva.
6. Preparare immagini responsive
srcset e sizes permettono al browser di scegliere tra più larghezze. Il CSS decide come l’immagine appare; le risorse responsive decidono quale file viene trasferito.
Una configurazione corretta evita sia di inviare 2.000 px a un telefono che di mostrare una miniatura sfocata su uno schermo ad alta densità.
7. Dare priorità alle immagini importanti
Le immagini visibili subito non devono essere trattate come quelle molto più in basso nella pagina. Il lazy loading è utile fuori viewport, ma applicarlo senza criterio alla hero principale può ritardare il contenuto più importante.
La priorità va quindi assegnata in base al ruolo reale della risorsa.
8. Riservare lo spazio
Quando il browser conosce width, height o un rapporto d’aspetto, può riservare spazio prima del download. Questo riduce gli spostamenti del layout durante il caricamento.
Dimensioni dichiarate non significano che l’immagine non possa essere responsive: CSS può continuare a ridimensionarla mantenendo il rapporto.
EXIF e altri metadati possono essere utili nella sorgente master ma inutili nella variante di pubblicazione. Valuta cosa conservare, soprattutto quando alcuni campi possono contenere informazioni personali o di localizzazione.
Non eliminare però alla cieca profili o dati necessari alla corretta resa del colore e alle licenze.
10. Misurare la pagina reale
Il confronto tra due file sul disco non basta. Verifica:
- quale variante viene davvero scaricata;
- il peso trasferito;
- quando inizia il caricamento;
- se l’immagine incide sull’LCP;
- eventuali spostamenti di layout;
- il rendering su mobile e desktop.
Gli strumenti di sviluppo del browser mostrano rete, dimensioni e priorità delle richieste.
Evitare la sovra-ottimizzazione
Un file più piccolo ma visibilmente degradato non è una vittoria. Nemmeno un sistema che genera dieci formati e cinquanta larghezze per risparmiare pochi kilobyte è automaticamente migliore.
Il costo di build, storage, cache e manutenzione fa parte del problema.
Un workflow pratico
Per una fotografia di contenuto:
- conserva l’originale;
- definisci le larghezze reali;
- genera alcune varianti;
- confronta WebP/AVIF/JPEG secondo il pubblico;
- regola la compressione;
- configura
srcset e sizes;
- assegna la strategia di caricamento;
- misura il comportamento nella pagina.
Da ricordare
L’ottimizzazione delle immagini è una sequenza di decisioni, non una singola compressione. Dimensioni, formato, qualità, responsive, priorità e stabilità devono essere trattati insieme. La migliore configurazione è quella che mantiene la qualità utile minimizzando dati trasferiti, lavoro del browser e complessità del pipeline.