Fix Interaction to Next Paint (INP) and Pass Core Web Vitals
PocketSEO Editorial @pocketseo
Key Takeaway
INP tracks how fast your page responds to every interaction; keep it under 200ms by breaking up long JavaScript tasks and deferring non-critical scripts.
What is Interaction to Next Paint?
Interaction to Next Paint (INP) measures how quickly your page responds to user input across the whole visit. It records the delay between a tap, click, or keypress and the next visual update on screen. On March 12, 2024, INP replaced First Input Delay (FID) as one of the three Core Web Vitals.
FID only measured the delay of the very first interaction. INP is stricter: it watches every interaction and reports the slowest one, so it reflects how the page actually feels to use.
What counts as a good INP score?
A good INP is 200 milliseconds or less. According to Google, an INP at or below 200 ms means the page responds quickly, an INP above 500 ms is rated poor, and the value is measured at the 75th percentile of real visits.
Target the good band on mobile first. Mobile processors are slower, interactions cost more there, and most sites see their weakest scores on phones.
How do you fix a slow INP?
Slow INP almost always traces back to JavaScript blocking the main thread. These three fixes move the needle most:
- Break up long tasks. Any script that runs over 50 ms blocks input. Split heavy work into smaller chunks and hand control back to the browser with
setTimeoutorscheduler.yield(). - Defer non-critical JavaScript. Load analytics, chat widgets, and third-party tags with
defer, or only after the first user interaction. They rarely need to run before the page is interactive. - Reduce main-thread work. Remove unused code, avoid huge re-renders, and keep event handlers light. The less the main thread does, the faster it can paint the next frame.
Fix the heaviest interaction first, since INP reports your worst one.
How do you measure INP in the field?
Use field data, not lab tools alone. Lab tests cannot reproduce the messy real interactions that drive INP. Pull real-user numbers from the Chrome User Experience Report (CrUX), the Core Web Vitals report in Google Search Console, or PageSpeed Insights.
For live debugging, the web-vitals JavaScript library reports INP along with the exact element that caused the slow interaction. Fix that element, ship it, then confirm the gain in CrUX over the following 28 days.
Want the full playbook? Read our guide on JavaScript Mobile SEO: Fix Rendering Before It Kills Rankings.