Performance Is a Pre-Ship Step
Performance audits shouldn't be a panic button the week before launch. They're a repeatable pass — same as lint and typecheck.
This checklist isn't exhaustive. It's the set of issues that showed up repeatedly across SaaS dashboards, marketing sites, and app shells I've shipped on Next.js.
Eight Passes Before Deploy
Run these in order. Fix regressions before moving on — otherwise you're optimizing on top of a leaky foundation.
- Analyze the production bundle — identify client components pulling heavy libs.
- Verify images use next/image with correct sizes and priority on LCP.
- Confirm fonts are subset and loaded without layout shift.
- Check dynamic imports for below-the-fold or route-level code splitting.
- Audit third-party scripts — defer or remove what isn't essential.
- Run Lighthouse on key routes in mobile throttling mode.
- Validate caching headers and revalidation strategy for data routes.
- Smoke-test on a real device, not just desktop Chrome.
Measure, Then Optimize
The teams that stay fast are the ones that measure in CI or on every preview deploy — not the ones that memorize optimization tricks.
Pick two metrics that matter for your product — usually LCP and INP — and guard them like you guard type errors.
“Fast feels like quality. Users can't articulate it, but they leave when it's gone.”