What INP is, and why it replaced FID
INP became a Core Web Vital on March 12, 2024, replacing First Input Delay (web.dev). FID only measured the delay before the first interaction started being handled. INP looks at the interactions across the whole visit and reports one of the slowest, from the input until the browser paints the next frame.
That is why a page can have had a perfect FID and still fail INP: menus, filters, add-to-cart buttons and accordions that you click after the page loads now count.
| Rating | INP (75th percentile) |
|---|---|
| Good | 200 ms or less |
| Needs improvement | over 200 ms, up to 500 ms |
| Poor | over 500 ms |
Google's ranking systems use Core Web Vitals, but Google also says a good score does not guarantee top rankings and relevance comes first (Google page experience). Fix INP because slow clicks lose sales, and because it can help when pages are otherwise close.
Step 1: confirm the problem in field data
Lab tools cannot click like your visitors, so start with real-user data.
- Search Console > Experience > Core Web Vitals. Open the mobile report. Groups marked "INP issue: longer than 200ms" show which templates fail.
- PageSpeed Insights for one URL from that group. The top section ("Discover what your real users are experiencing") is field data from the Chrome UX Report.
- If your site has too little traffic for field data, add the
web-vitalsJavaScript library to log INP and the element that was clicked to your analytics.
Step 2: find the slow interaction
- Open the page in Chrome on a mid-range phone or with CPU throttling (DevTools > Performance > CPU: 4x slowdown).
- Start a Performance recording, click the elements real users click (menu, filters, add to cart, accordion, form fields), stop recording.
- Look at the Interactions track. Long interactions show three parts: input delay (the main thread was busy), processing time (your event handlers), presentation delay (layout and paint after the handlers).
Which part is biggest tells you which fix to use.
Step 3: fix by cause
| Biggest part | Usual cause | Fix |
|---|---|---|
| Input delay | Other scripts were running when the user clicked (tag manager, chat widget, A/B tool, hydration) | Remove or delay third-party scripts, split hydration, load non-critical JS after the page is idle |
| Processing time | Heavy event handler: big loops, synchronous network work, analytics calls inside the click | Do only the visual update first, then yield to the main thread (await scheduler.yield() where supported, or setTimeout) and run the rest after |
| Presentation delay | Huge DOM, large re-renders, layout thrashing | Shrink the DOM, render only what changed, avoid reading layout (offsetHeight) right after writing styles, use content-visibility for long off-screen sections |
Step 4: the fixes that help most sites
- Audit third-party scripts. List every tag in your tag manager. Remove the ones nobody uses. Chat widgets, heatmaps and review widgets are common INP problems.
- Yield inside long tasks. Any task over 50 ms blocks the main thread. Split loops and heavy work into chunks.
- Give instant feedback. Show the pressed state, spinner or open menu first, then do the expensive work.
- Debounce input handlers. Search-as-you-type and filters should not re-render on every key press.
- Avoid giant DOMs. Long product grids and mega menus with thousands of nodes slow every update. Paginate or virtualize.
- Check your framework. React, Vue and similar frameworks have their own tools for splitting work and avoiding needless re-renders. Use their profilers.
Worked example (fictional site). northwind-outdoors.com had a mobile INP of 380 ms on category pages. A Performance trace showed the "Filter" button had 260 ms of input delay: a reviews widget and a heatmap script were parsing on the main thread whenever shoppers tapped. Loading both after the first interaction and removing an unused A/B testing tag brought the trace down to about 140 ms. Field data takes 28 days to fully reflect a fix, so the team checked it again a month later.
Step 5: validate the fix
- Ship the change.
- In Search Console, open the failing group and click Validate fix. Validation tracks the next 28 days of field data.
- Keep logging INP with the
web-vitalslibrary so you see the change sooner than the 28-day window.
How to use this with an AI assistant
Connect SEOmatic at https://seomatic.ai/mcp and ask: "Sign me in with connect_seomatic, then run site_audit on mysite.com and list the slow pages it finds, grouped by template." SEOmatic does not read the Core Web Vitals report itself, so check INP in Search Console > Core Web Vitals and PageSpeed Insights.
More from the technical SEO checklist
- The checklistTechnical SEO Checklist (2026)
- Guiderobots.txt for AI Crawlers: Which to Allow and Which to Block
- GuideHow to Do a Technical SEO Audit, Step by Step (2026)
- GuideJavaScript SEO Checklist for React, Next.js and Single-Page Apps
- GuideHreflang Checklist: Set It Up Right and Fix Common Errors
- GuideStructured Data Checklist 2026: What Still Earns a Rich Result


