Next.js apps regress on INP first — heavy client components hydrated on scroll block the main thread long after LCP has already painted. Vercel Analytics reports p75 but hides the interaction that caused it; that's the gap we close.
What's different about Next.js
Next.js apps regress on INP first — heavy client components hydrated on scroll block the main thread long after LCP has already painted. Vercel Analytics reports p75 but hides the interaction that caused it; that's the gap we close.
Signals to watch on Next.js
INP spikes after a deploy that adds a new client component to a shared layout
LCP regression when next/image switches to unoptimised mode under load
CLS from Google Fonts loaded via next/font/google without size-adjust
How Lemwatch surfaces it
We pull field data every hour and correlate regressions with your deploy events, so an INP jump maps back to a specific commit — not a vague 'performance is worse this week'.
What we check for core web vitals
Largest Contentful Paint (LCP) — 75th percentile, tracked hourly
Cumulative Layout Shift (CLS) — with the specific shifting element flagged
Interaction to Next Paint (INP) — replaces FID for 2026 rankings
Alerts fire when the 7-day rolling baseline degrades by >20%
Other ways Next.js sites break
Uptime, Core Web Vitals, and build-output monitoring for Next.js sites.
Common failure modes
ISR revalidation stuck on stale content
Edge runtime cold-start spikes after deploy
404s from missing dynamic route params
Image Optimization API throttling under traffic bursts