Skip to content

Failing INP and UI freezes on interaction

Interaction to Next Paint (INP) and main-thread fixes

Find the interactions that block the main thread, break up the long tasks behind them, and confirm the improvement in field INP data.

Symptoms

Signs your platform has this problem

If several of these sound familiar, the plan below is where we would start.

01

Search Console INP issues

Pages failing the Core Web Vitals assessment because interactions take longer than 200 ms.

02

Buttons that freeze on click

Heavy synchronous event handlers blocking the next paint.

03

Laggy input on mobile

Typing into search boxes and forms feels delayed.

Remediation plan

How we fix it, step by step

Each phase ends with a measurement, so you can see what changed before the next one starts.

01

Interaction profiling

Recording interaction traces in Chrome DevTools to find long tasks (over 50 ms) during clicks and typing.

02

Breaking up long tasks

Splitting heavy synchronous work with scheduler.yield() so the browser can paint in between.

03

React startTransition

Marking heavy state updates as transitions so urgent visual feedback comes first.

04

Optimistic UI

Updating buttons and inputs immediately while background requests complete.

Technical checklist

Remediation checklist

What we check before a change goes to production:

  • Profile long tasks (over 50 ms) in the Chrome DevTools Performance panel
  • Wrap non-urgent state updates in startTransition
  • Chunk heavy processing with scheduler.yield() or requestIdleCallback
  • Use optimistic updates for clicks and form submissions that wait on a request

What we measure

We take a baseline first and report the same measurements after each change, from your own monitoring — evidence, not promised results.

INP
Field data at p75 (CrUX or RUM), before and after
Long tasks
Long tasks during key interactions, from traces
CWV pass rate
Share of page groups passing in Search Console

Related service

Web & frontend

Frontend engineering measured in field Core Web Vitals before and after, accessibility to WCAG AA, and replatforms shipped route by route with no freeze.

Explore Web & frontend

Questions

Questions about this remediation

INP is the Core Web Vital for responsiveness: the time from a user's interaction (a click, tap or key press) until the next frame is painted. Google rates 200 ms or less at the 75th percentile as good.

startTransition marks state updates as non-urgent, so React can interrupt that rendering work to handle user input first.

Want an engineer to look at this with you?

Send us the symptoms and any metrics you have. We'll reply within one business day, set up a call and agree what to measure before anything changes.