performance

Interaction to Next Paint (INP)

INP misura quanto reattiva si sente la tua pagina — il ritardo tra un clic, un tocco o un tasto e l'aggiornamento dello schermo. La soglia di Google è 200 ms.

Cosa controlla questo check

Legge l’INP da PageSpeed Insights. INP misura l’interazione (clic, tocco, pressione di tasto) più lenta al 98° percentile durante una sessione di pagina, in millisecondi. Da marzo 2024, INP ha sostituito First Input Delay (FID) come terzo Core Web Vital.

Valore INPVerdetto
≤ 200 msBuono
200–500 msDa migliorare
> 500 msScarso

Perché è importante

INP è la metrica di performance più vicina a “questo sito si sente veloce?” A differenza di LCP (che misura il caricamento) o CLS (che misura la stabilità), INP misura l’interattività in tutta la sessione, non solo al caricamento.

Un INP scarso è quasi sempre un problema di JavaScript. Il main thread è occupato a eseguire i tuoi script, quindi quando l’utente clicca, il gestore del clic si mette in coda dietro qualunque cosa stia girando e lo schermo va in ritardo.

Come risolvere

1. Trova le interazioni peggiori. Nei DevTools di Chrome, apri il tab Performance, registra una sessione che includa l’interazione lenta. Cerca i task lunghi (>50 ms) subito dopo l’evento di clic.

2. Spezza i task lunghi. Qualsiasi JavaScript sincrono che gira per più di 50 ms blocca l’input utente. Spezzalo in pezzi compatibili con await:

async function processItems(items) {
  for (const item of items) {
    await yieldToMain();
    process(item);
  }
}

function yieldToMain() {
  return new Promise(resolve => setTimeout(resolve, 0));
}

I browser moderni hanno anche scheduler.yield() (Chromium 129+), più pulito.

3. Rinvia gli script non critici. Sposta analytics, ad, snippet A/B test, widget di chat al caricamento dopo la prima interazione (o usa requestIdleCallback).

4. Usa content-visibility: auto sulle sezioni fuori schermo. Il browser salta layout e paint per i contenuti nascosti finché non scrollano in vista.

5. Alleggerisci i re-render di React/Vue/Svelte. Killer comune dell’INP: un gestore di clic scatena un aggiornamento di stato che fa re-renderizzare 500 componenti. Usa la memoization (React.memo, useMemo), la virtualizzazione per liste lunghe e slice di stato più granulari.

Domande frequenti

PageSpeed Insights mostra l’INP?

Sì — sia lab sia campo. L’INP di campo viene dal Chrome User Experience Report (CrUX) per i siti con abbastanza traffico; i siti più piccoli vedono solo l’INP simulato in lab.

INP è uguale a FID?

No. FID misurava solo il ritardo della prima interazione. INP misura il caso peggiore lungo tutta la sessione, includendo il tempo del gestore del clic e il prossimo paint. INP è circa 5 volte più difficile da ottimizzare di quanto fosse FID.

Il mio sito è quasi statico. Perché l’INP è scarso?

Anche un sito statico spesso ha pesanti script di terze parti (analytics, chat, banner di consenso) che occupano il main thread. Controlla i tuoi tag <script> e rinvia tutto ciò che non serve al primo paint.

Fonti

Ultimo aggiornamento 2026-05-11