INP Interaction to Next Paint Checker

INP Checker — Interaction to Next Paint Tool

Measure Interaction to Next Paint (INP) live in your browser, simulate INP values, and get prioritized fixes. Core Web Vitals metric that replaced FID in March 2024.

Live INP meter INP simulator Core Web Vitals Fix recommendations Free
INP Thresholds
0ms 200ms Good 500ms Poor
Good < 200ms Needs Work 200-500ms Poor > 500ms
--
ms

Live Interaction Measurement

Click Start, then interact with this page — click buttons, type in fields, or tap elements. The meter captures each interaction's duration using the PerformanceObserver API and shows the worst-case INP in real time.

Measuring interactions...
Interaction Log 0 interactions
Start measuring and interact with the page to see individual interaction timings.

Enter your INP value and describe your interaction type to get a diagnosis and prioritized fix recommendations.

From PageSpeed Insights or Search Console

What triggers the high INP

Frontend technology used

Analytics, ads, chat widgets


// How INP is measured

What Is INP and How Does It Differ from FID?

INP (Interaction to Next Paint) replaced FID (First Input Delay) as a Core Web Vital in March 2024. FID only measured the delay before the browser started processing the first interaction. INP measures the full latency of every interaction — from the user's tap or click to the next frame painted — and reports the worst-case value across the entire page session.

An INP interaction has three phases:

Phase 1

Input Delay

Time from user interaction to when the browser starts processing the event handler. Caused by long tasks queued on the main thread.

Phase 2

Processing Duration

Time spent running the event handler code. Heavy JavaScript, synchronous DOM queries, or framework re-renders happen here.

Phase 3

Presentation Delay

Time for the browser to render the visual update after the handler completes. Complex layouts, style recalculations, and large repaints.


// Fix guide

How to Improve INP — Common Fixes by Root Cause

Long input delay — tasks blocking the main thread
If your INP's input delay phase is long, a JavaScript task was running when the user interacted. Use scheduler.yield() or setTimeout(fn, 0) to break up long tasks into smaller chunks with yield points. Move non-critical work to requestIdleCallback. Defer third-party scripts that block the main thread with async or defer attributes.

Heavy event handlers — processing duration too long
Avoid doing expensive work synchronously in click/input handlers. Don't trigger forced layout (reading offsetWidth, getBoundingClientRect after writing to the DOM). In React, wrap heavy re-renders with startTransition to mark them as non-urgent. Debounce input handlers that trigger search or filter operations.

React/Vue/Angular re-render performance
In React, use React.memo, useMemo, and useCallback to prevent unnecessary re-renders. Avoid re-rendering large component trees on every keystroke. Use virtualization (react-virtual, TanStack Virtual) for long lists. In Vue, use v-memo and shallowRef for large data structures. In Angular, switch to ChangeDetectionStrategy.OnPush.

Third-party scripts causing input delay
Google Tag Manager, analytics, ads, and chat widgets frequently run long tasks that cause input delay. Audit third-party impact in Chrome DevTools Performance tab — look for long tasks from third-party origins. Load non-critical third parties after user interaction (partytown or manual deferred loading). Use fetchpriority and loading="lazy" for third-party iframes.


// FAQ

Frequently Asked Questions

INP (Interaction to Next Paint) is Google's Core Web Vitals metric measuring page responsiveness. It captures the latency of all clicks, taps, and keyboard interactions during a user's session and reports the worst-case value. Good INP is under 200ms. It replaced FID in March 2024 as the responsiveness metric in Core Web Vitals.
Google's threshold for a good INP score is under 200ms. Scores between 200ms and 500ms need improvement. Above 500ms is poor and can negatively impact Core Web Vitals assessments, which are a Google ranking signal. Aim for the 75th percentile of your real users to be under 200ms.
FID (First Input Delay) only measured the delay before processing began for the very first interaction on the page, and only measured the input delay phase. INP measures all interactions throughout the session, and captures the full duration including input delay, event processing, and presentation delay. INP is a more comprehensive measure of overall page responsiveness.
INP measurement requires running JavaScript inside the page being measured — it cannot be done from a separate tool without a server-side headless browser. This live meter uses the PerformanceObserver API to capture real interactions on this page, demonstrating exactly how INP is measured. To check your site's INP, use Google PageSpeed Insights, Google Search Console, or integrate the web-vitals library.