React performance work should start with profiling. Guessing wastes time — measure re-renders, long tasks, and slow routes.
Common wins include reducing unnecessary renders, splitting bundles, and optimizing data fetching. In Next.js, server rendering and route-level splitting often produce immediate improvements.
Don’t forget UX: skeleton states, optimistic updates, and good caching can make the site feel dramatically faster even when compute stays the same.
Treat performance as a product feature. Set targets, monitor production, and keep the budget from regressing.