Web performance consultant for React
Optimize web performance on React applications
React makes powerful SPAs, but its performance traps are many: bundle bloats, slow hydration, unnecessary re-renders, blocking third-party scripts. I work on Next.js and native React to deliver green Core Web Vitals.
They trust me
React symptoms calling for an audit
A poorly calibrated React application shows convergent signals: heavy bundle, slow hydration, drifting INP.
📦 JavaScript bundle above 500 KB on first load
Webpack not tree-shaken, heavy dependencies (Moment.js, full lodash, MUI), no code splitting. An audit via webpack-bundle-analyzer quantifies each contributor.
🐢 Mobile TTI above 5 seconds on SPA
Time to Interactive drifts when the bundle is heavy and hydration costly. The bundle splitting + lazy loading combo on non-critical components halves TTI.
🔄 Unnecessary re-renders killing INP
Components re-rendering on every parent update without memoization. React DevTools Profiler exposes the pattern. Disciplined React.memo, useMemo, useCallback stabilize INP.
🌐 Slow Next.js SSR hydration
Server HTML arrives fast, hydration re-blocks the main thread. Moving to React Server Components or partial hydration (Astro, Fresh) solves it.
🖼️ LCP image not prioritized, no Next Image component
On Next.js, the Image component automatically handles next-gen formats, lazy loading, fetchpriority. On React SPA, manual prioritization stays mandatory.
🧪 No performance monitoring in CI
Without Lighthouse CI, SpeedCurve, bundle size check, every PR can introduce a regression. The bundle budget + CWV budget discipline is the only guarantee of holding performance over time.
React optimization methodology
4 steps to transform your performance
1. Bundle and dependencies audit
webpack-bundle-analyzer or vite-bundle-visualizer. Identify heavy contributors, incomplete tree-shaking, useless polyfills.
2. Code splitting and lazy loading
Per-route splitting, lazy import of non-critical components (modals, secondary dashboards), dynamic imports.
3. Memoization and re-renders
React DevTools Profiler, targeted memoization (React.memo, useMemo, useCallback), refactor of overly broad Context API.
4. SSR and RSC if Next.js
Client vs server components mapping, data fetching optimization (parallel, streaming), Image component everywhere, continuous monitoring (SpeedCurve, Vercel Analytics).
1. Bundle and dependencies audit
webpack-bundle-analyzer or vite-bundle-visualizer. Identify heavy contributors, incomplete tree-shaking, useless polyfills.
2. Code splitting and lazy loading
Per-route splitting, lazy import of non-critical components (modals, secondary dashboards), dynamic imports.
3. Memoization and re-renders
React DevTools Profiler, targeted memoization (React.memo, useMemo, useCallback), refactor of overly broad Context API.
4. SSR and RSC if Next.js
Client vs server components mapping, data fetching optimization (parallel, streaming), Image component everywhere, continuous monitoring (SpeedCurve, Vercel Analytics).
Mission commitments
Frequently asked questions
React SPA or Next.js for performance?
Should I migrate to App Router (Next.js 13+)?
React vs Vue vs Svelte for performance?
How are your React engagements structured?
Get your React Core Web Vitals green
Data 2023-2026
What my clients say
Excellent work.
Paul has significantly improved the site's speed and perfectly aligned it with Google's recommendations.
Professional, thorough, and efficient, I highly recommend.
Nicolas - April Moto
Digital & E-commerce Director
We are very satisfied with Paul's work. He is quick, available, and particularly effective. Since his arrival, very good results have been observed, both in terms of performance and responsiveness. A real asset for our team.
Léo - Luxury brand
E-commerce Product Owner
I don't know if we've said it enough.
But if you want to improve your loading speed,
Make Google happy and get your Core Web Vitals in the green,
Contact Paul Delcloy.
Florian Darroman - Les Makers
Co-founder
React, dominant ecosystem and many performance angles
React is the dominant frontend library today. From pure SPA (Create React App, Vite) to SSR + RSC (Next.js, Remix), the React ecosystem covers every architecture. That diversity opens as many performance angles, and as many traps. A poorly calibrated React SPA easily shows a 1 MB+ JS bundle, an 8-second mobile TTI, and INP drifting on complex interactions.
The web performance optimization angle on React depends on architecture. On a SPA: aggressive bundle splitting, per-route code splitting, lazy loading of heavy components, disciplined memoization. On Next.js: React Server Components exploitation, App Router vs Pages Router choice, data fetching optimization, properly used Image component.
Bundle, first lever on SPA
A 1 MB JavaScript bundle is still common on React applications a few years old. Misconfigured Webpack, heavy dependencies (Moment.js, lodash without tree-shaking, full Material-UI), no per-route code splitting, useless polyfills for modern browsers. Bundle audit identifies each contributor and quantifies gains.
Moving to Vite (on non-Next SPAs), analysis via webpack-bundle-analyzer, replacing heavy dependencies (date-fns instead of Moment, dayjs even better), strict tree-shaking: each lever typically divides the bundle 20 to 40%. In real cases, bundles drop from 1.5 MB to 400 KB in a few days of intervention.
Next.js and React Server Components
On Next.js 13+ App Router, React Server Components change economics. Server-executed components add nothing to the browser JS bundle. Well-used, a Next.js site delivers under 100 KB of client JS for a rich UX. Misused, "use client" lands on components that should stay server, and the bundle inflates again.
The Next.js audit maps client vs server components, identifies client-side leaks, optimizes data fetching (parallel + streaming) and validates Image component usage for LCP. It's the most advanced frontend architecture for Core Web Vitals today.
Other expertise Technologies
Angular
Angular optimized: lazy modules, OnPush change detection, SSR Universal or Analog, signals, zone.js elimination. Stable Core Web Vitals on enterprise SPAs.
Learn moreAstro
Astro optimized: islands architecture, image optimization, view transitions, content collections. Near-static sites with green Core Web Vitals.
Learn moreDrupal
Drupal optimized: Render API and cache contexts, Dynamic Page Cache + BigPipe, Views performance, MySQL tuning. Core Web Vitals green on strategic templates.
Learn more