CLS vs INP: The Core Distinction
CLS (Cumulative Layout Shift) measures visual stability โ specifically, how much page elements move unexpectedly during the user's session. INP (Interaction to Next Paint) measures interaction responsiveness โ how long it takes the browser to visually respond after a user taps, clicks, or presses a key. One is about the page shifting beneath the user; the other is about the page reacting to the user.
Google counts both as Core Web Vitals, meaning they directly influence search ranking signals. CLS is scored as a unitless number where lower is better (good threshold: below 0.1). INP is measured in milliseconds where lower is also better (good threshold: below 200ms). Despite being measured differently and capturing different failure modes, both ultimately determine whether a page feels trustworthy and responsive to real shoppers.
How Each Metric Is Calculated
CLS aggregates layout shift events across the entire page lifecycle. Each shift gets a score equal to the impact fraction (how much of the viewport moved) multiplied by the distance fraction (how far elements moved). Google sums the largest cluster of shifts within a 1-second session window and uses that as the page's CLS score. A single large image loading without declared dimensions can spike a score dramatically.
INP takes a different approach: it records the latency of every discrete interaction during a session โ clicks, taps, and keyboard inputs โ then reports the worst-case interaction latency, with a small buffer that ignores outliers on very long sessions. INP replaced FID (First Input Delay) in March 2024 because FID only captured the delay before the browser started handling an event, while INP captures the full visual response time from input to the next paint.
The calculation difference matters for ecommerce diagnostics. A high CLS score points to rendering or resource-loading problems visible in the DOM. A high INP score points to JavaScript execution blocking the main thread during user interactions โ a different root cause requiring a different fix.
When Each Metric Fires and What Triggers It
CLS fires passively. No user action is required. Layout shifts happen when fonts load and text reflows, when images render without reserved space, when third-party ad scripts inject banners, or when dynamic content like cart notifications push existing elements down. On a product listing page, a lazy-loaded promotional banner appearing above the fold is a classic CLS culprit.
INP fires only after user interaction. A shopper clicking 'Add to Cart' triggers an interaction; INP measures the time until the button visually changes state or the cart count updates on screen. If the main thread is busy processing analytics scripts or rendering recommendations at that moment, INP climbs. Product filter clicks on a category page โ where JavaScript recalculates results โ are one of the highest-INP moments in ecommerce.
The timing difference means CLS problems appear immediately on page load or during scroll, while INP problems surface at specific interactive moments. A page can score perfectly on CLS but fail INP entirely if its JavaScript is heavy during interactions, and vice versa.
Where CLS and INP Overlap in Practice
The two metrics can interact. A slow INP event sometimes triggers a layout shift. If a user clicks a filter and the page takes 600ms to respond, the resulting DOM changes can cause elements to reflow โ contributing to CLS as a side effect. In these cases, fixing the INP (by deferring or breaking up JavaScript tasks) also reduces the downstream CLS score.
Both metrics are also measured in the field via Chrome User Experience Report (CrUX) data, which Google uses in Search Console and PageSpeed Insights. A poor field score on either metric can push a URL into the 'needs improvement' or 'poor' bands in Core Web Vitals reports. For ecommerce stores running A/B tests or personalizing content dynamically, both metrics need active monitoring because any JavaScript that touches the DOM risks affecting one or both.
Fixing CLS vs Fixing INP: Different Strategies
CLS fixes center on reserving space and controlling render order. Setting explicit width and height attributes on images and videos, using CSS aspect-ratio boxes for dynamic content, loading fonts with font-display: optional or swap with fallback metrics, and delaying third-party ad slots until after load are the standard remediation steps. These changes are largely static and infrastructure-level.
INP fixes require JavaScript optimization. Breaking long tasks into smaller chunks using scheduler.yield() or setTimeout, reducing third-party script execution on interaction paths, moving heavy computation off the main thread with Web Workers, and minimizing React or framework re-renders on interaction events are the primary approaches. These require developer instrumentation to identify which specific interactions are slow.
For ecommerce operators, the practical priority depends on where scores are failing. If CLS is the problem, start with image dimensions and font loading. If INP is the problem, audit JavaScript execution during 'Add to Cart,' search, and filter interactions โ those are the highest-traffic, highest-impact interactions on most stores.
Actionable Takeaway: Diagnose Before You Fix
Run both metrics in PageSpeed Insights and Google Search Console's Core Web Vitals report before writing a single line of code. The two metrics fail for entirely different reasons, and fixing CLS issues (image dimensions, font loading) does nothing for a failing INP score caused by main-thread congestion. Separate the diagnostic phase for each metric.
For CLS, use the Layout Instability API in Chrome DevTools (the Rendering panel with Layout Shift Regions enabled) to see exactly which elements are shifting. For INP, use the Chrome DevTools Performance panel to record interactions and look for long tasks blocking the main thread. Prioritize whichever metric sits in the 'poor' band first โ Google's ranking signal weighs the 75th percentile of field data, so fixing your worst-performing segments delivers the largest ranking benefit.