Performance·Cursor
PerformanceCursor

Improve Interaction to Next Paint (INP)Cursor

INP measures responsiveness to clicks and taps. Heavy JS on interaction kills it. Replaced FID as a Core Web Vital in 2024.

rocket_launch

Fixing this in Cursor

Agentic AI code editor built on VSCode

In Cursor you edit real files, so this fix lands via direct diffs instead of a regenerated project. Paste the prompt below into your Cursor chat and the fix rolls out across the project in one pass.

Using a different tool? Pick your stack:

The prompt for Cursor

Copy and paste this into your Cursor chat exactly as-is.

Apply these changes to my codebase. Edit the files directly and keep existing formatting:

Improve Interaction to Next Paint

1. Break up long JavaScript tasks into smaller chunks.
2. Defer non-critical JavaScript with async/defer.
3. Reduce main-thread blocking from third-party scripts.

Why this matters

INP replaced FID in March 2024 as a Core Web Vital. It measures actual interaction responsiveness — click a button, how long until the next paint?

Poor INP usually means heavy event handlers or blocking main thread work. Users feel the jank even without understanding the metric.

How to use this prompt in Cursor

  1. 1. Open your Cursor project.
  2. 2. Copy the prompt above with the copy button.
  3. 3. Paste into the Cursor chat and send.
  4. 4. Review the diff, accept the changes, redeploy.
  5. 5. Verify the fix using the checklist below.

Common mistakes to avoid

  • error_outlineRunning expensive calculations synchronously in click handlers.
  • error_outlineLarge React re-renders on every input change (no debounce).
  • error_outlineLoading 3rd-party scripts synchronously — they block the main thread.
  • error_outlineNot yielding to the browser between long tasks.

How to verify the fix worked

  • check_circlePageSpeed Insights → INP < 200ms.
  • check_circleDevTools Performance → INP shown in Lighthouse and Performance tab.
  • check_circleReal user monitoring (e.g., Vercel Analytics, SpeedCurve) confirms field data.

Frequently asked questions

INP vs FID?expand_more
FID only measured the first input. INP measures the worst across the session — much more comprehensive and realistic.
How do I split long tasks?expand_more
Use `scheduler.yield()` (Chrome) or `setTimeout(fn, 0)` between chunks to let the browser paint and handle events.

Want all 34 prompts tailored to your Cursor site?

Pantra scans your site in 10 seconds, detects the stack, and generates the exact prompts that apply — only the ones you actually need.

Scan my site

Related Cursor prompts