Lazy Loading delle immagini - Cos'è e come funziona?
Questo tutorial riguarda i seguenti argomenti:
Le immagini sono una parte fondamentale di qualsiasi sito web. Tuttavia, possono anche influire significativamente sulla velocità di caricamento delle pagine, specialmente nei siti con molte immagini. Questo è importante poiché i siti web più veloci offrono una migliore esperienza utente e si posizionano più in alto nei motori di ricerca.
Un modo per ottimizzare il caricamento delle immagini è utilizzare il lazy loading—una tecnica che migliora le prestazioni senza compromettere la qualità visiva.
In questo articolo, imparerai cos’è il lazy loading, come funziona e come implementarlo sul tuo sito web. Esploreremo anche le migliori pratiche per il lazy loading e gli errori comuni da evitare.
Questo metodo migliora la velocità della pagina, riduce la quantità di dati trasferiti e minimizza il carico sia sul dispositivo dell’utente che sul server.
Richiedendo meno risorse iniziali, il lazy loading offre un’esperienza di navigazione più fluida—soprattutto su dispositivi mobili o quando si ha una connessione di rete più lenta.
Il lazy loading è comunemente usato per le immagini, ma può essere applicato anche a video, iframe e altri contenuti multimediali.
Come funziona il Lazy Loading
Il lazy loading funziona ritardando la richiesta del browser per determinate risorse fino a quando non stanno per essere visualizzate sullo schermo.
Quando un utente apre una pagina web, solo le immagini visibili vengono caricate immediatamente. Le altre richieste di caricamento delle immagini vengono inviate solo se l’utente scorre verso il basso.
Il processo generalmente coinvolge questi passaggi:
- Caricamento iniziale della pagina: Il browser carica il contenuto essenziale della pagina e le immagini visibili.
- Immagini segnaposto: Le immagini non visibili vengono sostituite con placeholder leggeri o tag immagine vuoti.
- Interazione dell’utente: Mentre l’utente scorre o interagisce con la pagina, il browser rileva quando un’immagine sta per entrare in vista.
- Caricamento delle immagini: Il file immagine reale viene caricato dal server solo quando l’immagine è vicina o all’interno della finestra visibile.
Il lazy loading può essere implementato utilizzando attributi HTML, JavaScript o plugin—esploreremo queste metodologie nelle prossime sezioni.
Come implementare il Lazy Loading
Ci sono diversi modi per implementare il lazy loading su un sito web, a seconda della configurazione del sito e delle tue competenze tecniche.
I metodi più comuni includono l’uso di attributi HTML nativi, soluzioni JavaScript e funzionalità integrate in piattaforme CMS come WordPress.
1. Lazy Loading in WordPress
WordPress rende facile implementare il lazy loading, anche senza conoscenze di programmazione.
1.1. Lazy Loading automatico
Per impostazione predefinita, WordPress aggiunge automaticamente l’attributo loading=”lazy” alle immagini inserite tramite l’editor a blocchi o utilizzando la funzione wp_get_attachment_image().
Questa funzione automatica migliora le prestazioni senza richiedere configurazioni aggiuntive.
1.2. Tramite plugin
Per opzioni di lazy loading più avanzate, puoi utilizzare plugin di WordPress. I plugin popolari offrono funzionalità aggiuntive come animazioni di caricamento, esclusioni CSS e lazy loading per immagini di sfondo.

Per abilitare il lazy loading con il plugin SiteGround Speed Optimizer:
- Vai alla tua dashboard di WordPress.
- Vai su Speed Optimizer > Media.

- Abilita l’opzione Lazy load dei media.

2. Utilizzo di attributi HTML nativi
I browser moderni supportano il lazy loading nativo tramite l’attributo loading=”lazy” in HTML.
Questo metodo è il modo più semplice per aggiungere il lazy loading senza scrivere codice aggiuntivo.
Esempio:
<img src="image.jpg" alt="Example Image" loading="lazy">
L’attributo loading=”lazy” dice al browser di rinviare il caricamento dell’immagine fino a quando non sta per entrare nella finestra visibile.

3. Utilizzo di JavaScript
JavaScript offre maggiore flessibilità e controllo sul lazy loading, specialmente per i browser più vecchi o per casi d’uso più avanzati.
Due metodi comuni sono LazyLoad.js e l’Intersection Observer API.
3.1. LazyLoad.js
LazyLoad.js è una libreria JavaScript leggera che semplifica il lazy loading per immagini e altri elementi multimediali. Attiva l’esecuzione della funzione di lazy loading solo quando le immagini entrano nella finestra visibile.
Per usarlo:
1. Includi la libreria nel tuo progetto:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vanilla-lazyload/17.8.3/lazyload.min.js"></script>
2. Sostituisci l’attributo src nei tag immagine con data-src:
<img data-src="image.jpg" alt="Example Image" class="lazy">
3. Inizializza LazyLoad.js con JavaScript:
var lazyLoadInstance = new LazyLoad({
elements_selector: ".lazy"
});

3.2. Intersection Observer API
L’Intersection Observer API è una funzionalità moderna di JavaScript che rileva quando gli elementi entrano o escono dalla finestra visibile.
Esempio:
<img data-src="image.jpg" alt="Example Image" class="lazy">
const lazyImages = document.querySelectorAll(".lazy");
const observer = new IntersectionObserver((entries) => {
entries.forEach((entry) => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
observer.unobserve(img);
}
});
});
lazyImages.forEach((img) => observer.observe(img));

Best practice per il Lazy Loading delle immagini
Implementare il lazy loading può migliorare le prestazioni del tuo sito web, ma seguire le best practice assicura che la tecnica funzioni efficacemente senza compromettere l’esperienza utente o la SEO.
1. Dai priorità alle immagini above-the-fold
Escludi sempre le immagini above-the-fold dal lazy loading.
Queste sono le immagini visibili senza scorrere e dovrebbero caricarsi immediatamente per evitare spostamenti del layout e migliorare le prestazioni percepite.
In HTML, basta omettere l’attributo loading=”lazy” per queste immagini.
2. Usa immagini placeholder
Mostrare un segnaposto mentre l’immagine si carica migliora l’esperienza visiva e previene spazi vuoti. Puoi usare un’immagine a bassa qualità o un colore di sfondo solido come placeholder.
Esempio con CSS:
.lazy {
background-color: #f3f3f3; /* Placeholder color */
min-height: 200px; /* Image height */
}
3. Ottimizza dimensioni e formati delle immagini
Il lazy loading funziona meglio con immagini ottimizzate. Usa formati moderni come WebP e comprimi le immagini prima di caricarle.
Strumenti come il plugin SiteGround Speed Optimizer possono convertire automaticamente le immagini in WebP e ottimizzarne le dimensioni.

4. Testa prestazioni e compatibilità
Testa sempre il lazy loading su diversi dispositivi e browser per verificarne la compatibilità.
Strumenti come Google PageSpeed Insights o Lighthouse possono aiutarti a misurare i miglioramenti delle prestazioni.
5. Combina il Lazy Loading con altre tecniche di ottimizzazione
Il LAzy Loading funziona meglio insieme ad altre ottimizzazioni delle prestazioni come:
Gli utenti SiteGround possono applicare facilmente queste ottimizzazioni utilizzando il plugin Speed Optimizer e le funzionalità integrate nel loro Site Tools.
Errori comuni nel Lazy Loading e come evitarli
Sebbene il lazy loading migliori le prestazioni, un’implementazione impropria può causare problemi che influenzano negativamente l’esperienza utente e la SEO.
Ecco alcuni errori comuni e come risolverli.
1. Lazy Loading delle immagini above-the-fold
Attivare il lazy loading delle immagini nella parte superiore della pagina web può causare ritardi nel rendering del contenuto e spostamenti del layout. Questo fa sembrare il tuo sito lento.
✅ Soluzione: Escludi le immagini above-the-fold dal lazy loading rimuovendo l’attributo loading=”lazy” dalle immagini chiave, come loghi, l’immagine dell’intestazione e le miniature in evidenza.
2. Non fornire le dimensioni delle immagini
Se le dimensioni delle immagini non sono impostate, il browser non sa quanto spazio riservare, portando a spostamenti del contenuto mentre le immagini si caricano.
✅ Soluzione: Definisci sempre gli attributi di larghezza e altezza per le immagini per prevenire spostamenti del layout.
<img src="image.jpg" alt="Example Image" width="600" height="400" loading="lazy">
3. Lazy Loading delle immagini critiche in slider o sfondi
Le immagini all’interno di slider o impostate come immagini di sfondo CSS potrebbero non attivare correttamente il lazy loading, causando ritardi nella visualizzazione del contenuto.
✅ Soluzione: Precarica le immagini critiche degli slider e usa il lazy loading basato su JavaScript per controllare quando applicare effettivamente la proprietà dell’immagine di sfondo.
Esempio di utilizzo della proprietà CSS dell’immagine di sfondo:
.lazy-bg {
background-image: url("placeholder.jpg");
}
.lazy-bg.loaded {
background-image: url("real-image.jpg");
}
Esempio JavaScript:
document.querySelectorAll('.lazy-bg').forEach(el => {
el.classList.add('loaded');
});
4. Uso eccessivo di JavaScript per il Lazy Loading
Sebbene le soluzioni di lazy loading basate su JavaScript offrano flessibilità, un uso eccessivo aumenta l’uso delle risorse e potrebbe non funzionare su tutti i browser.
✅ Soluzione: Usa il lazy loading nativo HTML (loading=”lazy”) ogni volta che è possibile. Usa soluzioni basate su JavaScript solo quando è necessario un maggiore controllo.
5. Dimenticare elementi SEO e di accessibilità
Le immagini caricate con lazy loading potrebbero non essere indicizzate correttamente dai motori di ricerca se mancano di attributi adeguati o esecuzione JavaScript. Inoltre, la mancanza di attributi alt può danneggiare l’accessibilità.
✅ Soluzione:
- Assicurati che le immagini siano individuabili dai motori di ricerca utilizzando elementi img adeguati invece di immagini di sfondo per contenuti importanti.
- Includi sempre attributi alt significativi per gli screen reader.
<img src="product.jpg" alt="Red running shoes" loading="lazy">
Seguire queste best practice ti aiuterà a evitare problemi comuni nel lazy loading garantendo un’esperienza fluida per utenti e motori di ricerca.
Punti chiave sul lazy loading delle immagini
Il lazy loading è una tecnica potente che migliora le prestazioni del sito web ritardando il caricamento delle immagini fino a quando non sono necessarie. Riduce i tempi di caricamento iniziali della pagina, risparmia larghezza di banda e migliora l’esperienza utente, specialmente su dispositivi mobili e connessioni più lente.
In questa guida, abbiamo trattato:
- Cos’è il lazy loading e come funziona
- Diversi metodi di implementazione, inclusi attributi HTML, JavaScript e plugin WordPress
- Best practice per prestazioni ottimali
- Errori comuni e come evitarli
Per gli utenti di WordPress, il plugin SiteGround Speed Optimizer offre un modo semplice per abilitare il lazy loading insieme ad altre ottimizzazioni delle prestazioni.
Seguendo i consigli delineati in questo articolo, puoi accelerare significativamente il tuo sito senza compromettere la qualità del contenuto.
