Skip to main content

Performance

How to Improve Interaction to Next Paint (INP)

INP replaced FID in March 2024. It measures the slowest interaction (click, tap, keypress) on the page — from input to next paint. Under 200ms = good. Over 500ms = poor. Heavy main-thread JavaScript is almost always the cause.

Try our Speed test

Find the slow interactions

Lighthouse and the Web Vitals extension report the slowest INP and which event triggered it. Chrome DevTools Performance panel shows the breakdown — input delay processing presentation delay.

Break up long tasks

Any task over 50ms blocks input. Split heavy work with await new Promise(r => setTimeout(r 0)) between chunks or use isInputPending() / scheduler.yield() to yield to the browser.

Move work off the main thread

Heavy parsing image processing encryption large array operations — push to a Web Worker. The main thread stays free for input handling.

Defer non-critical scripts

Third-party analytics chat widgets A/B test tools — defer them with or load after first interaction. Reduces JS that runs synchronously on every interaction.

Want to verify your setup?

Run the check now