Estrai CSS critici

Scopri come migliorare i tempi di rendering con una tecnica CSS fondamentale.

Milica Mihajlija
Milica Mihajlija

Il browser deve scaricare e analizzare i file CSS prima di poter mostrare la pagina, rendendo CSS una risorsa che blocca la visualizzazione. Se i file CSS sono di grandi dimensioni o se le condizioni di rete sono scadenti, le richieste di file CSS possono aumentare significativamente il tempo necessario per il rendering di una pagina web.

Un'illustrazione di un laptop e di un dispositivo mobile con pagine web che riempiono i bordi degli schermi

L'incorporamento degli stili estratti in <head> del documento HTML elimina la necessità di effettuare un'ulteriore richiesta per recuperare questi stili. Il resto del CSS può essere caricato in modo asincrono.

File HTML con CSS fondamentale incorporato nell&#39;intestazione
. CSS critico incorporato

Il miglioramento dei tempi di rendering può fare un'enorme differenza nelle prestazioni percepite, soprattutto in condizioni di rete scadenti. Sulle reti mobili, la latenza elevata è un problema indipendentemente dalla larghezza di banda.

Confronto della visualizzazione sequenza del caricamento di una pagina con CSS che blocca la visualizzazione (in alto) e della stessa pagina con CSS critico incorporato (in basso) su una connessione 3G. La sequenza principale mostra sei fotogrammi vuoti prima di visualizzare i contenuti. La sequenza inferiore mostra contenuti significativi nel primo fotogramma.
. Confronto tra il caricamento di una pagina con CSS che blocca la visualizzazione (in alto) e la stessa pagina con CSS critico incorporato (in basso) su una connessione 3G

Se hai un errore First Contentful Paint (FCP) e vedi il messaggio "Elimina le risorse di blocco della visualizzazione" nei controlli di Lighthouse, è una buona idea provare a usare i CSS essenziali.

Controllo di Lighthouse con &quot;Elimina la risorsa di blocco della visualizzazione&quot; o &quot;Posticipa il CSS inutilizzato&quot; opportunità

Per ridurre al minimo il numero di round trip per la prima visualizzazione, cerca di mantenere i contenuti above the fold al di sotto dei 14 kB (compressi).

L'impatto sul rendimento che puoi ottenere con questa tecnica dipende dal tipo di sito web. In generale, maggiore è il CSS di un sito, maggiore sarà il possibile impatto dei CSS incorporati.

Panoramica degli strumenti

Esistono diversi ottimi strumenti in grado di determinare automaticamente il CSS fondamentale per una pagina. Questa è una buona notizia, perché farlo manualmente sarebbe una procedura noiosa. Richiede l'analisi dell'intero DOM per determinare gli stili applicati a ciascun elemento nell'area visibile.

Critico

Critical estrae, minimizza e incorpora il CSS above the fold ed è disponibile come modulo npm. Può essere usato con Gulp (direttamente) o con Grunt (come plug-in) ed è disponibile anche un plug-in webpack.

È uno strumento semplice che richiede molto impegno. Non è necessario specificare i fogli di stile, in quanto Critici li rileva automaticamente. Supporta anche l'estrazione di CSS fondamentali per diverse risoluzioni dello schermo.

criticalCSS

CriticalCSS è un altro modulo npm che estrae CSS above the fold. È disponibile anche come interfaccia a riga di comando.

Non offre opzioni per incorporare e minimizzare le risorse CSS fondamentali, ma consente di forzare l'inclusione di regole che in realtà non appartengono al CSS critico e ti offre un controllo più granulare sull'inclusione delle dichiarazioni @font-face.

Penthouse

Penthouse è una buona scelta se il tuo sito o la tua app ha un numero elevato di stili o stili che vengono inseriti dinamicamente nel DOM (comune nelle app Angular). Utilizza Puppeteer dietro le quinte e presenta anche una versione in hosting online.

Penthouse non rileva automaticamente i fogli di stile, devi specificare i file HTML e CSS per i quali vuoi generare CSS critici. L'aspetto positivo è che è in grado di eseguire molti job in parallelo.