INP ha sostituito ufficialmente FID (First Input Delay) come Core Web Vital di Google il 12 marzo 2024. La differenza chiave: FID misurava solo la prima interazione, mentre INP considera tutte le interazioni durante la sessione, restituendo il valore peggiore (o il 98° percentile se ci sono molti eventi). Questo lo rende molto più rappresentativo della reattività reale percepita dall'utente.
Per essere classificata come "buona", una pagina deve avere INP ≤ 200ms nel 75° percentile delle visite reali. Tra 200 e 500ms è "da migliorare"; oltre 500ms è "scarsa". Le interazioni misurate includono: click del mouse, tap su touchscreen, pressione di tasti (key down) — ma non lo scroll, perché lo scroll non genera un evento di input nel senso tradizionale.
Il calcolo di INP è composto da tre fasi: input delay (tempo tra l'evento e l'inizio dell'event handler, tipicamente bloccato da JavaScript long task), processing time (esecuzione effettiva dell'event handler) e presentation delay (tempo per il browser di renderizzare il nuovo frame). La somma di queste tre fasi è la latenza INP per quella interazione.
Le cause più comuni di INP elevato includono: long task JavaScript che bloccano il main thread oltre i 50ms (es. parsing di JSON grandi, manipolazioni del DOM massive, script di analytics third-party), uso eccessivo di setTimeout o setInterval con callback complessi, framework virtual DOM che eseguono diff e re-render sincroni, e codice di event handler che fa lavoro sincrono pesante invece di delegarlo a requestIdleCallback o web worker.
Le soluzioni più efficaci sono: spezzare i long task con scheduler.yield() o pattern setTimeout(fn, 0); usare requestIdleCallback per lavoro non urgente; spostare computazioni pesanti in web worker; ridurre il bundle JavaScript con code splitting; ottimizzare gli script di analytics caricandoli con next/script strategy lazyOnload o worker. Su Next.js 14+ il pattern Server Components riduce automaticamente il JavaScript client-side, abbassando INP.
Per le PMI italiane INP è particolarmente critico su mobile: il 64% del traffico avviene da smartphone (ISTAT 2024) dove le CPU sono più lente. Un INP > 500ms su mobile correlato con dispositivi entry-level può creare percezione di sito "rotto" anche se carica velocemente in LCP.
Fonti consultate