Skip to main content
Comparison

INP (Interaction to Next Paint) vs CLS (Cumulative Layout Shift): What's the Difference?

By ยท Updated ยท 7 min read

INP vs CLS: The Core Distinction

INP (Interaction to Next Paint) measures how long the browser takes to visually respond after a user interaction โ€” a click, tap, or keypress. It captures the worst-case interaction delay across an entire page session and reports it in milliseconds. A score under 200ms is considered good; above 500ms fails.

CLS (Cumulative Layout Shift) measures unexpected visual movement of page elements during load or after user actions. It produces a unitless score by multiplying the fraction of the viewport affected by a shift against the distance those elements moved. A score under 0.1 is considered good; above 0.25 fails.

The clearest dividing line: INP is about time โ€” how fast the page reacts to you. CLS is about space โ€” whether the page stays visually stable. A page can have perfect INP and terrible CLS, or vice versa. They measure entirely separate dimensions of user experience.

How Each Metric Is Measured and Scored

INP is collected from real user interactions via the Event Timing API. During a session, every qualifying interaction is timed from the moment the event fires to the moment the next frame is painted. At session end, the highest-latency interaction (with minor outlier trimming on long sessions) becomes the INP score. This makes INP sensitive to rare but severe slowdowns โ€” a sluggish checkout button click counts heavily.

CLS is calculated continuously throughout a page's lifespan. Each layout shift gets a score, and shifts within a 1-second window are grouped into session windows. The largest session window's cumulative score becomes the final CLS score. This means a single large shift โ€” like an ad loading and pushing the Add-to-Cart button down โ€” can dominate the entire score.

Both metrics live inside Google's Core Web Vitals framework and feed into the Chrome User Experience Report (CrUX), which informs Google Search ranking signals. Neither metric is captured solely from lab tools; both require real-user data to produce field scores, though lab approximations exist.

When INP Applies vs When CLS Applies

INP applies the moment a user does something: opens a filter drawer, selects a product variant, types in a search box, or taps a quantity selector. If the UI freezes for 600ms before responding, that registers as a poor INP event. INP is therefore most relevant on interaction-heavy pages โ€” product listing pages with faceted filters, cart pages, and multi-step checkout flows.

CLS applies during page load and any subsequent dynamic content injection. It fires when images without declared dimensions render, when cookie consent banners appear above content, or when a late-loading font swap shifts a headline. On ecommerce sites, CLS frequently spikes on product pages where image carousels, promotional banners, or review widgets inject themselves after the initial paint.

The practical rule: if a user has not touched anything yet and elements are jumping around, that is a CLS problem. If a user taps a button and nothing visibly happens for a noticeable pause, that is an INP problem.

Where INP and CLS Overlap โ€” and Conflict

There is one intersection worth understanding: user-initiated layout shifts. When a user clicks a button and the resulting DOM update causes elements to move unexpectedly, that shift is excluded from the CLS calculation because it was triggered by user input. However, the delay before that update paints is captured by INP. This means a poorly coded accordion or modal can fail INP without affecting CLS at all.

A conflict arises in optimization priorities. Reducing INP often means breaking long JavaScript tasks into smaller chunks using techniques like scheduler.yield() or moving work off the main thread. Reducing CLS means reserving space for dynamic content with explicit dimensions or CSS aspect-ratio boxes. These are entirely separate engineering efforts with no shared solution.

One indirect relationship exists: heavy JavaScript that causes long tasks (hurting INP) can also delay resource loading, which sometimes worsens CLS by pushing late-loading elements into the viewport after initial paint. Fixing main-thread congestion can improve both metrics simultaneously, but this is a side effect rather than a shared root cause.

Ecommerce Scenarios That Expose Each Metric

INP failures are common on product listing pages with client-side filtering. When a shopper clicks a facet checkbox and the product grid re-renders via JavaScript, that re-render blocks the main thread. If the process takes 700ms, INP registers a poor interaction. Cart pages with real-time price calculation and checkout pages with address validation are other frequent INP failure points.

CLS failures are common on homepage hero sections where a promotional banner loads after the initial paint, pushing navigation links down. Product detail pages with lazy-loaded images that lack explicit width and height attributes are another standard source. Review carousels that inject content below the fold after DOMContentLoaded also accumulate CLS score.

A quick diagnostic split: use Chrome DevTools' Performance panel to identify long tasks on click events for INP issues, and use the Layout Instability API or the CLS breakdown in PageSpeed Insights to pinpoint which elements are shifting and when for CLS issues.

Which Metric to Fix First

Prioritize INP when users interact frequently with the page and report the interface feeling unresponsive. On ecommerce sites, this translates to faceted search, cart interactions, and checkout forms. A failing INP score (above 500ms) on any of these pages directly delays purchase completion and increases abandonment at the most revenue-critical moments.

Prioritize CLS when users report clicking the wrong element or when analytics show rage-clicks or mis-taps concentrated near dynamic content areas. A high CLS score on a product page where the Add-to-Cart button shifts can cause accidental taps on adjacent elements โ€” a direct revenue problem.

If both scores fail, start with CLS. Layout shifts are typically fixed through static HTML and CSS changes โ€” declaring image dimensions, reserving ad slots โ€” which carry lower engineering risk than rearchitecting JavaScript execution for INP. CLS fixes also tend to improve perceived load quality faster, making subsequent INP improvements more noticeable to users.

Frequently asked questions

Can a page have good INP but bad CLS at the same time?

Yes. INP and CLS measure independent dimensions. A page can respond to clicks in under 100ms (excellent INP) while still having images and banners shift content after load (poor CLS). Both metrics are scored separately in Core Web Vitals reporting, and fixing one has no automatic effect on the other unless the root cause happens to overlap.

Do user-triggered layout shifts count against CLS?

No. The CLS specification excludes layout shifts that occur within 500ms of a user interaction, such as a click or keypress. However, the delay between that interaction and the resulting paint is captured by INP. So a button click that causes the page to reorganize visually is invisible to CLS but fully measured by INP.

Which Core Web Vital has a bigger impact on Google rankings, INP or CLS?

Google weights all three Core Web Vitals โ€” INP, CLS, and LCP โ€” within its Page Experience signal, but does not publish individual weighting multipliers. Failing any one metric moves a page below the 'good' threshold in CrUX data. Sites with multiple failing metrics see compounded ranking disadvantage relative to competitors with all three passing.

What tools show INP and CLS scores side by side?

PageSpeed Insights shows both metrics together under the Field Data section when sufficient CrUX data exists for a URL. Google Search Console's Core Web Vitals report groups pages by metric status and separates INP and CLS into distinct issue categories. Chrome DevTools measures CLS in the Performance panel and approximates INP through interaction timing in the same trace.

Is INP harder to fix than CLS for most ecommerce stores?

Generally, yes. CLS fixes are primarily HTML and CSS changes โ€” add explicit image dimensions, reserve space for ads, avoid injecting content above existing elements. INP fixes require identifying and breaking up long JavaScript tasks, deferring non-critical work, and sometimes rearchitecting event handlers. The engineering effort and risk for INP improvements are higher than for most CLS corrections.

MG
Written by

Matt is the founder of RunOctopus. He built All Angles Creatures from zero to page-1 rankings in reptile feeder insects in under 60 days using exactly this method โ€” turning a hard, entrenched niche into RunOctopus's proof store for programmatic SEO and AI search citation.

Connect on LinkedIn →

See what Otto would build for your store

Free architecture preview. No card required. Five minutes.

Generate Preview →