Quando il testo diventa l’elemento LCP
Nella maggior parte dei siti WordPress, l’elemento Largest Contentful Paint è un’immagine hero o un banner. Ma in contesti specifici – blog minimalisti, landing page testuali, portali editoriali – l’LCP può essere un blocco di testo, tipicamente un titolo H1 o il primo paragrafo significativo.
Questa situazione è più comune di quanto si pensi, specialmente dopo l’implementazione di lazy loading aggressivo sulle immagini o quando il design privilegia la tipografia. Secondo i dati di HTTPArchive di marzo 2026, circa il 18% dei siti analizzati ha un elemento testuale come LCP, con una concentrazione maggiore nei siti editoriali (32%).
Il problema principale: se il testo è l’LCP ma i web font non sono caricati correttamente, si verificano FOIT (Flash of Invisible Text) o FOUT (Flash of Unstyled Text) che impattano direttamente sul punteggio Core Web Vitals.
Identificare l’elemento LCP testuale
Prima di ottimizzare, occorre confermare che il testo sia effettivamente l’LCP. Gli strumenti standard per questa analisi sono:
- Chrome DevTools: Performance tab → registra un caricamento → cerca il marker “LCP” nella timeline e verifica il tipo di elemento
- PageSpeed Insights: la sezione “Diagnostics” mostra l’elemento LCP con screenshot e selettore CSS
- Web Vitals Extension: overlay in tempo reale che evidenzia l’elemento LCP sulla pagina
- AgencyPilot monitoring: tracciamento automatico degli elementi LCP per tutti i siti client con alert quando cambiano
Una volta identificato l’elemento, annota il selettore CSS (es. .entry-header h1) e verifica se utilizza font personalizzati. Questo dato è cruciale per la strategia di ottimizzazione.
Verifica del font-family effettivo
Nel DevTools, ispeziona l’elemento LCP e controlla nel pannello Computed la proprietà font-family. Se vedi valori come “Inter”, “Poppins”, “Montserrat” o altri non-system fonts, hai un caso classico di LCP testuale dipendente da web fonts.
Controlla anche il tab Network filtrando per “Font” durante il caricamento: nota il timing di download dei file WOFF2 rispetto al timing LCP. Se i font arrivano dopo l’LCP ideale, hai margine di miglioramento significativo.
Strategia di ottimizzazione font per LCP testuale
L’ottimizzazione del testo come LCP si concentra su tre aree: caricamento font, rendering e fallback. L’obiettivo è rendere il testo visibile e stilizzato nel minor tempo possibile.
Preload dei font critici
Il preload è essenziale per i font utilizzati nell’elemento LCP. Aggiungi nel <head>, prima di qualsiasi stylesheet:
<link rel="preload" href="/wp-content/themes/tuo-tema/fonts/inter-subset.woff2"
as="font" type="font/woff2" crossorigin>
Punti critici da rispettare:
- Usa solo il font weight effettivamente utilizzato nell’LCP (solitamente 400 o 700)
- L’attributo
crossoriginè obbligatorio anche per font self-hosted - Preload massimo 1-2 file font, altrimenti saturate la banda iniziale
- Il file deve essere ottimizzato (subset) per contenere solo i caratteri necessari
Per WordPress, implementa il preload via functions.php:
function agp_preload_lcp_fonts() {
echo '<link rel="preload" href="' . get_template_directory_uri() .
'/fonts/inter-latin-400.woff2" as="font" type="font/woff2" crossorigin>';
}
add_action('wp_head', 'agp_preload_lcp_fonts', 1);
Font-display: swap vs optional
La proprietà font-display determina il comportamento di rendering del testo durante il caricamento del font. Per elementi LCP testuali, la scelta è critica:
- font-display: swap – mostra immediatamente il fallback font, poi sostituisce con il web font. Pro: testo immediatamente visibile. Contro: possibile layout shift se i font hanno metriche diverse
- font-display: optional – usa il web font solo se disponibile entro 100ms, altrimenti resta sul fallback. Pro: zero layout shift. Contro: esperienza inconsistente tra visite
- font-display: fallback – compromesso: 100ms di blocco, poi mostra fallback, poi swap entro 3s
Per LCP testuale, la raccomandazione nel 2026 è font-display: swap combinato con font-fallback matching (vedi sotto) per minimizzare il CLS.
Implementazione in CSS:
@font-face {
font-family: 'Inter';
src: url('/fonts/inter-latin-400.woff2') format('woff2');
font-weight: 400;
font-display: swap;
unicode-range: U+0000-00FF; /* Latin subset */
}
Font fallback matching
Il layout shift durante il font swap è un problema reale per il CLS. La tecnica del font fallback matching utilizza size-adjust, ascent-override e descent-override per far combaciare le metriche del font di sistema con quelle del web font.
Dal 2021, tutti i browser moderni supportano queste proprietà. Esempio per matchare Inter con Arial fallback:
@font-face {
font-family: 'Inter Fallback';
src: local('Arial');
size-adjust: 106.5%;
ascent-override: 90%;
descent-override: 22%;
}
Poi nella dichiarazione CSS:
.entry-header h1 {
font-family: 'Inter', 'Inter Fallback', sans-serif;
}
Tool utili per calcolare i valori: Fallback Font Generator o il package npm @capsizecss/core.
Ottimizzazioni specifiche per WordPress
WordPress introduce complessità specifiche nella gestione dei font, specialmente con temi e page builder.
Gestione Google Fonts
Molti temi caricano Google Fonts via API. Se il testo LCP usa un Google Font, hai due opzioni:
- Self-host il font: scarica i file WOFF2 da Google Fonts, caricali nel tema e referenziali localmente. Elimina la latenza DNS/connessione verso google.com. Plugin consigliato: OMGF (Optimize My Google Fonts) o implementazione manuale
- Ottimizza la chiamata Google Fonts: usa
<link rel="preconnect">per fonts.googleapis.com e fonts.gstatic.com, e carica solo i weight necessari con&display=swap
Benchmark reale (media su 50 siti testati ad aprile 2026): self-hosting riduce il font load time di 180-250ms rispetto a Google Fonts API, con impatto diretto sull’LCP testuale di 150-200ms.
Page builder e font personalizzati
Elementor, Divi e altri page builder spesso iniettano font in modo inefficiente. Controlli da effettuare:
- Disabilita font icons non utilizzati (Elementor carica di default Font Awesome anche se non serve)
- Verifica che i font custom caricati via builder abbiano preload attivo
- Considera di disabilitare Google Fonts del builder e gestirli manualmente
- Per Elementor: Settings → Features → disabilita “Google Fonts” e carica solo quelli necessari
Plugin di ottimizzazione e conflitti
Plugin come WP Rocket, Autoptimize o Asset CleanUp possono interferire con il preload font. Best practice:
- Escludi i file font CSS/preload dalla minificazione
- Non combinare file CSS che contengono @font-face se usi preload separato
- Testa sempre dopo ogni modifica con PageSpeed Insights in modalità incognito
Monitoraggio e testing
L’ottimizzazione LCP testuale richiede monitoring continuo perché cambiamenti nel tema o contenuto possono alterare l’elemento LCP.
Metriche da tracciare
- LCP time: target <2.5s (Good), accettabile 2.5-4s, da migliorare >4s
- Font load time: deve completare prima o insieme all’LCP
- CLS da font swap: deve rimanere <0.1
- TTFB: se alto, l’LCP sarà comunque compromesso indipendentemente dai font
Strumenti per monitoring continuativo:
- Google Search Console: Core Web Vitals report con dati field reali
- Chrome User Experience Report (CrUX): dati aggregati per origine
- Real User Monitoring via AgencyPilot: tracking LCP per singolo cliente con breakdown per device e connessione
- Lighthouse CI: test automatici in pipeline deploy per prevenire regressioni
Testing su dispositivi reali
Il lab testing (PageSpeed Insights, Lighthouse) usa condizioni simulate. Per siti client, complementa con test su:
- Device Android mid-range (Samsung A-series): rappresentano la maggioranza degli utenti mobile in Italia
- Connessioni 3G/4G reali, non throttled: usa Chrome DevTools remote debugging
- Browser diversi: Safari iOS ha comportamenti diversi da Chrome per font rendering
Dati reali da progetti AgencyPilot: siti con LCP testuale ottimizzato correttamente mostrano un delta medio di soli 0.3s tra lab e field data, contro 0.8-1.2s di siti non ottimizzati.
Checklist finale per LCP testuale
Segui questa checklist per ogni sito client dove il testo è l’LCP:
- Conferma l’elemento LCP con DevTools e PageSpeed Insights
- Identifica i font utilizzati e i weight necessari
- Crea subset font ottimizzati (solo caratteri latini se non serve altro)
- Implementa preload per max 2 file font critici
- Aggiungi
font-display: swapnelle dichiarazioni @font-face - Implementa font fallback matching per ridurre CLS
- Self-host Google Fonts se utilizzati
- Testa su device reali e connessioni lente
- Attiva monitoring continuo per prevenire regressioni
- Documenta l’implementazione per il team
Con questa strategia, i siti client con LCP testuale possono raggiungere consistentemente punteggi LCP <2s anche su mobile, migliorando ranking e conversioni.
FAQ
Cosa fare se l’LCP passa da immagine a testo dopo ottimizzazioni?
È normale: lazy loading aggressivo sulle immagini può rendere il testo above-the-fold più veloce da renderizzare. Non è necessariamente negativo se il testo si carica rapidamente. Verifica che il nuovo LCP testuale abbia font ottimizzati e preloaded. Se l’LCP complessivo migliora, è un risultato positivo indipendentemente dall’elemento.
Quanti font posso preloadare senza danneggiare le performance?
Regola generale: massimo 2 file font in preload, idealmente solo 1. Ogni file WOFF2 ottimizzato pesa 15-30KB. Preloadare troppi font satura la banda iniziale e ritarda il rendering. Preloada solo il weight utilizzato nell’elemento LCP, non l’intera famiglia. Per altri font usati più in basso, lascia che il browser li carichi normalmente.
Font-display swap causa sempre layout shift?
No, solo se il fallback font ha metriche diverse dal web font. Con font fallback matching corretto (size-adjust, ascent-override, descent-override), il layout shift è quasi eliminato. Test real-world mostrano CLS <0.01 con matching ottimizzato. Senza matching, il CLS può raggiungere 0.15-0.25, superando la soglia Good di 0.1.
Come ottimizzare LCP testuale con Elementor?
Disabilita Google Fonts nelle impostazioni Elementor (Settings → Features), carica manualmente solo i font necessari via functions.php con preload, usa widget Heading per titoli LCP assicurandoti che non iniettino CSS inline ridondante. Considera di usare system fonts stack per elementi LCP critici: performance superiore a qualsiasi web font.
I system fonts sono un’alternativa valida per LCP?
Assolutamente sì. Un font stack come system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif elimina completamente il problema del font loading, garantendo LCP testuale ottimale. Lo svantaggio è estetico: meno controllo sul branding tipografico. Per landing page performance-critical o sezioni hero, è una scelta eccellente. Per siti corporate dove il brand font è essenziale, usa web font ottimizzati come descritto.