Largest Contentful Paint (LCP) e SEO

Cosa misura LCP, le sue soglie, le quattro sotto-parti che lo compongono e come migliorarlo realmente — la Core Web Vital con cui le persone faticano di più.

Prima pubblicazione: 26 giu 2026 · Ultimo aggiornamento: 13 ago 2026 · Advanced
Lingue

Largest Contentful Paint (LCP) è il tempo di rendering dell'immagine o del blocco di testo più grande visibile nel viewport, rispetto a quando la pagina ha iniziato a caricarsi. Un valore buono è ≤2,5 s al 75° percentile degli utenti reali; è una delle tre Core Web Vitals. Si suddivide in quattro sotto-parti — TTFB, ritardo del caricamento delle risorse, durata del caricamento delle risorse e ritardo del rendering dell'elemento — e di solito TTFB più la durata del caricamento dominano. I maggiori guadagni: non caricare pigramente l'immagine LCP, assegnarle fetchpriority=high, precaricarla, ridurre le risorse che bloccano il rendering e correggere TTFB. È una metrica sul campo — gli strumenti di laboratorio la approssimano solo — e tra le Core Web Vitals è quella che le persone faticano di più a superare, soprattutto su mobile.

TL;DR — L’LCP è il tempo di rendering dell’immagine o del blocco di testo più grande visibile nel viewport, relativo al momento in cui la pagina ha iniziato a caricarsi. Buono è ≤ 2,5 s al 75° percentile degli utenti reali (suddivisi per dispositivo); 2,5–4 s richiede lavoro, oltre 4 s è scarso. È una delle tre Core Web Vitals e si suddivide in quattro sotto-parti — TTFB, ritardo del caricamento della risorsa, durata del caricamento della risorsa, ritardo del rendering dell’elemento — dove TTFB e durata del caricamento di solito dominano (linee guida, non quote fisse — diagnostica la tua pagina). Le soluzioni principali: non usare mai il caricamento differito per l’immagine LCP, aggiungi fetchpriority="high" sul candidato effettivo, precaricala quando non è nell’HTML, elimina CSS/JS che bloccano il rendering e correggi il TTFB. È una metrica sul campo — gli strumenti di laboratorio la approssimano soltanto — e l’elemento LCP può cambiare durante il caricamento. Google conferma che le Core Web Vitals alimentano i sistemi di ranking ma non pubblica un peso esatto per l’LCP né lo definisce un criterio di spareggio; la rilevanza dei contenuti domina ancora.

Cosa misura esattamente l’LCP

LCP riporta il tempo di rendering dell’elemento immagine o testo più grande visibile nel viewport, misurato rispetto al momento in cui l’utente ha navigato per la prima volta alla pagina. L’inquadramento di Google: è il proxy standardizzato più vicino a quando il contenuto principale appare all’utente. Ha sostituito metriche precedenti e più vaghe come First Meaningful Paint e Speed Index.

Alcune cose che confondono subito le persone:

  • Non è il “tempo di caricamento della pagina”. Una pagina può avere tutte le risorse scaricate e avere comunque un LCP lento se il rendering dell’elemento più grande è stato bloccato. LCP riguarda quell’unico elemento, non l’intera pagina.
  • Non è la stessa cosa di FCP. First Contentful Paint scatta quando qualsiasi contenuto appare per la prima volta; LCP attende l’elemento più grande. Una pagina può avere un FCP veloce (la barra di navigazione viene renderizzata) e un LCP lento (l’immagine principale viene caricata tardi).
  • È una metrica dinamica. Il browser invia un nuovo candidato LCP ogni volta che un elemento più grande diventa visibile. L’ultima voce prima che l’utente interagisca (tocco, scorrimento, pressione di un tasto) o che la pagina venga scaricata è il valore che conta: l’interazione spesso cambia ciò che è visibile, quindi la segnalazione si ferma lì. Un candidato che viene successivamente rimosso dal DOM non cancella la propria voce: rimane l’elemento segnalato a meno che un elemento ancora più grande non venga renderizzato prima che la segnalazione si fermi.

Le soglie — e perché 2,5 secondi

FasciaLCP
Buono≤ 2,5 s
Da migliorare2,5 s – 4,0 s
Scarso> 4,0 s

Valutato al 75° percentile dei caricamenti di pagina reali degli utenti, segmentato per tipo di dispositivo. Quindi tre visite su quattro devono rientrare sotto i 2,5 s perché un’origine superi il test.

Evidence for this claim A good LCP is 2.5 seconds or less at the 75th percentile of page loads, segmented by device type. Scope: Current web.dev LCP field threshold and assessment method. Confidence: high · Verified: web.dev: Largest Contentful Paint

Perché proprio 2,5? La metodologia delle soglie di Google si è basata su due cose: ricerche sulla percezione umana che indicano circa 1–3 secondi come la fascia che sembra “immediata”, e dati di raggiungibilità di CrUX che mostrano come 2,5 s fosse costantemente raggiungibile per siti ben ottimizzati senza essere banalmente facile. Obiettivi più stringenti come 1,5 s o 2,0 s non erano costantemente raggiungibili su un numero sufficiente di origini, quindi non sono stati adottati.

Cosa conta come elemento LCP

I tipi di elemento considerati per LCP:

  • Elementi <img>
  • Elementi <image> all’interno di un <svg>
  • Elementi <video> (il tempo di caricamento dell’immagine poster, o il primo fotogramma, a seconda di quale avviene prima)
  • Un elemento con un’immagine di sfondo caricata tramite la funzione CSS url()
  • Elementi a livello di blocco contenenti nodi di testo o altri figli di testo inline

La dimensione segnalata è ciò che è effettivamente visibile nel viewport: le porzioni tagliate o scorse fuori non contano, e per le immagini è la dimensione visibile o la dimensione intrinseca, a seconda di quale è minore. Margini, padding e bordi vengono ignorati. Un piccolo numero di elementi viene escluso da euristiche: qualsiasi cosa con opacity: 0, elementi che coprono l’intero viewport (trattati come sfondi) e immagini segnaposto a bassa entropia.

Circa tre quarti delle pagine hanno un’immagine come elemento LCP, quindi il lavoro sulle immagini è di solito la prima mossa giusta. Ma non sempre, e non sempre compressione (ne parleremo più avanti). La parte rimanente sono LCP testuali, dove la leva è completamente diversa: è il caricamento dei font, non il peso delle immagini.

Le quattro sotto-parti — la parte che la maggior parte degli articoli salta

Questo è lo schema con cui inizierei qualsiasi diagnosi LCP. web.dev suddivide LCP in quattro sotto-parti sequenziali:

  1. Time to First Byte (TTFB) — da quando l’utente inizia a caricare la pagina a quando il browser riceve il primo byte di HTML. Quota tipica: ~40% del LCP totale.
  2. Ritardo di caricamento della risorsa — il divario tra TTFB e il momento in cui il browser inizia a caricare la risorsa LCP. Questo è il tempo di scoperta. Quota tipica: sotto il 10%.
  3. Durata del caricamento della risorsa — quanto tempo impiega la risorsa LCP stessa a essere scaricata. Quota tipica: ~40%.
  4. Ritardo di rendering dell’elemento — da quando la risorsa finisce di caricarsi a quando l’elemento viene effettivamente renderizzato. Quota tipica: sotto il 10%.
Sotto-componente LCPQuota tipica del LCP totale
Time to First Byte~40%
Ritardo di caricamento della risorsa< 10%
Durata del caricamento della risorsa~40%
Ritardo di rendering dell’elemento< 10%

Il principio alla base della tabella: la stragrande maggioranza del tempo LCP dovrebbe essere spesa caricando il documento HTML e la risorsa LCP. Qualsiasi tratto in cui l’uno né l’altra è in caricamento è un’opportunità di miglioramento.

web.dev è esplicito sul fatto che queste percentuali sono linee guida, non regole rigide — non trasformarle in obiettivi di secondi assoluti e non forzare ogni pagina a rispettare la suddivisione. Hanno senso solo in relazione tra loro, e se il tuo LCP è già costantemente entro 2,5 secondi, le proporzioni relative non contano affatto. Usa la tabella per individuare quale sotto-componente sta consumando una quota sproporzionata sulla tua pagina, poi correggi quella — non per inseguire una suddivisione esatta 40/10/40/10.

Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP
Break LCP into four sequential sub-parts, then optimize the part consuming more than its intended share. Fonte: web.dev

The timeline begins with Time to First Byte, targeted at roughly 40 percent of total LCP. Resource load delay follows and should remain under 10 percent. Resource load duration is targeted at roughly 40 percent. Element render delay should remain under 10 percent and ends when the largest element actually paints.

© Patrick Stox LLC · CC BY 4.0 ·

Ed ecco il punto che ribalta l’assunto comune: a partire da febbraio 2025 queste quattro sotto-componenti sono disponibili nell’API CrUX per gli LCP delle immagini, e l’analisi dei dati di HTTP Archive da parte del team di Chrome ha rilevato che il tempo di download dell’immagine era spesso la parte più piccola del tempo LCP. In altre parole, “basta comprimere le mie immagini” spesso corregge la sotto-componente sbagliata. TTFB e ritardo di scoperta sono spesso le leve più efficaci.

Come trovare il tuo elemento LCP

Prima di ottimizzare qualsiasi cosa, scopri quale elemento è il tuo LCP e quale sotto-componente è il collo di bottiglia:

  • PageSpeed Insights — la sezione Diagnostics segnala l’elemento LCP e la scheda dei dati sul campo mostra il punteggio dei tuoi utenti reali.
  • Chrome DevTools — il pannello Performance segna il nodo LCP sulla timeline.
  • La libreria JS web-vitals — registra LCP (e l’elemento) dal tuo monitoraggio degli utenti reali.

Come migliorare l’LCP

Associa ogni correzione alla sotto-componente che mira:

Correggi il ritardo di caricamento della risorsa (scoperta). Questa è quella a più alta leva e la più comunemente rotta.

  • Non caricare mai in modo differito l’immagine LCP. loading="lazy" sull’elemento LCP aggiunge sempre un ritardo di caricamento inutile. Riserva il caricamento differito alle immagini fuori dalla prima schermata.
  • Aggiungi fetchpriority="high" all’immagine LCP probabile così il browser la recupera presto ad alta priorità.
  • Precaricala con <link rel="preload"> quando l’immagine non è scopribile nell’HTML iniziale — ad esempio, quando viene caricata tramite CSS o JavaScript. Caricare l’immagine principale tramite JS è una pratica da evitare proprio perché nasconde l’URL allo scanner di preload del browser.
  • Ospita le risorse critiche sullo stesso origin così il browser non paga un extra setup di connessione.
Evidence for this claim An LCP image should not be lazy-loaded, and reducing resource load delay is a primary LCP optimization. Scope: web.dev guidance for image-based LCP elements. Confidence: high · Verified: web.dev: Optimize LCP

Preload e fetchpriority risolvono problemi diversi, quindi non ricorrere a entrambi per abitudine. Preload espone una risorsa che lo scanner di preload del browser altrimenti scoprirebbe tardi (un’immagine caricata tramite JS o CSS, ad esempio); fetchpriority cambia la priorità di fetch di una risorsa che il browser ha già trovato. Se scoperta e priorità sono già corrette — l’immagine è un semplice <img> nell’HTML iniziale — aggiungere l’uno o l’altro può fare poco oltre a richieste extra. Controlla una traccia, applica quello che corrisponde al problema reale e conferma che il numero sul campo si è mosso.

Correggi il ritardo di rendering dell’elemento.

  • Riduci o inline il CSS che blocca il rendering; rimanda gli stili non critici.
  • Evita script sincroni nel <head>.
  • Preferisci il rendering lato server o la generazione statica così il markup arriva pronto per il paint, e spezza i task lunghi sul thread principale.

Riduci la durata del caricamento della risorsa.

  • Formati immagine moderni (WebP, AVIF), compressione sensata e una CDN.
  • Cache-Control efficiente. E non ignorare la contesa di rete — il caricamento differito delle altre immagini sotto la piega può liberare banda così l’immagine LCP arriva prima.

Riduci il TTFB.

  • Minimizza i redirect, elimina i parametri URL unici non necessari e ottimizza il tempo di risposta del server. Nota che l’LCP include qualsiasi tempo di unload dalla pagina precedente, il setup di connessione e il tempo di redirect — tutto ciò confluisce nel TTFB.

Caso speciale: LCP basato su testo. Quando l’elemento più grande è testo, il percorso critico è il caricamento dei font, non il peso delle immagini. font-display: optional o i font di sistema eliminano il ritardo di rendering indotto dai font; font-display: swap senza pre-caricare il file del font può introdurlo.

Lab vs. campo: questa distinzione conta

LCP è fondamentalmente una metrica sul campo. Google la valuta su utenti reali tramite CrUX, mostrata nella scheda campo di PageSpeed Insights e nel report Core Web Vitals di Search Console. Sono questi dati sul campo a influenzare il ranking.

Gli strumenti di laboratorio — Lighthouse, Chrome DevTools, WebPageTest — la approssimano solo in condizioni simulate, e non usano nemmeno lo stesso punteggio. Lighthouse applica soglie desktop più severe (Buono ≤ 1,2 s) rispetto allo standard sul campo (≤ 2,5 s). Quindi un punteggio Lighthouse positivo non garantisce un punteggio CrUX positivo, e viceversa. Usa gli strumenti di laboratorio per eseguire il debug e riprodurre; affidati ai dati sul campo per il verdetto effettivo.

C’è un secondo motivo per cui i numeri di laboratorio e sul campo possono divergere, utile da conoscere affinché una lettura anomala non ti faccia inseguire un bug fantasma: l’attuale API del browser LargestContentfulPaint (ancora una W3C Working Draft) è limitata a un singolo caricamento di documento. Non si azzera da sola sui ripristini della cache back/forward (bfcache) o sulle navigazioni SPA nello stesso documento, e le pagine che iniziano fuori schermo — schede in background, pagine prerenderizzate — possono riportare valori gonfiati perché il tempo parte dal caricamento piuttosto che da quando la pagina è diventata effettivamente visibile. L’algoritmo di segnalazione si ferma anche su input utente qualificanti, quindi se un utente interagisce prima che il contenuto principale venga visualizzato, LCP non lo cattura. Nulla di tutto ciò cambia la tabella delle soglie sopra; spiega perché il numero di una sessione specifica può sembrare sbagliato quando la navigazione sottostante non è un semplice primo caricamento.

LCP influisce sul ranking?

Sì, nel senso che Google conferma che le Core Web Vitals alimentano i suoi sistemi di ranking e raccomanda di ottenere buoni punteggi. La documentazione attuale di Search Central, però, non pubblica un peso esatto per LCP e non lo descrive come criterio di spareggio. Secondo la formulazione di Google, l’esperienza di pagina “can contribute to success in Search” (traduzione) «può contribuire al successo nella Ricerca» per le query in cui più pagine offrono già contenuti pertinenti e comparabili; un buon punteggio non garantisce comunque un aumento del ranking. Pertinenza e qualità dei contenuti restano predominanti. Ottimizza LCP perché una pagina percepita come più veloce è davvero migliore per gli utenti e per le conversioni, non perché il meccanismo sia documentato come criterio di spareggio.

Evidence for this claim Google says Core Web Vitals are used by ranking systems, but current documentation does not specify an LCP weight, tiebreaker rule, or ranking guarantee. Scope: ranking systems Confidence: high · Verified: Understanding page experience in Google Search results

Un paio di realtà dai dati: tra i Core Web Vitals, LCP è quello che i siti faticano di più a migliorare, ed è notevolmente più difficile su mobile che su desktop — CPU e connessioni più lente. Su 3G e più lenti, la soglia di 2,5 s può sembrare quasi impossibile da raggiungere.

Dove si colloca

LCP è uno dei tre Core Web Vitals, insieme a Interaction to Next Paint e Cumulative Layout Shift. La sua prima sotto-parte, Time to First Byte, è una metrica diagnostica a sé, e First Contentful Paint si trova subito accanto sulla timeline di caricamento. Li vedrai tutti in PageSpeed Insights, Lighthouse e Chrome User Experience Report (CrUX). Ognuno è un approfondimento a sé in questo cluster.

Add an expert note

Pin an expert quote

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