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.
Illustrative example
A publisher failing INP on mobile
Field INP sits around 380 ms sitewide. The usual culprits show up in the audit: a consent tool, two analytics libraries and an ad script all firing on first interaction. Defer the non-critical scripts, split the long layout task, and strip the unused tag-manager tags.
Work like this can pull field INP from the "needs improvement" band into "good" within a single CrUX cycle, usually with a small but real ranking lift on the borderline queries that were being held back.



