Ottimizzazione delle immagini

Come ottimizzare le immagini per la SEO e le prestazioni: formati moderni come WebP e AVIF, compressione, dimensioni corrette e lazy loading per migliorare Core Web Vitals e LCP.

Prima pubblicazione: 2 lug 2026 · Ultimo aggiornamento: 11 ago 2026 · Advanced
Lingue

L'ottimizzazione delle immagini è una disciplina della velocità, non una leva di ranking. Formati (WebP, AVIF), compressione e dimensionamento corretto servono a ridurre i byte e migliorare l'LCP: il formato in sé non offre alcun vantaggio diretto sul ranking (Mueller lo ha confermato tre volte). La regola di maggior valore è questa: non applicare mai il lazy loading all'immagine LCP (di solito l'hero), perché ritarda proprio la metrica che stai cercando di correggere. Quell'immagine deve avere loading="eager" e fetchpriority="high". loading="lazy" nativo serve alle immagini fuori dalla viewport iniziale, non a una linea fissa del «below the fold». La compressione non ha una qualità «giusta» universale: fai test per ogni immagine. Dimensione corretta = dimensione del contenitore renderizzato × device pixel ratio, e la dimensione del contenitore cambia con il layout responsive: per questo devi fornire un intervallo srcset. Nulla di tutto ciò garantisce un punteggio Core Web Vitals sufficiente, un cambiamento di ranking o più traffico: misura LCP e CLS prima e dopo. Questa è la guida pratica complementare all'hub Image SEO, che spiega cosa e perché.

In breve — L’ottimizzazione delle immagini è una disciplina della velocità della pagina e dei Core Web Vitals, non una leva diretta di ranking. La scelta del formato (WebP, AVIF) riduce i byte ma non offre alcun vantaggio SEO: Mueller lo ha detto in tre modi diversi; considera anche trasparenza, animazione e supporto attuale dei browser, non solo il rapporto di compressione. La regola singola più importante è: non applicare mai il lazy loading all’immagine LCP (di solito l’hero), perché ritarda proprio la metrica che stai ottimizzando. Imposta loading="eager" + fetchpriority="high", anche se i suggerimenti di priorità aiutano solo un collo di bottiglia nella scoperta o nei tempi di fetch, non ogni problema di LCP. loading="lazy" nativo serve alle immagini fuori dalla viewport iniziale, non a una linea fissa di pixel del «below the fold». La compressione non ha una qualità «giusta» universale: fai test per ogni tipo di immagine. Dimensioni corrette = dimensione del contenitore renderizzato × device pixel ratio, e il contenitore cambia con il layout responsive: fornisci quindi un intervallo srcset/sizes (un valore sizes errato scarica silenziosamente un’immagine sovradimensionata) con un fallback <picture>. Le immagini sono l’elemento LCP più comune sul web, motivo per cui questo articolo è collegato anche a Web Performance; ma nulla di tutto ciò garantisce un punteggio Core Web Vitals sufficiente, un cambiamento di ranking o più traffico: misura prima e dopo.

A cosa serve l’ottimizzazione delle immagini (chiariamo subito il mito)

Partiamo dal mito più grande: il formato immagine è una leva di velocità, non una leva di ranking. Convertire in WebP o AVIF non ti regala un aumento di ranking. Ti regala file più piccoli, che producono una pagina più veloce, che alimenta i Core Web Vitals: ed è quella la parte usata dai sistemi di ricerca. La catena è reale ma indiretta, e ridurla a «i formati di nuova generazione migliorano il ranking» è l’errore della maggior parte delle guide concorrenti.

La documentazione di Google è molto chiara sul perché le immagini contino per la velocità: sono “often the largest contributor to overall page size, which can make pages slow and expensive to load,” (traduzione) «spesso il contributo maggiore alle dimensioni complessive della pagina, che può rendere le pagine lente e costose da caricare» e il consiglio è “apply the latest image optimization and responsive image techniques to provide a high quality and fast user experience” (traduzione) «applicare le tecniche più recenti di ottimizzazione delle immagini e delle immagini responsive per offrire un’esperienza utente di alta qualità e veloce» (Google Search Central — Immagini). Nota il framing: esperienza utente veloce, non una ricompensa di ranking per il formato del file.

Evidence for this claim Images are often a major contributor to page weight, and Google recommends responsive image and optimization techniques for a fast user experience. Scope: Google Search image guidance about performance; no claim that a particular format directly improves rankings. Confidence: high · Verified: Google Search Central: Google Images SEO

“often the largest contributor to overall page size, which can make pages slow and expensive to load,” (traduzione) «è spesso il contributo più grande alle dimensioni complessive della pagina e può rendere lento e costoso il caricamento» “apply the latest image optimization and responsive image techniques to provide a high quality and fast user experience” (traduzione) «applicare le tecniche più recenti di ottimizzazione delle immagini e delle immagini responsive per offrire un’esperienza utente di alta qualità e veloce»

Per il cosa/perché della SEO delle immagini in generale — alt text, nomi dei file, sitemap delle immagini, dati strutturati e ranking nella ricerca immagini — il compito spetta all’hub principale Image SEO. Questo articolo è il come canonico: formati, compressione, dimensionamento e strategia di caricamento.

Parti dalla regola che tutti infrangono: non applicare mai il lazy loading all’immagine LCP

Se devi portare via una sola cosa da questa pagina, porta via questa. L’elemento Largest Contentful Paint (LCP) — la cosa più grande dipinta nella viewport al caricamento — è “either an image or a web font,” (traduzione) «un’immagine o un web font» secondo web.dev (Ottimizza LCP), e nella maggior parte delle pagine è un’immagine: l’hero, l’immagine in evidenza, la foto del prodotto. web.dev formula la regola in modo quasi altrettanto netto di Google:

“either an image or a web font,” (traduzione) «un’immagine oppure un font web»

Citazione da web.dev: “Never lazy-load your LCP image, as that will always lead to unnecessary resource load delay, and will have a negative impact on LCP.” (traduzione) «non applicare mai il lazy loading all’immagine LCP, perché ciò causerà sempre un ritardo inutile nel caricamento della risorsa e avrà un impatto negativo sull’LCP»

Evidence for this claim Lazy-loading an LCP image adds resource load delay; web.dev recommends loading it eagerly and considering high fetch priority. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

È la sfumatura che i consigli «usa sempre il lazy loading» ignorano completamente. Il lazy loading è ottimo per le immagini sotto la piega. Applicalo all’immagine LCP e ritardi attivamente l’unica metrica che stai cercando di migliorare. La guida di web.dev sul lazy loading dice la stessa cosa dall’altro lato: “Don’t lazy-load images that are likely to be in-viewport when the page loads, especially LCP images” (traduzione) «non applicare il lazy loading alle immagini che probabilmente si trovano nella viewport quando la pagina viene caricata, soprattutto alle immagini LCP» (Lazy loading a livello browser).

Ho sostenuto la stessa tesi nel mio articolo LCP su Ahrefs: l’elemento più grande “is usually going to be a featured image or maybe the <h1> tag,” (traduzione) «di solito un’immagine in evidenza o magari il tag <h1>» e da questo seguono le correzioni. “If you don’t need the image, the most impactful solution is to simply get rid of it. If you must have the image, I suggest optimizing the size and quality to keep it as small as possible.” (traduzione) «Se non ti serve l’immagine, la soluzione più efficace è semplicemente eliminarla. Se devi tenerla, suggerisco di ottimizzarne dimensioni e qualità per mantenerla il più piccola possibile» Dovresti “lazy load any images that you don’t need immediately” (traduzione) «caricare in lazy loading le immagini che non servono subito», ma il rovescio della medaglia è una regola rigida che scrivo in maiuscolo per un motivo: “Do not lazy load images above the fold!” (traduzione) «non applicare il lazy loading alle immagini sopra la piega»

“lazy load any images that you don’t need immediately” (traduzione) «caricare in lazy loading le immagini che non servono immediatamente» “Do not lazy load images above the fold!” (traduzione) «non applicare il lazy loading alle immagini nella parte visibile iniziale»

fetchpriority="high" sull’immagine LCP

Non applicare il lazy loading all’hero è necessario ma non sufficiente. Per assicurarti che l’immagine LCP si carichi il prima possibile, indica la sua priorità al browser. Da web.dev:

Indicazione di web.dev: “You can hint to the browser as to which resources are most important using the fetchpriority attribute… It’s a good idea to set fetchpriority=\"high\" on an <img> element if you think it’s likely to be your page’s LCP element.” (traduzione) «Puoi indicare al browser quali risorse sono più importanti usando l’attributo fetchpriority… È una buona idea impostare fetchpriority=“high” su un elemento <img> se pensi che sia probabilmente l’elemento LCP della pagina»

<img src="/hero.webp" alt="…" fetchpriority="high" width="1200" height="675">

Nel mio articolo sull’LCP descrivo fetchpriority="high" allo stesso modo: si “can be used on <img> or <link> tags and tells browsers to get the image early” (traduzione) «può essere usato sui tag <img> o <link> e indica ai browser di recuperare presto l’immagine»; lo abbino agli Early Hints (una risposta 103) come metodo complementare per avviare il fetch prima che arrivi l’HTML principale. La ricetta LCP è quindi: caricamento eager + fetchpriority="high" (+ Early Hints se lo stack li supporta). Tutto il resto della pagina può usare il lazy loading.

Tratta fetchpriority e il preload come strumenti specifici per un collo di bottiglia, non come una correzione garantita. Aiutano quando l’immagine LCP viene scoperta o recuperata in ritardo; non fanno nulla per una risposta lenta del server, una risorsa che blocca il rendering prima dell’immagine o un file davvero sovradimensionato. Conferma quale collo di bottiglia hai davvero (PageSpeed Insights o Lighthouse scompongono l’LCP nelle sue parti) prima di presumere che un suggerimento di priorità basti a spostare il numero.

loading="lazy" nativo — gratuito, semplice e corretto sotto la piega

Per ogni immagine che non si trova nella viewport iniziale, il lazy loading nativo è il modo più semplice di ottenere un miglioramento prestazionale. web.dev: “You can use the loading attribute to lazy-load images without the need to write custom lazy-loading code or use a separate JavaScript library.” (traduzione) «Puoi usare l’attributo loading per applicare il lazy loading alle immagini senza scrivere codice personalizzato né usare una libreria JavaScript separata»

<img src="/below-the-fold.webp" alt="…" loading="lazy" width="800" height="600">

Due aspetti lo mantengono sicuro:

  • Basalo sulla viewport iniziale, non su una linea fissa del «below the fold». La «piega» non è un conteggio fisso di pixel: cambia in base alla dimensione della viewport e al layout. Il test effettivo è se l’immagine sarà probabilmente visibile quando la pagina viene dipinta per la prima volta. Tutto ciò che lo sarà — soprattutto l’immagine LCP — riceve loading="eager" (il default), mai lazy.
  • Preferisci l’attributo nativo ai trucchi JavaScript. I lazy loader JavaScript che nascondono il vero URL in data-src e non espongono mai un src rischiano di impedire del tutto l’indicizzazione. loading="lazy" nativo (o un IntersectionObserver pulito) mantiene src visibile ai crawler. L’hub principale Image SEO tratta in dettaglio questa cautela sull’indicizzazione.

Formati moderni: WebP vs. AVIF vs. JPEG/PNG

I formati sono il punto in cui il chiarimento del mito conta di più, quindi precisiamo che cosa ti offre ciascuno: byte, non ranking.

  • WebP“often has better compression than JPEG, PNG, or GIF, offering both lossy and lossless compression” (traduzione) «spesso offre una compressione migliore di JPEG, PNG o GIF, con compressione sia con perdita sia senza perdita» (web.dev — Prestazioni delle immagini). È circa il 25–35% più piccolo di JPEG con un supporto browser quasi universale. Oggi è il default sicuro per le foto.
  • AVIF“supports both lossy and lossless compression, and tests have shown greater than 50% savings when compared to JPEG in some cases.” (traduzione) «supporta la compressione con e senza perdita e in alcuni casi i test hanno mostrato un risparmio superiore al 50% rispetto a JPEG» Ha una compressione ai vertici, ma un supporto leggermente meno universale: abbinalo a un fallback WebP o JPEG.
  • JPEG — il fallback universale per le fotografie.
  • PNG — quando servono trasparenza o grafica con bordi netti.
  • SVG — loghi e icone: vettoriale, si ridimensiona all’infinito, piccolo.

“supports both lossy and lossless compression, and tests have shown greater than 50% savings when compared to JPEG in some cases.” (traduzione) «supporta la compressione con e senza perdita e alcuni test hanno mostrato un risparmio superiore al 50% rispetto a JPEG»

Il formato da scegliere dipende anche da ciò che l’immagine deve fare, non solo da quello che comprime di più: trasparenza, animazione e coerenza con cui un browser o uno strumento supporta quella combinazione specifica entrano nella scelta insieme al risparmio di dimensioni grezzo qui sopra. Controlla il supporto attuale per la funzione esatta che ti serve, soprattutto per gli elementi animati, prima di adottare un formato come default.

Google Search supporta “BMP, GIF, JPEG, PNG, WebP, SVG, and AVIF” (traduzione) «BMP, GIF, JPEG, PNG, WebP, SVG e AVIF» referenziati nel src di un <img>. Servi il formato moderno con un fallback graduale usando <picture>:

<picture>
  <source srcset="/photo.avif" type="image/avif">
  <source srcset="/photo.webp" type="image/webp">
  <img src="/photo.jpg" alt="…" width="1200" height="800" loading="lazy">
</picture>

L’<img src> in fondo è la tua rete di sicurezza: i browser più vecchi e i crawler vi ricadono e quello è l’URL che Google indicizza davvero.

Il formato influisce sul ranking? (No: e Mueller lo ha detto in tre modi)

Questo è l’unico filo di chiarimento del mito che vale la pena seguire per tutto il tema. Tre dichiarazioni di John Mueller, separate e indipendenti nel tempo, arrivano alla stessa conclusione: il formato influenza la meccanica di crawl/indicizzazione e il peso della pagina, mai il ranking direttamente:

  1. AVIF non offre alcun vantaggio SEO. Dopo l’aggiunta del supporto AVIF nativo da parte di Google, Mueller ha confermato che non c’è alcun vantaggio SEO nell’usare AVIF rispetto agli altri formati supportati (copertura SE Roundtable).
  2. WebP è «sufficiente». “WebP images are fine for Image Search” (traduzione) «le immagini WebP vanno bene per la ricerca immagini» — «sufficiente», in modo significativo, non «migliore» (copertura SE Roundtable).
  3. Le particolarità dell’indicizzazione WebP non sono specifiche del formato. Quando le persone hanno visto file WebP apparire come «Crawled – currently not indexed» in GSC, il punto di Mueller era che i file immagine non vengono indicizzati come pagine HTML e che non riteneva affatto che il fenomeno fosse limitato a WebP (copertura SEJ).
Queste dichiarazioni di Mueller sono citate tramite copertura secondaria verbatim (SE Roundtable, Search Engine Journal) di office hours e post social, invece che tramite una pagina primaria con deep link; sono le stesse citazioni usate nell’hub principale Image SEO, mantenute coerenti qui. L’articolo SEJ parafrasa e riassume Mueller invece di riportarlo in un blocco citato.

Compressione e qualità: non esiste un’impostazione «giusta» universale

Il consiglio sbagliato più comune nelle guide alle immagini è una singola indicazione del tipo «comprimi all’80%». web.dev è esplicito: non esiste un numero magico:

Indicazione di web.dev: “When compressing, there isn’t a universal setting suitable for all cases. The recommended approach would be to experiment with different compression levels until you find a good compromise between image quality and file size.” (traduzione) «Quando comprimi, non esiste un’impostazione universale adatta a tutti i casi. L’approccio consigliato è sperimentare con diversi livelli di compressione finché trovi un buon compromesso tra qualità dell’immagine e dimensione del file»

In pratica: fai test per ogni tipo di immagine. Le fotografie tollerano bene una compressione lossy aggressiva; grafica, loghi e screenshot con testo mostrano rapidamente gli artefatti e spesso richiedono lossless o un’impostazione di qualità maggiore. Invece di fidarti di un solo cursore, esporta la stessa immagine a due o tre livelli di qualità e guardala alla dimensione di visualizzazione: la più piccola che non riesci a distinguere visivamente dall’originale è la tua risposta. È un flusso di lavoro reale, non «passala in TinyPNG e spera».

Dimensioni corrette: dimensione del contenitore × device pixel ratio

La regola non è «rendila semplicemente più piccola»: è abbinare la dimensione renderizzata × il device pixel ratio (DPR). Da web.dev:

Esempio di dimensionamento secondo web.dev: “An image displayed in a 500 pixel by 500 pixel container would be optimally sized at 500 pixels by 500 pixels.” (traduzione) «Un’immagine mostrata in un contenitore di 500 per 500 pixel ha dimensioni ottimali di 500 per 500 pixel»

Esempio di dimensionamento secondo web.dev: “If the device has a DPR of 2 and the image is displayed in a 500 pixel by 500 pixel container, then a square 1000 pixel image… is now the optimal size.” (traduzione) «Se il dispositivo ha un DPR pari a 2 e l’immagine è mostrata in un contenitore di 500 per 500 pixel, un’immagine quadrata da 1000 pixel è ora della dimensione ottimale»

Quindi un contenitore da 500×500 su uno schermo 2× (di classe Retina) richiede una sorgente da 1 000×1 000. Vai oltre e sprechi byte senza un guadagno percepibile; vai sotto e l’immagine appare morbida sugli schermi ad alto DPR. Per questo servi un intervallo di dimensioni e lascia scegliere il browser, usando srcset + sizes:

<img
  src="/photo-800.webp"
  srcset="/photo-400.webp 400w, /photo-800.webp 800w, /photo-1600.webp 1600w"
  sizes="(max-width: 600px) 100vw, 500px"
  alt="…" width="800" height="600" loading="lazy">

Il browser legge la larghezza del contenitore (sizes) e il proprio DPR, poi sceglie il candidato giusto da srcset: la versione per la distribuzione responsive della matematica DPR qui sopra. Google raccomanda <picture> o srcset per le immagini responsive e dice di “always specify a fallback URL using the src attribute.” (traduzione) «specifica sempre un URL di fallback usando l’attributo src»

“always specify a fallback URL using the src attribute.” (traduzione) «indica sempre un URL di fallback tramite l’attributo src»

Se sbagli sizes, nulla ti avvisa. Se il valore dichiarato non corrisponde alla larghezza a cui l’immagine viene davvero renderizzata — un bug comune dopo una modifica del layout o del CSS — il browser non può saperlo e sceglie semplicemente un candidato in base al numero inaccurato che gli hai fornito; di solito scarica un file più grande di quanto il layout richieda. Questo annulla silenziosamente il lavoro su formato e compressione. L’unico modo affidabile per scoprirlo è aprire il pannello Network degli strumenti per sviluppatori, trovare la richiesta dell’immagine e confrontare le dimensioni del file consegnato con la larghezza effettiva del contenitore renderizzato.

L’esempio 500×500 qui sopra è illustrativo, non un numero da fissare per tutto il sito: la stessa immagine hero può essere renderizzata a una larghezza diversa su mobile e desktop, quindi la «dimensione del contenitore» cambia con il layout responsive invece di restare fissa. Ecco esattamente perché devi fornire un intervallo srcset anziché esportare una sola dimensione «ottimale» e considerare il lavoro concluso.

Perché tutto questo riconduce ai Core Web Vitals

Il filo conduttore che collega ogni tecnica qui sopra è LCP. Le immagini sono l’elemento LCP più comune sul web e LCP è uno dei tre Core Web Vitals. L’obiettivo di Google è: “LCP should occur within 2.5 seconds” (traduzione) «LCP dovrebbe verificarsi entro 2,5 secondi» al 75° percentile dei caricamenti delle pagine su mobile e desktop (web.dev — Vitals). I Core Web Vitals “apply to all web pages, should be measured by all site owners, and will be surfaced across all Google tools.” (traduzione) «si applicano a tutte le pagine web, devono essere misurati da tutti i proprietari dei siti e saranno mostrati in tutti gli strumenti Google»

L’ottimizzazione delle immagini non è quindi un fattore di ranking autonomo: è un contributo a un segnale di esperienza della pagina (Core Web Vitals) che i sistemi di ranking usano davvero. Questo è il framing corretto e spiega perché l’articolo vive sia nel cluster Image SEO sia in quello Web Performance. Per l’analisi approfondita della metrica, consulta Core Web Vitals e LCP in Web Performance.

È importante dichiarare un’altra cautela: nessuna correzione di questa pagina garantisce qualcosa. I byte delle immagini sono solo una possibile componente dell’LCP — la scomposizione delle parti LCP di web.dev include anche tempo di risposta del server e risorse che bloccano il rendering prima dell’immagine, aspetti che formato e compressione non modificano — e le dimensioni dell’immagine sono solo un input del CLS, non una garanzia di un punteggio preciso. Ridurre un’immagine hero può aiutare in modo misurabile, non fare nulla o, se il vero collo di bottiglia è altrove, spostare a malapena il numero. Ottimizzare le immagini non garantisce da solo una valutazione Core Web Vitals sufficiente, un cambiamento di ranking, più traffico, più conversioni o una citazione nelle ricerche AI: questi risultati dipendono da molto più dei byte delle immagini. Tratta ogni correzione come un’ipotesi, non come un risultato acquisito: misura LCP e CLS prima e dopo, in laboratorio e sul campo, e lascia che siano i dati — non l’ipotesi che l’ottimizzazione abbia «funzionato» — a dirti se è cambiato qualcosa.

Problemi comuni di implementazione

  • Le immagini di sfondo CSS non vengono indicizzate. A volte gli sviluppatori sostituiscono un <img> con un background-image per comodità di layout. Google “can find images in the src attribute of <img> element (even when it’s a child of other elements, such as the <picture> element)” (traduzione) «può trovare immagini nell’attributo src dell’elemento <img> (anche quando è figlio di altri elementi, come l’elemento <picture>)» ma “doesn’t index CSS images.” (traduzione) «non indicizza le immagini CSS» Se vuoi che l’immagine compaia nella ricerca immagini, mantienila in un <img>. (È un aspetto vicino alle prestazioni, ma l’errore è abbastanza comune da meritare una segnalazione.)
  • Non rinominare in blocco i file esistenti per un «refresh» prestazionale/SEO. Mueller ha detto che serve “a lot of time” (traduzione) «molto tempo» ai sistemi di Google per rielaborare le immagini rinominate e che l’effetto è minimo se il contesto è già buono: l’hub principale Image SEO lo tratta in dettaglio.
  • Larghezza/altezza mancanti. Imposta sempre width e height intrinseci (o CSS aspect-ratio) così il browser può riservare spazio prima che l’immagine si carichi: riduce lo spostamento del layout dovuto alle immagini, ma è uno degli input del CLS, non una garanzia di un punteggio preciso.

Ricetta rapida

  • Immagine hero / LCP: formato moderno, dimensioni corrette, loading="eager", fetchpriority="high".
  • Tutto ciò che si trova sotto la piega: loading="lazy".
  • Servi WebP/AVIF con un fallback src di <picture>.
  • Dimensiona in base a contenitore × DPR; fornisci un intervallo srcset con sizes.
  • Comprimi per tipo di immagine: prova 2–3 livelli di qualità, non fidarti di un solo cursore.
  • Imposta sempre width/height.

Per il resto della SEO delle immagini — alt text, nomi dei file, sitemap delle immagini, dati strutturati e ranking nella ricerca immagini — torna all’hub Image SEO.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.