Skip to main content
Catalog
T023
Technology

SPA Performance Paradox

HIGH(80%)
·
February 2026
·
4 sources
T023Technology
80% confidence

What people believe

Single Page Applications provide better user experience than server-rendered pages.

What actually happens
+200%First Contentful Paint
+500-4000%JavaScript bundle size
+40%Bounce rate (mobile, slow connection)
+100%Development complexity
4 sources · 3 falsifiability criteria
Context

Teams choose Single Page Applications (React, Angular, Vue) for 'better user experience.' The SPA loads a large JavaScript bundle upfront, then handles navigation client-side without full page reloads. The transitions feel smooth — after the initial load. But that initial load is the problem. Users on slow connections or older devices stare at a blank screen for 3-5 seconds while megabytes of JavaScript download, parse, and execute. The SPA optimized for the developer's MacBook Pro, not the user's $200 Android phone on 3G.

Hypothesis

What people believe

Single Page Applications provide better user experience than server-rendered pages.

Actual Chain
Initial load time increases dramatically(First Contentful Paint: 1-2s (SSR) vs 3-5s (SPA))
Large JS bundle must download, parse, and execute before anything renders
Users on slow connections see blank screen or loading spinner for seconds
Every 100ms of load time costs 1% of conversions
SEO suffers without server-side rendering(Client-rendered content invisible to many crawlers)
Google can render JS but other search engines and social crawlers can't
Teams add SSR/SSG to fix SEO — negating the SPA simplicity argument
Hydration adds complexity and can cause layout shifts
Accessibility and progressive enhancement break(No JS = no content)
Screen readers struggle with client-side routing and dynamic content
Browser back/forward behavior requires manual reimplementation
Deep linking, bookmarking, and sharing require explicit handling
Complexity shifts from server to client(State management, routing, caching all reimplemented in JS)
Client-side state management (Redux, Zustand) adds significant complexity
API layer required for every data interaction
Bundle size grows with every feature — performance degrades over time
Impact
MetricBeforeAfterDelta
First Contentful Paint0.5-1.5s (SSR)2-5s (SPA)+200%
JavaScript bundle size<50KB200KB-2MB+500-4000%
Bounce rate (mobile, slow connection)Baseline+30-50%+40%
Development complexityServer handles routing/stateClient reimplements everything+100%
Navigation

Don't If

  • Your application is primarily content-focused (blog, docs, marketing, e-commerce)
  • Your users are on mobile devices with variable connection quality
  • SEO is important for your business

If You Must

  • 1.Use SSR or SSG for initial page loads — hydrate to SPA after
  • 2.Set strict bundle size budgets and enforce them in CI
  • 3.Code-split aggressively — load only what's needed for the current route
  • 4.Test on real devices with throttled connections, not just your dev machine

Alternatives

  • Server-rendered with islandsAstro, Fresh — static HTML with interactive islands where needed. Best of both worlds.
  • Progressive enhancementHTML-first, enhance with JS — works without JS, better with it
  • HTMX / server-driven UIServer renders HTML fragments, client swaps them in — SPA-like UX without the JS bundle
Falsifiability

This analysis is wrong if:

  • SPAs consistently achieve faster First Contentful Paint than server-rendered alternatives on median devices
  • SPA bundle sizes remain stable or decrease as features are added over 18 months
  • Users on low-end devices and slow connections show equal or better engagement with SPAs vs server-rendered pages
Sources
  1. 1.
    Web Almanac: JavaScript Usage Report

    Median page ships 500KB+ of JavaScript, with SPAs significantly above average

  2. 2.
    Google: Web Vitals and Business Impact

    Every 100ms improvement in LCP increases conversion rate by up to 1%

  3. 3.
    Alex Russell: The Market for Lemons

    Analysis of how SPA frameworks impose performance costs that disproportionately affect users on low-end devices

  4. 4.
    Remix: The Web's Next Transition

    Framework creators explaining why the SPA model is being replaced by server-first approaches

Related

This is a mirror — it shows what's already true.

Want to surface the hidden consequences of your engineering decisions?

Try Lagbase