Core Web Vitals

Interaction to Next Paint (INP)

In brief

Measures how quickly a page responds to clicks and keyboard input. Target: below 200 milliseconds. An official Core Web Vital since March 2024.

Interaction to Next Paint, INP for short, has been an official Core Web Vital since March 2024 and replaces the older First Input Delay. INP measures how quickly your page responds to user interactions.

What INP actually measures

When a user clicks, taps or presses a key, JavaScript code typically runs in the background. INP measures the time between the input and the next visual update of the page. Unlike the former FID, INP takes all interactions in a session into account, not just the first, and takes the worst value as its indicator.

Thresholds

Below 200 milliseconds counts as good. Between 200 and 500 milliseconds needs improvement. Google rates anything above 500 milliseconds as poor. As with the other Core Web Vitals, the 75th percentile of real user data is used.

Why INP is so hard to fix

Traditional websites with WordPress, jQuery and four to six tracking scripts often have INP values of 400 to 800 milliseconds. The reason: every interaction triggers a chain of JavaScript functions that block the main thread. Google measures this, and users feel it as a sluggish response.

How we keep INP low

We avoid frameworks where possible. Vanilla JavaScript is considerably faster than React or Vue components, which recompute their virtual DOM diffs on every interaction. We load third-party scripts asynchronously and with defer, keep event handlers short and free of synchronous loops, and move heavy calculations into a Web Worker.

Related terms

Core Web Vitals · LCP · Lighthouse

Want to improve your website?

We analyse your site and tell you honestly what is worth fixing. The initial consultation is free.

Free initial consultation