📌 lazy loading: a cosa serve e come applicarlo bene

Il lazy loading serve a ridurre il peso del caricamento iniziale: rimanda immagini e iframe non visibili finché l’utente non li raggiunge. È un vantaggio reale su mobile e su pagine lunghe, ma va applicato con criterio: mai sull’hero/LCP e sempre con dimensioni dichiarate per evitare CLS.

Schema di una pagina web con immagini e video caricati in alto e contenuti segnaposto con indicatore di attesa in basso.

Autore: Redazione · Creato: 22/02/2026 21:59

Lazy loading: a cosa serve davvero (e quando conviene usarlo)

Un sito non è “lento” perché è brutto o perché l’hosting è scarso: nella maggior parte dei casi è lento perché carica troppe cose troppo presto. Immagini, iframe, embed social e widget di terze parti competono per banda, CPU e tempo di parsing proprio nel momento più critico: l’avvio pagina.

Il lazy loading serve a risolvere questo problema in modo chirurgico: rimanda il caricamento delle risorse non essenziali finché non stanno per diventare visibili. Il risultato è concreto:

  • Caricamento iniziale più leggero (meno richieste e meno payload subito).
  • Velocità percepita maggiore: l’utente vede prima contenuto utile, non attende media “inutili”.
  • Meno consumo dati su mobile (fondamentale per pagine lunghe o con molte immagini).
  • Migliori metriche di esperienza se implementato correttamente: riduzione del carico iniziale e prevenzione dei “salti” di layout (CLS).

Attenzione però: il lazy loading non è un trucco, è una priorità di caricamento. Se lo applichi in modo cieco peggiori l’elemento più importante: LCP (Largest Contentful Paint). Quindi la regola è netta: lazy sotto la piega, prioritario sopra la piega.

Cos’è il lazy loading (definizione operativa)

Il lazy loading è una strategia di caricamento “a domanda”:

  • carichi subito solo ciò che serve per rendere la parte iniziale della pagina (above the fold);
  • rimandi tutto il resto (below the fold) finché l’utente non ci arriva con lo scroll.

In pratica, sposti risorse non critiche dal momento più delicato (avvio pagina) a un momento successivo, dove il browser e la rete hanno più margine.

Dove conviene usarlo (e dove è un errore)

Da lazy-loadare (quasi sempre)

  • Immagini sotto la prima schermata (articoli lunghi, liste di card, gallery).
  • Iframe (YouTube, mappe, embed social): spesso pesanti e ricchi di script.
  • Componenti terze parti non essenziali (widget extra, contenuti “secondari”).

Da NON lazy-loadare (regola ferrea)

  • Hero image o qualsiasi elemento che probabilmente è il tuo LCP.
  • Contenuti essenziali per comprendere la pagina immediatamente (titolo, incipit, call-to-action primaria).

Se l’utente apre una pagina e il contenuto principale arriva in ritardo perché l’hai messo in lazy, è un peggioramento misurabile della performance percepita.

Implementazione 1: lazy loading nativo (la soluzione migliore quando basta)

Il metodo più pulito è quello nativo: loading="lazy". È leggero, semplice e non richiede JavaScript.

Immagini

<img
  src="immagine-grande.webp"
  alt="Descrizione"
  loading="lazy"
  decoding="async"
  width="1200"
  height="800">

Perché questi dettagli contano:

  • loading="lazy" rimanda il download finché l’immagine è vicina alla viewport.
  • decoding="async" aiuta a non bloccare il rendering quando possibile.
  • width/height (o un rapporto fisso) evita CLS: il layout non deve “saltare” quando l’immagine arriva.

Iframe (video, mappe, embed)

<iframe
  src="https://www.youtube.com/embed/VIDEO_ID"
  loading="lazy"
  title="Video"
  width="560"
  height="315"></iframe>

Gli iframe spesso trascinano dietro JavaScript, font, tracciamenti e rendering aggiuntivo. Rimandarli, quando non sono visibili, riduce drasticamente il peso iniziale.

Implementazione 2: controllo avanzato (Intersection Observer)

Se devi gestire casi non coperti dal nativo (placeholder personalizzati, caricamento di immagini gestite via data-src, logiche di pre-caricamento controllato), usa Intersection Observer: assegni src solo quando serve.

HTML: non caricare subito

<img
  data-src="immagine-grande.webp"
  alt="Descrizione"
  width="1200"
  height="800">

JavaScript: carica quando entra (o sta per entrare)

document.addEventListener("DOMContentLoaded", () => {
  const imgs = document.querySelectorAll("img[data-src]");

  const io = new IntersectionObserver((entries, observer) => {
    for (const entry of entries) {
      if (!entry.isIntersecting) continue;

      const img = entry.target;
      img.src = img.dataset.src;

      img.removeAttribute("data-src");
      observer.unobserve(img);
    }
  }, {
    root: null,
    threshold: 0,
    rootMargin: "200px"
  });

  imgs.forEach(img => io.observe(img));
});

Nota tecnica: rootMargin è la differenza tra un lazy loading “buono” e uno fastidioso. Se carichi troppo tardi, l’utente vede un buco. Se carichi un po’ prima, l’esperienza resta fluida.

Errori tipici che peggiorano le prestazioni

1) Lazy-loadare l’elemento LCP

È il modo più rapido per peggiorare la performance percepita. L’hero (o il contenuto principale) deve essere prioritario, non rimandato.

2) Non riservare spazio alle immagini (CLS)

Se non dichiari dimensioni o rapporto, l’immagine arriva e spinge giù il contenuto: layout instabile, UX peggiore, metriche peggiori.

3) Credere che lazy loading sostituisca l’ottimizzazione immagini

Lazy loading rimanda. Non “alleggerisce” automaticamente. Devi comunque:

  • comprimere e scegliere formati efficienti (WebP/AVIF quando possibile),
  • usare immagini responsive (srcset/sizes) se hai layout variabili,
  • configurare caching corretto.

Come verificare se hai migliorato davvero

  • Fai un test con Lighthouse / PageSpeed per un confronto rapido.
  • Controlla soprattutto LCP e CLS: il lazy deve migliorare il carico iniziale senza creare instabilità.
  • Prova su mobile e rete lenta: è lì che il lazy loading mostra il suo valore reale.

Conclusione

Il lazy loading serve a una cosa precisa: proteggere l’avvio pagina dal peso delle risorse non critiche. Usalo su immagini e iframe sotto la piega, proteggi l’LCP, riserva sempre lo spazio per evitare CLS, e misura i risultati. Se fai queste tre cose, l’ottimizzazione è reale, non cosmetica.

Messaggio sponsorizzato
Pubblicità

🔗 Condividi l'articolo:

Autore: Redazione · Creato: 22/02/2026 21:59 · Ultima modifica: 03/09/2026 12:18