Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix Now×
Skip to content
World desk5 min

How to Diagnose and Fix Poor INP in a React App

Poor INP in React calls for a measured fix: find the slow field interaction, inspect its trace, and address the work delaying the next paint.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To fix poor Interaction to Next Paint (INP) in a React app, identify a slow interaction in field data, reproduce it, and use a performance trace to determine whether the delay comes from input waiting, JavaScript event handling, or the browser’s next paint. Then target that cause: keep controlled input feedback urgent, defer suitable non-urgent rendering, and avoid long synchronous tasks or unnecessary updates. React can contribute to slow interactions, but it is not the only possible cause.

What INP measures—and when it is poor

INP measures responsiveness across a page visit. It considers the latency of interactions such as clicks, taps, and key presses, then reports a value representative of the slowest qualifying interaction (sometimes ignoring outliers). An interaction can include multiple event handlers triggered by one gesture.

As an Amazon Associate I earn from qualifying purchases.

Google’s current guidance classifies INP of 200 milliseconds or less as good and values over 500 milliseconds as poor. Core Web Vitals thresholds are assessed at the 75th percentile of field page loads. INP replaced First Input Delay (FID) as a Core Web Vital on March 12, 2024: unlike FID, INP considers responsiveness throughout the visit and includes the time until the next frame is painted. See Google’s INP guidance and its Web Vitals assessment guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to find the interaction users experience as slow

Start with field data

Check Chrome User Experience Report (CrUX) data in PageSpeed Insights or Search Console if your site has enough eligible data to appear. CrUX can show whether INP is a problem for an origin or URL, but aggregate results often do not identify the exact gesture or code path responsible. Real User Monitoring (RUM) can add interaction-level context, such as the interaction type and when it occurred. Field data and RUM coverage differ, so do not treat their measurements as interchangeable. Google’s optimization guide explains how field diagnosis fits into the INP workflow.

Reproduce a realistic user flow

Use the interaction context from RUM when available. Otherwise, follow the user journey and test likely slow actions: typing into a search field, opening a menu, filtering a large list, or navigating to a view with substantial work. Include interactions made while the page is loading; the main thread may be busy even if the same action feels fast after load.

Separate field observation from lab diagnosis

Field data tells you what eligible real users experience. A lab reproduction lets you control the flow and inspect a trace for likely causes. A lab result describes only the interactions and conditions reproduced; it cannot stand in for real-user experience. After deployment, check both the affected interaction and broader field data.

How to read an INP performance trace

Interaction latency has three parts: input delay (time waiting before the interaction’s handlers can run), processing duration (time spent running event handlers and related work), and presentation delay (time from the end of processing until the next frame is painted). Inspect the relevant browser frame or browsing context and determine which part dominates. Application handlers, React-triggered rendering, other libraries, browser work, and third-party scripts can all hold up the next paint. See Google’s guide to optimizing INP and the INP codelab.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • High input delay: Look for a busy main thread, including long-running JavaScript that began before the gesture.
  • High processing duration: Inspect the event handlers and work they trigger. Check whether the interaction does unnecessary calculation, repeated updates, or too much synchronous JavaScript.
  • High presentation delay: Investigate the rendering work needed before the browser can show the next frame, including large UI updates.

These are diagnostic directions, not automatic diagnoses: follow the trace through the interaction rather than inferring the cause from the React component alone.

Choose a React fix that matches the trace

Keep controlled input updates urgent

A controlled text input must update its state synchronously in its change handler so the displayed value tracks what the user types. React does not allow a Transition update to control a text input. If typing triggers expensive results, keep the input value update urgent and move suitable dependent work out of that urgent path. See React’s useTransition reference.

Use a Transition for non-urgent state updates

useTransition marks state updates as non-blocking, allowing React to interrupt background rendering to handle a more urgent update, such as another keystroke. It may suit expensive results or navigation that need not block immediate feedback. It is not a way to defer the controlled input’s own value update, and it will not solve time spent in unrelated listeners or third-party scripts.

Defer a slow dependent view when it can catch up

useDeferredValue can let a slow list, chart, or other dependent view update after urgent UI changes. It is useful when the slow view cannot be fully optimized, but it does not make the underlying work disappear. See React’s useDeferredValue reference.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Memoize only measured repeat work

useMemo can cache an expensive calculation between renders, but it does not make the first calculation faster. Profile a laggy interaction and use memoization where repeated work is actually contributing to the delay; memo and useMemo are not universal INP fixes. See React’s useMemo reference.

Break up long synchronous work or reduce oversized updates

If the trace points to long JavaScript work, break up tasks where possible or avoid unnecessary JavaScript. If a large rendering update dominates, reduce the work the interaction triggers. The trace should determine whether the remedy is scheduling, selective memoization, smaller updates, or work outside React.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to profile React without mistaking profiling for production

React’s <Profiler> reports render measurements including actualDuration and baseDuration. Use them to investigate component rendering, but interpret them alongside the browser performance trace: React render timing does not account for every source of interaction latency. Profiling adds overhead and is disabled in ordinary production builds unless a profiling build is enabled. Check behavior in a production build under representative conditions as well. See React’s Profiler reference.

Validate the change in the field

After deploying a targeted fix, recheck the interaction that led you to investigate and monitor field INP. A lab trace can confirm what happened in the reproduction; only field data can show whether real users’ experience changed. If the interaction remains slow, return to the trace and inspect the remaining latency component instead of layering on speculative React optimizations.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

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

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.