Skip to content
Back to Blog
next.js 15app router performancereact server componentspartial prerenderingcore web vitalsnextjs optimizationweb performance 2025turbopacknextjs streamingcode splitting

Next.js 15 App Router: Complete Performance Guide

Apr 26, 2026
Next.js 15 App Router: Complete Performance Guide

Next.js 15 App Router: Complete Performance Guide

Your Next.js app is live. It looks great. But Lighthouse is giving you a 63, your LCP is slow, and your client is asking why competitors feel faster.

This guide shows how to fix that β€” with real-world architecture, not theory.


πŸ“Œ Table of Contents

  1. Performance Model

  2. React Server Components

  3. Partial Prerendering (PPR)

  4. Streaming with Suspense

  5. Image & Font Optimization

  6. Code Splitting

  7. Caching Strategy

  8. Core Web Vitals

  9. FAQ

  10. Conclusion


βš™οΈ 1. Performance Model

Core principle:

Move as much work to the server as possible. Ship minimal JS to the client.

Architecture Shift

Component TypeBehaviorServer ComponentRuns on server, zero JSClient Component ('use client')Hydrated in browserRoute SegmentsStatic / Dynamic / PPR

πŸ’‘ A page with 80% server components β†’ drastically smaller JS bundle.


🧠 2. React Server Components (RSC)

Correct Mental Model

Page (Server)
 β†’ Layout (Server)
   β†’ DataFetcher (Server)
     β†’ InteractiveWidget (Client)
       β†’ StaticChild (Server βœ…)

Example

export default async function DashboardPage() {
  const stats = await db.getUserStats()

  return (
    <main>
      <UserStats data={stats} />         // Server
      <InteractiveChart data={stats} /> // Client
    </main>
  )
}

βœ”οΈ Server ΰ¦°ΰ¦Ύΰ¦–ΰ§‹:

  • DB queries

  • API calls

  • Auth checks

  • Static UI

βœ”οΈ Client এ ΰ¦°ΰ¦Ύΰ¦–ΰ§‹:

  • useState / useEffect

  • Event handlers

  • Browser APIs


⚑ 3. Partial Prerendering (PPR)

Biggest performance unlock in Next.js 15

Enable

experimental: {
  ppr: true
}

Example

<>
  <ProductInfo /> {/* Instant static */}
  <Suspense fallback={<Skeleton />}>
    <RecommendedItems /> {/* Streamed */}
  </Suspense>
</>

Result:

  • ⚑ Instant first paint

  • πŸ“ˆ Better LCP

  • 🎯 Better UX


🌊 4. Streaming with Suspense

❌ Waterfall

const user = await getUser()
const orders = await getOrders()

βœ… Parallel

await Promise.all([getUser(), getOrders()])

βœ… Best UX

<Suspense fallback={<UserSkeleton />}><User /></Suspense>
<Suspense fallback={<OrderSkeleton />}><Orders /></Suspense>

πŸ’‘ UI loads piece-by-piece instead of waiting.


πŸ–ΌοΈ 5. Image & Font Optimization

next/image

<Image
  src="/hero.jpg"
  width={1200}
  height={630}
  priority
/>

βœ” Auto optimization
βœ” Lazy loading
βœ” No CLS


next/font

const inter = Inter({
  subsets: ['latin'],
  display: 'swap'
})

βœ” No external request
βœ” No layout shift


πŸ“¦ 6. Code Splitting

const Editor = dynamic(() => import('./Editor'), {
  loading: () => <Skeleton />,
  ssr: false
})

Rule:

50KB component β†’ lazy load it


🧩 7. Caching Strategy

Default (Next.js 15)

❗ No caching

Options

// ISR
fetch('/api', { next: { revalidate: 60 } })

// Tag-based
fetch('/api', { next: { tags: ['config'] } })

// No cache
fetch('/api', { cache: 'no-store' })

Decision Matrix

Data TypeStrategyReal-timeno-storeSemi-staticrevalidateStatictags


πŸ“Š 8. Core Web Vitals

MetricTargetLCP< 2.5sCLS< 0.1INP< 200ms

Quick Wins βœ…

  • priority on hero images

  • Always width/height

  • Use Server Components

  • Use Suspense

  • Enable PPR

  • Analyze bundle


❓ FAQ

App Router use করবো?

βœ” Yes β€” future-proof

RSC কি Redux replace করবে?

⚠️ Partial only

Expected gains?

  • πŸ“‰ 25–40% JS reduction

  • ⚑ 30% LCP improvement

  • πŸš€ 60% TTFB improvement


🧾 Conclusion

Performance = architecture discipline.

Golden Rules:

  • Default β†’ Server Components

  • Use PPR

  • Stream UI

  • Optimize images

  • Be explicit with caching

  • Audit bundle regularly


πŸš€ CTA

Want 95+ Lighthouse scores consistently?

πŸ‘‰ Portfolio: https://sonjoybarman.xyz
πŸ‘‰ Let’s build something blazing fast.

Related services

I build SaaS, Next.js apps, and AI-ready marketing sites. Explore a focused offering or go straight to contact.

Next.js 15 App Router: Complete Performance Guide | Sonjoy Barman