First Input Delay was easy to pass because it only measured the first interaction. INP measures all of them, all visit long, and it is far less forgiving. If your page felt "a bit laggy" before, it probably fails now.
What INP measures
Interaction to Next Paint records the delay between a user action, a tap, click or key press, and the next frame the browser paints in response. It reports a value close to the worst interaction of the visit. High INP feels like a button that does not respond, or a menu that opens half a second late.
The Core Web Vitals targets
Bar lengths show the relative headroom, not a shared scale.
How to fix a slow INP
- Break long JavaScript tasks into smaller chunks so the main thread can respond
- Defer or lazy-load third-party scripts: chat widgets, A/B tools, analytics stacks
- Remove code you no longer use, especially old tag-manager tags
- Avoid large layout recalculations on click; keep event handlers light
- Use a framework's built-in code splitting so pages ship less JavaScript
Measure the field, not the lab. Lighthouse gives you a lab score in a clean room. Google ranks on field data from real Chrome users, the CrUX report in Search Console. A green Lighthouse score with red field data means real visitors are having a worse time than your test.
Where to check your score
Search Console's Core Web Vitals report shows field data for your whole site, grouped by page type. PageSpeed Insights shows both field and lab data for a single URL. Start with Search Console to find the worst page groups, then use PageSpeed Insights to diagnose them.
By the numbers
Mahdi Hassan · Web Developer & Site Speed
Before optimising anything, open the Performance panel and record a few real interactions. The long task blocking the response is almost always a third-party script, and the fix is deferring it, not rewriting your own code.
Short case study
A publisher failing INP on mobile
Field INP sat around 380 ms sitewide. The audit found a consent tool, two analytics libraries and an ad script all executing on first interaction. We deferred the non-critical scripts, split a long layout task, and removed two unused tag-manager tags.
Field INP dropped to 170 ms within one CrUX cycle, moving the whole site into the "good" band, with a small but measurable lift on borderline queries.
