SEO Beginner Updated 2026-06-08

What is Interaction to Next Paint (INP)?

Learn what Interaction to Next Paint (INP) means, why it matters for search rankings, and how consistent content publishing keeps your business visible in Google.

Definition

Interaction to Next Paint (INP) is a Core Web Vitals metric that measures how quickly a web page responds to user interactions like clicks, taps, and key presses, replacing First Input Delay (FID) as the responsiveness metric.

What Is Interaction to Next Paint (INP)?

Interaction to Next Paint (INP) is a Core Web Vitals metric that measures how responsive a web page is to user interactions. It replaced First Input Delay (FID) in March 2024 as the official responsiveness metric.

The key difference from FID:

MetricMeasuresLimitation
First Input Delay (FID)Delay before the first interaction is processedOnly measures the first interaction
Interaction to Next Paint (INP)Latency of all interactions throughout the page sessionCaptures the worst-performing interactions

INP measures the time from when a user interacts with the page (clicks a button, taps a link, presses a key) to when the browser paints the visual feedback for that interaction. This gives a much more complete picture of a page’s responsiveness than FID, which only measured the very first interaction.

How INP Is Calculated

INP tracks all click, tap, and keyboard interactions during a page session. For each interaction, it measures:

  1. Input delay: Time between user action and when the browser starts processing
  2. Processing time: Time to run event handlers
  3. Presentation delay: Time to paint the next frame showing the interaction result

INP is the worst interaction latency (or the 98th percentile for pages with many interactions). If a user clicks 50 times and one click takes 800ms while the rest take 50ms, INP reports 800ms.

INP Scoring Thresholds

RatingTimeUser Experience
Good≤ 200 millisecondsPage feels instantly responsive
Needs Improvement200 - 500 millisecondsUsers notice occasional lag
Poor> 500 millisecondsPage feels sluggish and frustrating

Target: Keep INP under 200ms for at least 75% of page loads.

Why INP Matters

User Frustration

Slow interactions are one of the most frustrating web experiences. A user who clicks a button and sees no response for half a second assumes the page is broken.

Impact of poor INP:

  • 32% higher bounce rate on pages with INP > 500ms
  • 15% lower conversion rate on slow-interaction checkout flows
  • Users are 2x more likely to abandon forms with delayed feedback

Task Completion

Slow interactions compound. A checkout process with 5 steps, each with 300ms delay, feels unbearably slow. The same process with 50ms interactions feels seamless.

Google Ranking Factor

INP is a confirmed ranking factor through the Page Experience signal. Pages with poor INP may be outranked by equally relevant pages with better responsiveness.

What Causes Poor INP

Long JavaScript Tasks

When JavaScript runs for a long time without yielding control back to the browser, interactions are delayed.

Example: A script that processes 10,000 data points in a single loop blocks all interactions until it finishes.

Heavy Event Handlers

Click handlers that perform complex calculations, DOM manipulations, or API calls before showing feedback.

Example: A “Add to cart” button that synchronously updates the entire page state before showing any visual response.

Third-Party Scripts

Analytics trackers, chat widgets, and advertising scripts often run on the main thread, competing with user interactions.

Main Thread Congestion

Too many tasks competing for the main thread — rendering, scripting, and user input all fighting for the same resource.

How to Improve INP

1. Break Up Long Tasks

Split large JavaScript tasks into smaller chunks using setTimeout, requestIdleCallback, or scheduler.yield().

Before:

function processLargeDataset(data) {
  // Blocks for 2+ seconds
  for (let i = 0; i < data.length; i++) {
    heavyComputation(data[i]);
  }
}

After:

async function processLargeDataset(data) {
  for (let i = 0; i < data.length; i++) {
    heavyComputation(data[i]);
    if (i % 50 === 0) {
      await scheduler.yield(); // Allows interactions to process
    }
  }
}

2. Optimize Event Handlers

Show visual feedback immediately, then do the heavy work.

Before:

button.addEventListener('click', () => {
  validateForm();        // 200ms
  submitToServer();      // 500ms
  updateUI();            // 100ms
  showSuccessMessage();  // Finally shows feedback
});

After:

button.addEventListener('click', () => {
  button.classList.add('loading'); // Immediate feedback
  requestAnimationFrame(() => {
    validateForm();
    submitToServer();
    updateUI();
    showSuccessMessage();
  });
});

3. Defer Non-Critical Third-Party Scripts

Load analytics, chat widgets, and social buttons after the page is interactive.

<script defer src="analytics.js"></script>
<script async src="chat-widget.js"></script>

4. Use Web Workers

Move heavy computations off the main thread entirely.

const worker = new Worker('calculator.js');
worker.postMessage(largeDataset);
worker.onmessage = (event) => {
  displayResults(event.data);
};

5. Reduce DOM Size

Large DOMs (10,000+ nodes) slow down rendering and interactions.

  • Remove unused elements
  • Use virtual scrolling for long lists
  • Simplify CSS selectors
  • Minimize nested DOM depth

INP Optimization Checklist

Quick wins:

  • Show loading states immediately on button clicks
  • Defer non-critical JavaScript
  • Remove unused third-party scripts

Medium effort:

  • Break up long JavaScript tasks
  • Optimize event handlers for immediate feedback
  • Implement virtual scrolling for large lists

High effort:

  • Move heavy logic to web workers
  • Reduce overall DOM size
  • Implement server-side rendering

INP Testing Tools

ToolWhat It ShowsCost
Chrome DevTools Performance PanelIndividual interaction latenciesFree
LighthouseINP score and longest interactionsFree
PageSpeed InsightsField and lab INP dataFree
Web Vitals ExtensionReal-time INP as you browseFree
Google Search ConsoleINP issues across your siteFree

INP vs. FID: What’s Different?

AspectFID (Old)INP (Current)
What it measuresFirst interaction delay onlyAll interactions throughout session
Metric typeSingle measurementWorst-case (or 98th percentile)
CapturesInput delay onlyFull interaction duration
Session lengthN/A (only first interaction)Entire page lifetime
Rolling outDeprecated March 2024Official metric from March 2024

From understanding Interaction to Next Paint (INP) to ranking for it

Understanding Interaction to Next Paint (INP) is the starting point. The businesses that actually benefit from it are the ones consistently publishing SEO content. Not just understanding the concept. Most companies know what they should be doing; the bottleneck is execution. theStacc removes that bottleneck by publishing 30 keyword-optimized articles to your site every month, automatically.

See how theStacc works

Build rankings around terms like "Interaction to Next Paint (INP)". Automatically

30 keyword-optimized articles published to your site every month. Rankings compound while you focus on your business.

Start Your $1 Trial

$1 for 3 days · Cancel anytime