# INP

*Interaction to Next Paint*

INP measures how long a page takes to paint a response after a tap, click or key press. Good is 200 milliseconds or less. It replaced FID in March 2024 and, unlike FID, it watches every interaction rather than only the first.

**Canonical:** https://spoko.space/glossary/inp/  
**Language:** en  
**Category:** Performance  
**Also known as:** interaction to next paint, responsiveness metric  
**Published:** 2026-09-22  
**Glossary:** https://spoko.space/glossary/

---
## What it is {#what-it-is}

A visitor taps something. The browser has to finish whatever it was doing, run your event handler, recalculate the page and paint the result. INP is the time from the tap to that paint, and the score a page gets is close to its worst interaction over the whole visit.

That last part is what makes it hard. FID, the metric it replaced, timed only the delay before the first interaction was handled — a page could pass FID and still freeze for half a second every time someone opened a menu. INP watches all of it.

## Why it matters if you are paying for a website {#why-it-matters-if-you-are-paying-for-a-website}

Because it measures the feeling people describe as "the site is laggy", which is the one performance complaint visitors actually voice. A page can paint in a second and still feel broken if the first tap on the menu takes 400 ms to do anything.

## What actually moves it {#what-actually-moves-it}

Main-thread work, and almost nothing else. Three sources, in the order I usually find them:

**Third-party tags.** A tag manager container with six things inside it, a chat widget, a heatmap recorder. Each one runs JavaScript on the same thread that has to answer the tap. This is the single most common cause on business sites, and it is a decision the marketing department made, not the developer.

**Hydration.** A page that ships a whole framework so it can make a component interactive has to boot that framework before anything responds. The fix is architectural: send HTML, and hydrate only the parts that genuinely need it. That is why this site's interactive pieces are islands rather than a single application — the menu, the lightbox and the theme toggle carry their own small scripts, and the article they sit in carries none.

**Work done in the handler.** A click listener that recalculates a filter over 500 items before it paints anything. Paint first, compute after.

## What INP is not {#what-inp-is-not}

It is not measurable in a lab in any way you should trust. Lighthouse reports a proxy, because nobody clicked anything during the run. Real INP comes from real sessions — the Search Console report, or a field-data tool — and until a page has traffic there is no honest number to quote.

## Related terms {#related-terms}

- [Core Web Vitals](https://spoko.space/glossary/core-web-vitals/): Core Web Vitals are the three metrics Google collects from real Chrome visits: LCP for loading, INP for responsiveness and CLS for visual stability. A URL passes when 75% of its visits are inside the good threshold. — Markdown: https://spoko.space/glossary/core-web-vitals.md
- [LCP](https://spoko.space/glossary/lcp/): LCP measures when the largest element in the viewport finishes rendering — usually the hero image or the headline. Google calls 2.5 seconds or less good, measured on real visits at the 75th percentile. — Markdown: https://spoko.space/glossary/lcp.md
- [CDN](https://spoko.space/glossary/cdn/): A CDN is a network of servers around the world that keep copies of your site and answer visitors from whichever one is nearest. It removes the distance between the visitor and the origin server — and only that. — Markdown: https://spoko.space/glossary/cdn.md
- [CLS](https://spoko.space/glossary/cls/): CLS scores how much a page jumps around while it loads, on a unitless scale where 0.1 or less is good. Every element that moves without the visitor causing it adds to the score, weighted by how far it moved and how much of the screen it took. — Markdown: https://spoko.space/glossary/cls.md

## Where I write about this {#related-posts}

- [Uper SEO Auditor](https://spoko.space/uper-seo-auditor/) — Markdown: https://spoko.space/uper-seo-auditor.md
  Chrome extension for SEO specialists and developers. Provides real-time debugging of Web Vitals, Schema.org, GTM, and JS errors directly in Chrome Side Panel.
- [Modern Website Design 2026 — Trends, Navigation and Inspiration](https://spoko.space/blog/modern-website-design-trends/) — Markdown: https://spoko.space/blog/modern-website-design-trends.md
  Bento grid, dark mode, kinetic typography, CSS scroll animations and the evolution of the hamburger menu — a practical guide to 2026 web design trends with examples and an inspiration list.

## See also {#see-also}

- [WordPress → Astro migration](https://spoko.space/wordpress-to-astro/)
- [Web development — how I build and what it costs](https://spoko.space/web-development/)

## Sources {#sources}

- [Interaction to Next Paint (INP)](https://web.dev/articles/inp) — What is measured, from input to the next frame on screen.
- [Optimize Interaction to Next Paint](https://web.dev/articles/optimize-inp) — Input delay, processing, presentation — where the milliseconds go.
