{"id":164059,"date":"2025-09-26T09:00:00","date_gmt":"2025-09-26T07:00:00","guid":{"rendered":"https:\/\/gtechgroup.it\/blog\/core-web-vitals-html-lcp-cls-inp\/"},"modified":"2025-09-26T09:00:00","modified_gmt":"2025-09-26T07:00:00","slug":"core-web-vitals-html-lcp-cls-inp","status":"publish","type":"post","link":"https:\/\/gtechgroup.it\/blog\/core-web-vitals-html-lcp-cls-inp\/","title":{"rendered":"Core Web Vitals e HTML: Ottimizzare LCP, CLS e INP"},"content":{"rendered":"<p style=\"text-align: justify;\">I <strong>Core Web Vitals<\/strong> sono un insieme di metriche definite da Google per misurare la qualit\u00e0 dell&#8217;esperienza utente sulle pagine web. Dal 2021 sono diventati un fattore di ranking ufficiale, rendendo la loro ottimizzazione una priorit\u00e0 per chiunque voglia posizionarsi bene nei risultati di ricerca. In questa guida vedremo come l&#8217;HTML gioca un ruolo fondamentale nell&#8217;ottimizzazione di ciascuna delle tre metriche: LCP, CLS e INP.<\/p>\n<h2>Cosa Sono i Core Web Vitals<\/h2>\n<p style=\"text-align: justify;\">I Core Web Vitals sono tre metriche che misurano aspetti diversi dell&#8217;esperienza utente. Il <strong>Largest Contentful Paint (LCP)<\/strong> misura il tempo di caricamento percepito, calcolando quando il pi\u00f9 grande elemento visibile nella viewport viene completamente renderizzato. Il target \u00e8 sotto i <strong>2,5 secondi<\/strong>. Il <strong>Cumulative Layout Shift (CLS)<\/strong> misura la stabilit\u00e0 visiva della pagina, quantificando quanto il contenuto si sposta inaspettatamente durante il caricamento. Il target \u00e8 sotto <strong>0,1<\/strong>. L&#8217;<strong>Interaction to Next Paint (INP)<\/strong>, che ha sostituito il FID nel 2024, misura la reattivit\u00e0 della pagina alle interazioni dell&#8217;utente. Il target \u00e8 sotto i <strong>200 millisecondi<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Queste metriche vengono misurate sia in laboratorio (strumenti come Lighthouse e PageSpeed Insights) sia sul campo (dati reali degli utenti raccolti tramite il Chrome User Experience Report). Per il ranking, Google utilizza i <strong>dati sul campo<\/strong>, il che significa che l&#8217;ottimizzazione deve funzionare per gli utenti reali, non solo in condizioni di laboratorio ideali.<\/p>\n<h2>LCP: Ottimizzare il Largest Contentful Paint<\/h2>\n<p style=\"text-align: justify;\">L&#8217;elemento LCP \u00e8 tipicamente un&#8217;immagine hero, un blocco di testo di grandi dimensioni, un video o un&#8217;immagine di sfondo CSS. L&#8217;HTML offre diversi strumenti per accelerare il caricamento di questo elemento critico.<\/p>\n<p style=\"text-align: justify;\">Il primo passo \u00e8 il <strong>preload dell&#8217;elemento LCP<\/strong>. Se l&#8217;elemento LCP \u00e8 un&#8217;immagine, possiamo anticiparne il caricamento con un tag nel <code>&lt;head&gt;<\/code>:<\/p>\n<pre><code>&lt;link rel=\"preload\" href=\"\/img\/hero.webp\" as=\"image\" fetchpriority=\"high\"&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">L&#8217;attributo <code>fetchpriority=\"high\"<\/code> pu\u00f2 essere applicato anche direttamente al tag <code>&lt;img&gt;<\/code> dell&#8217;elemento LCP per segnalare al browser che quell&#8217;immagine ha la massima priorit\u00e0. Allo stesso modo, \u00e8 essenziale <strong>non usare<\/strong> <code>loading=\"lazy\"<\/code> sull&#8217;elemento LCP, poich\u00e9 il lazy loading ritarderebbe il caricamento dell&#8217;elemento pi\u00f9 importante della pagina.<\/p>\n<p style=\"text-align: justify;\">Per le <a href=\"https:\/\/gtechgroup.it\/blog\/immagini-responsive-html-srcset-sizes-picture\/\">immagini responsive<\/a>, assicuratevi che il browser scelga la dimensione appropriata usando <code>&lt;srcset&gt;<\/code> e <code>&lt;sizes&gt;<\/code>, evitando di caricare immagini sovradimensionate. Utilizzare formati moderni come WebP e AVIF riduce significativamente il peso del file e il tempo di download.<\/p>\n<p style=\"text-align: justify;\">Se l&#8217;elemento LCP \u00e8 un blocco di testo, il font \u00e8 il fattore critico. I <strong>font web<\/strong> possono causare un ritardo significativo nel rendering del testo. Per mitigare questo problema, utilizzate <code>font-display: swap<\/code> nel CSS per mostrare il testo con un font di fallback mentre il font personalizzato si carica, e fate <a href=\"https:\/\/gtechgroup.it\/blog\/preload-prefetch-preconnect-ottimizzare-caricamento\/\">preload del font<\/a> nel <code>&lt;head&gt;<\/code>.<\/p>\n<h2>CLS: Eliminare i Layout Shift<\/h2>\n<p style=\"text-align: justify;\">Il Cumulative Layout Shift \u00e8 forse la metrica pi\u00f9 direttamente influenzata dall&#8217;HTML, poich\u00e9 i layout shift sono spesso causati da elementi HTML che non dichiarano le proprie dimensioni. La causa principale di CLS elevato sono le <strong>immagini senza dimensioni esplicite<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Quando un tag <code>&lt;img&gt;<\/code> non specifica gli attributi <code>&lt;width&gt;<\/code> e <code>&lt;height&gt;<\/code>, il browser non pu\u00f2 riservare lo spazio necessario prima che l&#8217;immagine venga scaricata. Quando l&#8217;immagine arriva, il browser deve spostare il contenuto circostante per fare spazio, causando un layout shift visibile e fastidioso per l&#8217;utente.<\/p>\n<pre><code>&lt;!-- SBAGLIATO: causa layout shift --&gt;\n&lt;img src=\"foto.jpg\" alt=\"Foto\"&gt;\n\n&lt;!-- CORRETTO: previene layout shift --&gt;\n&lt;img src=\"foto.jpg\" alt=\"Foto\" width=\"800\" height=\"600\"&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\">Lo stesso principio si applica a <strong>video<\/strong>, <strong>iframe<\/strong> e <strong>elementi embed<\/strong>: tutti devono dichiarare le dimensioni o essere inseriti in contenitori con aspect ratio definito tramite CSS. Per gli iframe di terze parti (mappe, video YouTube, widget social), \u00e8 fondamentale specificare width e height per evitare reflow.<\/p>\n<p style=\"text-align: justify;\">Un&#8217;altra causa comune di CLS sono i <strong>contenuti iniettati dinamicamente<\/strong>, come banner pubblicitari, barre di notifica o elementi caricati da JavaScript. Per questi contenuti, la soluzione HTML \u00e8 riservare lo spazio nel markup con un contenitore di dimensioni fisse, anche se il contenuto verr\u00e0 caricato successivamente. I font web possono causare CLS attraverso il fenomeno del FOUT (Flash of Unstyled Text), quando il testo renderizzato con il font di fallback viene sostituito dal font personalizzato con metriche diverse.<\/p>\n<h2>INP: Migliorare la Reattivit\u00e0 alle Interazioni<\/h2>\n<p style=\"text-align: justify;\">L&#8217;Interaction to Next Paint misura quanto tempo passa dal momento in cui l&#8217;utente interagisce con la pagina (click, tap, pressione di un tasto) al momento in cui il browser aggiorna visivamente lo schermo in risposta. Un INP alto indica che la pagina si &#8220;blocca&#8221; durante le interazioni, creando una sensazione di lentezza.<\/p>\n<p style=\"text-align: justify;\">Dal punto di vista HTML, la strategia principale per migliorare l&#8217;INP \u00e8 ridurre il lavoro del main thread del browser al momento dell&#8217;interazione. Gli attributi <code>&lt;async&gt;<\/code> e <code>&lt;defer&gt;<\/code> sul tag <code>&lt;script&gt;<\/code> sono fondamentali:<\/p>\n<pre><code>&lt;!-- Script bloccante (evitare) --&gt;\n&lt;script src=\"analytics.js\"&gt;&lt;\/script&gt;\n\n&lt;!-- Async: scarica in parallelo, esegue appena pronto --&gt;\n&lt;script src=\"analytics.js\" async&gt;&lt;\/script&gt;\n\n&lt;!-- Defer: scarica in parallelo, esegue dopo il parsing HTML --&gt;\n&lt;script src=\"app.js\" defer&gt;&lt;\/script&gt;<\/code><\/pre>\n<p style=\"text-align: justify;\"><code>defer<\/code> \u00e8 generalmente preferibile per script che manipolano il DOM, poich\u00e9 garantisce che l&#8217;HTML sia completamente analizzato prima dell&#8217;esecuzione. <code>async<\/code> \u00e8 ideale per script indipendenti come analytics e tracking. Entrambi prevengono il blocco del parsing HTML durante il download.<\/p>\n<p style=\"text-align: justify;\">L&#8217;attributo <code>type=\"module\"<\/code> sugli script si comporta come defer per impostazione predefinita, con l&#8217;aggiunta del supporto per le importazioni ES6. Per script non critici, l&#8217;approccio pi\u00f9 aggressivo \u00e8 caricarli solo quando necessari tramite <code>import()<\/code> dinamico, eliminando completamente il loro impatto sul caricamento iniziale.<\/p>\n<h2>Strumenti di Misurazione e Monitoraggio<\/h2>\n<p style=\"text-align: justify;\">Google fornisce diversi strumenti per misurare i Core Web Vitals. <strong>PageSpeed Insights<\/strong> \u00e8 il pi\u00f9 accessibile: inserite l&#8217;URL della pagina e otterrete sia i dati di laboratorio (simulazione) sia i dati sul campo (utenti reali). <strong>Lighthouse<\/strong>, integrato in Chrome DevTools, offre un&#8217;analisi dettagliata con suggerimenti specifici per ogni problema. La <strong>Google Search Console<\/strong> mostra i Core Web Vitals a livello dell&#8217;intero sito, raggruppando le pagine per tipo di problema.<\/p>\n<p style=\"text-align: justify;\">Per il monitoraggio continuo, la libreria JavaScript <code>web-vitals<\/code> di Google permette di raccogliere i dati Core Web Vitals dagli utenti reali e inviarli al proprio sistema di analytics. Questo approccio \u00e8 il pi\u00f9 affidabile, poich\u00e9 riflette l&#8217;esperienza reale degli utenti sui loro dispositivi e con le loro connessioni di rete.<\/p>\n<p style=\"text-align: justify;\">Ricordate che l&#8217;ottimizzazione dei Core Web Vitals \u00e8 un <strong>processo continuo<\/strong>: nuove funzionalit\u00e0, aggiornamenti del contenuto e modifiche al design possono introdurre regressioni. Monitorare regolarmente le metriche e reagire tempestivamente ai peggioramenti \u00e8 essenziale per mantenere un&#8217;esperienza utente di alta qualit\u00e0 e un buon posizionamento nei motori di ricerca.<\/p>\n<p style=\"text-align: justify;\">Hai bisogno di aiuto con l&#8217;ottimizzazione dei Core Web Vitals del tuo sito? <strong>G Tech Group<\/strong> offre servizi di sviluppo web professionale e consulenza tecnica. Contattaci a <strong>support@gtechgroup.it<\/strong> o via WhatsApp al <strong>0465 84 62 45<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I Core Web Vitals sono un insieme di metriche definite da Google per misurare la qualit\u00e0 dell&#8217;esperienza utente sulle pagine web. Dal 2021 sono diventati&hellip;<\/p>\n","protected":false},"author":2,"featured_media":164239,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"1246","_seopress_titles_title":"Core Web Vitals e HTML: Ottimizzare LCP, CLS e INP %%sep%% %%sitename%%","_seopress_titles_desc":"Guida pratica all'ottimizzazione dei Core Web Vitals tramite HTML: tecniche per migliorare LCP, CLS e INP con attributi, tag e strategie di caricamento.","_seopress_robots_index":"","footnotes":""},"categories":[1246],"tags":[1905,1775,787],"class_list":["post-164059","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-html","tag-core-web-vitals","tag-performance","tag-sviluppo-web"],"_links":{"self":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/164059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/comments?post=164059"}],"version-history":[{"count":0,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/posts\/164059\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media\/164239"}],"wp:attachment":[{"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/media?parent=164059"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/categories?post=164059"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gtechgroup.it\/blog\/wp-json\/wp\/v2\/tags?post=164059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}