Web performance consultant for Angular
Optimize web performance on Angular applications
Angular powers complex enterprise applications but remains one of the heaviest frameworks by default. I work on bundle, change detection, SSR Universal and zone.js to deliver stable Core Web Vitals on large-scale stacks.
They trust me
Angular symptoms calling for an audit
📦 Initial bundle above 800 KB on first load
Without disciplined lazy loading, Angular initial bundle inflates linearly with project size. Bundle audit + per-route lazy loading typically divides 30 to 50%.
🐢 Costly change detection on complex forms
ChangeDetectionStrategy.Default evaluates every binding on every tick. On rich forms, INP drifts. Moving to OnPush on stable components drops change detection cost.
🌐 No SSR Universal, LCP drifting on SEO catalogs
Without SSR, Angular sends an empty shell to Google and the browser. LCP waits for complete hydration. SSR Universal or Analog solves it, provided you avoid traps (server vs client state, hydration mismatch).
🔁 Leaking RxJS Subjects and observables re-rendering
Subjects opened in loops, non-unsubscribed subscriptions, misused switchMap: each pattern multiplies change detection ticks. Diagnosis via Angular DevTools + RxJS DevTools exposes the patterns.
🖼️ No Angular Image component nor LCP optimization
NgOptimizedImage (since Angular 14) prioritizes the LCP image, sets fetchpriority, optimizes sizing. Widely used, it gains 200 to 500ms of mobile LCP.
⚙️ No AOT production build + optimized script-loader
Without AOT compile (ng build --configuration production), Angular stays interpreted and slower. Proper build configuration + assets hashing + critical CSS extraction is mandatory.
Angular optimization methodology
4 steps to transform your performance
1. Angular bundle audit
ng build --stats-json + webpack-bundle-analyzer. Identify lazy-loadable modules, heavy RxJS dependencies, unused imports.
2. Lazy loading and code splitting
Per-route lazy loading, feature module splitting, removal of useless eager imports. Typical gain: 30-50% on initial bundle.
3. OnPush change detection + signals
Progressive migration to OnPush on stable components. Signals introduction (Angular 16+) on new developments. zone.js removal on isolated targets if possible.
4. SSR Universal or Analog
SSR setup where applicable (public sites, catalog SEO). Analog as modern alternative (based on Nitro, faster to set up than Universal).
1. Angular bundle audit
ng build --stats-json + webpack-bundle-analyzer. Identify lazy-loadable modules, heavy RxJS dependencies, unused imports.
2. Lazy loading and code splitting
Per-route lazy loading, feature module splitting, removal of useless eager imports. Typical gain: 30-50% on initial bundle.
3. OnPush change detection + signals
Progressive migration to OnPush on stable components. Signals introduction (Angular 16+) on new developments. zone.js removal on isolated targets if possible.
4. SSR Universal or Analog
SSR setup where applicable (public sites, catalog SEO). Analog as modern alternative (based on Nitro, faster to set up than Universal).
Mission commitments
Frequently asked questions
Angular vs React for performance?
Should I migrate to Angular Standalone Components?
Angular SSR Universal vs Analog?
How are your Angular engagements structured?
Get your Angular 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
Angular, enterprise framework heavy by default
Angular remains the reference framework for complex enterprise frontend applications — banks, insurance, fintech, large-scale business apps. Its strict structure (modules, dependency injection, RxJS everywhere) is also its main source of weight: an Angular bundle easily exceeds 800 KB of JavaScript on first load without optimization.
The web performance optimization angle on Angular is multi-layer: lazy loading of modules per route, OnPush change detection to limit re-checks, signals to replace part of RxJS, SSR Universal or Analog for LCP, and progressive migration off zone.js (zoneless Angular in preview).
Bundle and lazy loading, first lever
Angular CLI generates an initial bundle including shell, global services, and eager routes. Without disciplined lazy loading, every module added inflates this initial bundle. An ng build --stats-json audit + webpack-bundle-analyzer identifies modules to lazy-load.
The post-AOT Angular bundle is generally more predictable than a custom React one, but its recurring contributors (RxJS, Angular Material, Forms, Common, HttpClient) weigh. Strict tree-shaking, removal of unused imports, and per-route code splitting typically divide the initial bundle 30 to 50%.
Change detection and signals
Angular's default change detection (CheckAlways) re-evaluates every binding on every tick. On complex applications (rich forms, dashboards), the cost becomes significant. Moving to OnPush on stable components divides change detection cost by 5 to 10.
Angular 16+ introduces signals — a finer reactivity system that will eventually let Angular leave zone.js (zoneless Angular). For new projects, the signals + OnPush + SSR strategy lays the foundation for a performant application. For existing projects, progressive migration is possible and profitable.
Other expertise Technologies
Astro
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 moreLaravel
Laravel optimized: Eloquent N+1, opcache + JIT, Octane, Redis cache, async queues, MySQL tuning. Dropped TTFB and green Core Web Vitals.
Learn more