What Is a Good INP Score? Thresholds, Measurement and Fixes

  • Updated
  • Reading time 12 min
What is a good INP score, Marketer Coffee
Table of contents 23
  1. What are the INP thresholds?
  2. How is your INP score actually calculated?
  3. Is a good INP score different on mobile and desktop?
  4. Where can you check your INP score?
  5. Why does PageSpeed Insights show no INP score for some pages?
  6. How do you find what makes INP slow?
  7. How do you improve a poor INP score?
    1. Audit third-party scripts first
    2. Show feedback first, then do the rest
    3. Break up long tasks
    4. Keep the DOM lean
    5. Avoid layout thrashing
    6. Re-check after each change
  8. Does INP affect SEO rankings?
  9. What should you aim for?
  10. Where does Marketer Coffee fit?
  11. Frequently asked questions about INP scores
    1. What is a good INP score?
    2. When did INP replace FID?
    3. Why is my INP good on desktop but poor on mobile?
    4. Can Lighthouse measure INP?
    5. How long does it take for an INP fix to show in Search Console?
  12. What is the short version?

A good INP score is 200 milliseconds or less, measured at the 75th percentile of real visits. Between 200 and 500 ms the page “needs improvement”, and above 500 ms it is rated poor. Google applies these thresholds separately to mobile and desktop, so a page can pass on one and fail on the other.

Interaction to Next Paint (INP) measures how quickly a page responds visually after someone clicks, taps or presses a key. It became a Core Web Vital on 12 March 2024, replacing First Input Delay (FID), which only measured the delay before the first interaction was handled. INP looks at the interactions across the whole visit and reports one of the slowest.

In practice, “good” means three things: at least 75% of real visits get a response within 200 ms, you are measuring with field data rather than a single lab test, and you have some headroom below the line so a new script or a busy sale week does not push you over it.

This guide explains how the score is calculated, where to find yours, why some tools show nothing, and how to diagnose and fix a slow INP without guessing.

What are the INP thresholds?

Google uses three bands, and the boundary values matter. The table below reflects web.dev’s INP documentation and the Search Console Core Web Vitals report.

INP rating bands (75th percentile of page loads, per device type)
RatingINP valueWhat it means for users
Good200 ms or lessClicks and taps feel immediate for most visits
Needs improvementAbove 200 ms, up to 500 msNoticeable lag on menus, filters, forms or add to cart
PoorAbove 500 msUsers repeat clicks, think the page is broken or leave

Is exactly 200 ms good? Yes. web.dev defines good as “below or at” 200 ms, so 200 passes and 201 does not. The same logic applies at 500 ms: exactly 500 still counts as needs improvement, and anything above it is poor.

For comparison, the other two Core Web Vitals in Search Console use LCP thresholds of 2.5 s and 4 s and CLS thresholds of 0.1 and 0.25. INP is the only one measured in milliseconds of responsiveness rather than loading or visual stability.

How is your INP score actually calculated?

INP is calculated per visit first, then summarized across visits at the 75th percentile. Understanding both steps explains most of the confusion people have with the number.

During one visit, the browser times every click, tap and key press. Each interaction has three parts:

  1. Input delay: the wait before your event handlers start, usually because the main thread is busy with other work.
  2. Processing duration: the time your event handlers take to run.
  3. Presentation delay: the time from the handlers finishing until the browser paints the next frame.

The visit’s INP is the longest of those interactions, with one exception for busy pages: web.dev states that one highest interaction is ignored for every 50 interactions, so a single freak spike on a long session does not define the score. Hovering, scrolling and zooming are not counted as interactions.

Then the values from all visits are pooled, and the 75th percentile is reported. That is the “75% rule”: your page is good if at least three out of four visits had an INP of 200 ms or less. The remaining quarter can be slower without failing the page, which is why fixing your typical slowest interaction matters more than chasing a rare edge case.

A visit where the user never clicks, taps or types produces no INP value at all. Pages that people mostly read, such as long articles, often have less INP data than pages people operate, such as category filters or checkout.

Is a good INP score different on mobile and desktop?

The threshold is the same, 200 ms, but the results are very different. Phones have slower processors, so the same JavaScript takes longer to run, and Google reports mobile and desktop separately in both PageSpeed Insights and Search Console.

The HTTP Archive’s 2024 Web Almanac performance chapter found that 74% of mobile websites and 97% of desktop websites had good INP. In other words, INP is mostly a mobile problem. If your desktop report is green and your mobile report is amber, that is the normal pattern, not a measurement error.

Prioritize the device that brings your traffic and revenue. For most consumer sites that is mobile, which also means testing on a mid-range Android phone or with CPU throttling in Chrome DevTools, not on a fast laptop. Our mobile SEO guide covers the wider mobile picture.

Where can you check your INP score?

Use field data to know whether you pass, and lab tools to find out why you do not. Each tool answers a different question.

Tools for measuring and diagnosing INP
ToolData typeBest used for
Search Console, Core Web Vitals reportField (CrUX), grouped URLsSeeing which groups of pages fail on mobile or desktop, and validating fixes
PageSpeed InsightsField (CrUX, previous 28 days) plus Lighthouse lab testChecking one URL or the whole origin quickly
CrUX API, BigQuery or CrUX VisField (CrUX)Trends over time and comparisons with competitors
Real user monitoring (RUM), for example the web-vitals JavaScript libraryField, your own visitorsFinding which element and interaction caused a slow INP
Chrome DevTools Performance panelLabRecording an interaction and seeing which task blocked it
Lighthouse (navigation mode)LabTotal Blocking Time as a rough proxy; it does not measure INP during a page load test

Google’s own documentation is clear about the hierarchy: field data from real users is the best way to measure INP. Total Blocking Time can hint at problems, but web.dev describes it as a reasonable proxy, “not a substitute for INP”. A perfect Lighthouse score does not mean you pass INP.

Why does PageSpeed Insights show no INP score for some pages?

Usually because there is not enough real-user data for that URL. PageSpeed Insights pulls field data from the Chrome UX Report (CrUX), which only includes pages that are publicly discoverable and have enough visitors. Google does not publish the exact traffic threshold.

When a single URL lacks data, PageSpeed Insights tries to fall back to origin-level data, meaning your whole domain. If the origin also lacks data, the field section shows “No Data”, and only the Lighthouse lab results remain. Other common reasons:

  • The page is new, so it has not yet collected 28 days of visits
  • The page is behind a login or blocked from indexing, so CrUX does not include it
  • Visitors rarely interact with the page, so there are few INP samples even with good traffic

The practical fix is to add your own RUM. The web-vitals library’s onINP function reports INP from every visit, and its attribution build tells you which element was involved and how long each of the three phases took. That gives you data on low-traffic pages and, more importantly, the context to debug.

How do you find what makes INP slow?

Diagnose the phase first, then the cause. Each phase points to a different kind of fix.

Matching the slow INP phase to its usual cause
Slow phaseTypical causeWhere to look
Input delayMain thread busy with other scripts: tag managers, chat widgets, A/B testing, heavy hydration during loadLong tasks in DevTools around the moment of the click
Processing durationEvent handler does too much: filtering a large product list, analytics calls, synchronous storage, re-rendering whole componentsThe click or keydown handler in the Performance panel
Presentation delayLarge DOM, expensive style and layout recalculation, rendering big chunks of HTML with JavaScript“Recalculate Style” and “Layout” entries after the handler

A simple workflow:

  1. In Search Console, find the URL groups with “INP issue” on mobile.
  2. Open one example URL and identify the interactions people actually perform: the menu, a filter, the size selector, add to cart, a form field.
  3. In Chrome DevTools, set CPU throttling, start a Performance recording, perform the interaction, and stop.
  4. Look for long tasks, which web.dev defines as tasks over 50 ms, and note which script they come from.
  5. Repeat the interaction while the page is still loading. The main thread is often busiest then, and that is when real users click.

How do you improve a poor INP score?

Do less work on the main thread at the moment of interaction, and give the browser a chance to paint sooner. The fixes below are ordered roughly from easiest to most technical.

Audit third-party scripts first

On many marketing sites, the biggest INP cost is not your code. Chat widgets, heatmaps, consent tools, review widgets and several analytics tags all compete for the main thread. List every script in your tag manager, remove what nobody uses, and delay non-essential tags until after the page has loaded or after the first interaction.

Show feedback first, then do the rest

Update the interface immediately (open the menu, show the spinner, mark the button as pressed), then run the slower work in a separate task. This is called yielding to the main thread. A small helper like the one below uses scheduler.yield() where the browser supports it and falls back to setTimeout elsewhere:

function yieldToMain() {
  if (globalThis.scheduler?.yield) {
    return scheduler.yield();
  }
  return new Promise(resolve => setTimeout(resolve, 0));
}

button.addEventListener('click', async () => {
  showFilterResultsLoading();   // visible update first
  await yieldToMain();          // let the browser paint
  applyFilters();               // heavier work afterwards
  sendAnalyticsEvent();
});

According to web.dev, scheduler.yield() is supported in Chrome and Edge from version 129 and Firefox from version 142, but not in Safari, which is why the fallback matters.

Break up long tasks

Any task longer than 50 ms blocks input. Split long loops, such as processing hundreds of products, into chunks with a yield between them. Ask your developer to review hydration in JavaScript frameworks, which often runs as one large task during load.

Keep the DOM lean

Every extra element makes style and layout recalculation slower. Paginate or virtualize long lists, remove hidden duplicate menus for mobile and desktop, and use the CSS content-visibility property to skip rendering of off-screen sections.

Avoid layout thrashing

Reading a layout value, such as an element’s height, right after changing styles forces the browser to calculate layout immediately. Group reads before writes in your event handlers.

Re-check after each change

Field data takes time to move. CrUX in PageSpeed Insights covers the previous 28 days, and Search Console’s validation runs a 28-day monitoring window. Use your own RUM to confirm the fix within days, then let Google’s reports catch up.

Does INP affect SEO rankings?

INP is part of Core Web Vitals, which Google says aligns with what its core ranking systems seek to reward, but it is not a shortcut to the top of the results. Google “highly recommends” good Core Web Vitals for success in Search, while relevance and content quality remain decisive.

The stronger case for fixing INP is commercial. Slow filters, laggy add-to-cart buttons and unresponsive forms cost conversions directly, especially on mobile. Treat a good INP score as a baseline for a usable site, then put the bulk of your SEO effort into content and structure. Our ecommerce SEO guide shows where performance fits in a store’s priorities.

What should you aim for?

Aim for a 75th percentile INP comfortably below 200 ms on mobile, not just under it. A page at 190 ms passes today but can fail after one new marketing tag or a traffic spike from slower devices. A buffer of several tens of milliseconds gives your team room to add features.

Set targets per template rather than per URL: category pages, product pages, articles, forms and checkout. Fix the template with the most traffic and the worst INP first, and make INP part of the release checklist so new scripts are reviewed before they go live.

Where does Marketer Coffee fit?

Marketer Coffee is an AI SEO and GEO agency; we treat performance as part of technical SEO, alongside architecture, structured data and content. Results from other industries:

  • Aldi.pl (retail). Organic clicks rose from 367,127 to 852,724 a month in 12 months (+132%) with product content, Product schema, a leaner architecture and unified store data. Read the Aldi case study.
  • IDG-Online (CCTV services and affiliate). From 500 to 30,000+ monthly clicks in 16 months against Ceneo, MediaExpert and MediaMarkt, with ranking pages, Q&A content and schema. Read the IDG-Online case study.

Who we fit: sites where speed, structure and content need one plan, often stores or international sites. Who we do not fit: teams that only need a JavaScript performance engineer for a one-off framework rewrite; hire a specialist developer for that. To see how your site performs in AI search as well as Google, start with our free AI visibility audit.

Frequently asked questions about INP scores

What is a good INP score?

200 milliseconds or less at the 75th percentile of real page visits, measured separately for mobile and desktop. Above 200 ms and up to 500 ms needs improvement; above 500 ms is poor.

When did INP replace FID?

INP became a Core Web Vital on 12 March 2024, replacing First Input Delay. Search Console removed FID on that date.

Why is my INP good on desktop but poor on mobile?

Phones have slower processors, so the same scripts take longer to run. The 2024 Web Almanac found good INP on 97% of desktop websites but only 74% of mobile websites.

Can Lighthouse measure INP?

A standard Lighthouse page load test does not include user interactions, so it cannot report INP. It shows Total Blocking Time, which is a rough proxy. Use field data from CrUX or your own RUM to judge INP.

How long does it take for an INP fix to show in Search Console?

Field data covers a rolling 28-day window, and Search Console validation monitors for 28 days, so expect about four weeks before reports fully reflect a fix. Your own RUM can confirm it sooner.

What is the short version?

Good INP is 200 ms or less for at least 75% of real visits, on each device type. Find failing templates in Search Console, record the slow interactions in DevTools, decide which phase is slow, and fix the cause: fewer third-party scripts, faster feedback, shorter tasks and a smaller DOM. Then leave yourself a buffer.

If you want a second opinion on where performance sits among your SEO priorities, Book a free consultation.

Sources: web.dev, “Interaction to Next Paint (INP)” (thresholds, 75th percentile, interaction phases, outlier rule, TBT as proxy); web.dev blog post by Jeremy Wagner and Rick Viscomi announcing INP as a Core Web Vital on 12 March 2024; web.dev, “Optimize Interaction to Next Paint” and “Optimize long tasks” (50 ms long tasks, scheduler.yield support); Google Search Console Help, Core Web Vitals report (thresholds, 28-day validation); Google Search Central, “Understanding Core Web Vitals and Google search results”; Chrome for Developers, CrUX methodology and CrUX in PageSpeed Insights (eligibility, 28-day window, origin fallback); HTTP Archive, Web Almanac 2024, Performance chapter; Marketer Coffee, Aldi and IDG-Online case studies (other industries).

Leave a Reply

Your email address will not be published. Required fields are marked *

Want results like these for your site?

Book a free 30-minute call. You leave with three concrete SEO opportunities, whether we work together or not.

Book a free call