Why is INP poor: Guide for Core Web Vitals metrics
Google’s Core Web Vitals measure key aspects of user experience. The Core Web Vitals report shows how your pages perform, based on real world usage data (sometimes called field data). In your metric type report, you may wonder why the INP is rated as ‘Poor’ and how to fix it. This guide will walk you through all needed steps. Let’s dive in!

Interaction to Next Paint (INP)
Interaction to Next Paint (INP) is rated “poor” when responses to user actions take longer than 500 milliseconds. This delay causes noticeable lags in visual feedback, frustrating visitors and reducing engagement.

Practical steps to optimize INP score:
- Diagnose the Problem: First, you need to identify which interactions are slow. INP measures the latency of all user interactions, from input delay to the next visual paint. You can use tools to find and diagnose these bottlenecks.
- Field Data: Use Real User Monitoring (RUM) tools to collect data from actual users. This is the most accurate way to find out which specific interactions are causing the worst scores on your site.
- Lab Data: For a quick check, use browser developer tools like Chrome DevTools Performance panel. You can record a trace of your interactions to pinpoint where the main thread is being blocked. The Web Vitals Chrome Extension can also provide on-the-spot diagnostic information.
- Shopify suggests using tools and methods to identify which scripts are causing the largest delays (long tasks, rendering updates).
- Optimize Your Code: After identifying the slow interactions, focus on these areas to improve your code:
- Break up Long Tasks: If a task takes more than 50 milliseconds, it can block the main thread and delay user input. Break these long tasks into smaller, asynchronous chunks. Use setTimeout or requestIdleCallback to defer non-essential work until the browser is idle.

Added setTimeout to the HTML.
- Reduce JavaScript Execution Time: Minimize your JavaScript payload by using code splitting, lazy loading, and removing unused code. This reduces the time the browser spends parsing and executing scripts.
- Provide Immediate Visual Feedback: For complex interactions that take longer to process, provide immediate visual feedback (e.g., a loading spinner or progress bar). This gives the user a sense that their input has been received and something is happening, even if the full response is still being processed.
- Avoid Excessive DOM Size: A large Document Object Model (DOM) can make rendering updates expensive and slow. Keep your DOM as lean as possible by removing unnecessary elements.
- Use Web Workers: Offload heavy or complex JavaScript computations to a web worker. This keeps the main thread free to handle user interactions without delay.
General Best Practices:
- Optimize CSS: Use efficient CSS selectors and reduce the complexity of your styles to minimize rendering times.
- Audit and remove unused or heavy apps / third-party scripts: Many Shopify stores suffer from “script bloat” — apps or third-party code that’s still present even if the app isn’t used.
- Evaluate which apps are essential and which ones harm performance more than they help.
- Load third-party scripts only when they are needed.
- Monitor continuously: INP optimization is an ongoing process. Regularly monitor your site's performance to track your progress and identify new issues.
- Minimize layout thrashing: Avoid forcing the browser to repeatedly recalculate element positions and sizes.
What This Means in Plain Language
Simply put, poor INP happens when your site feels slow to react after someone clicks, taps, or types. To make interactions feel faster and smoother:
- Break down big, heavy tasks into smaller ones so the browser doesn’t freeze up.
- Cut down on unnecessary or bulky JavaScript so clicks and taps respond more quickly.
- Show users something right away (like a loading spinner) if an action takes time to finish, so they know the site is responding.
- Keep your pages lean—remove extra elements, unused apps, or third-party code that slows things down.
- Move heavy background work off the main thread, so it doesn’t block interactions.
- Regularly monitor your site’s performance to catch new issues before they pile up.
Now you know what leads to poor Core Web Vitals metric types - INP. It’s best to check this component frequently and fix any errors as soon as possible. If you need any support on this, the Tapita team is here to help.
Related Articles
Why is LCP poor - Guide for Core Web Vitals metrics
Google’s Core Web Vitals measure key aspects of user experience. The Core Web Vitals report shows how your pages perform, based on real world usage data (sometimes called field data). In your metric type report, you may wonder why the LCP is rated as ...
Why is CLS poor: Guide for Core Web Vitals metrics
Google’s Core Web Vitals measure key aspects of user experience. The Core Web Vitals report shows how your pages perform, based on real world usage data (sometimes called field data). In your metric type report, you may wonder why the CLS is rated as ...
Improve real-user performance metrics
To access this feature, on Tapita SEO & Speed left tab menu, go to 'Speed Booster', click 'Configure' in the feature box. Let’s roll down and read each feature in detail one by one. While tools like Google PageSpeed Insights and GTmetrix have been ...
Shopify's new performance dashboard
From January 31, 2024, Shopify will begin rolling out a new web performance dashboard for Shopify storefronts over the next few weeks, to replace the old speed score. Here's what the new scores will look like: What are these new scores? These are ...
Real User Monitoring Report Guideline
It will be assumed that you are a Tapita advanced account. Let’s roll down and read each feature in detail one by one. This report provides insights into real-world user experiences regarding website performance. It allows you to track daily ...