October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

How Next.js 16 Partial Prerendering Works—and How to Use It

Next.js 16 delivers Partial Prerendering through Cache Components: prerender what is reusable, defer request-time work behind Suspense, and verify freshness, migration, and deployment behavior.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In Next.js 16, Partial Prerendering (PPR) is enabled through cacheComponents: true. It lets a route serve a prerendered shell while request-dependent sections render behind Suspense boundaries and stream in when ready. The key engineering decision is what can be safely reused, what must remain fresh, and where a useful fallback belongs.

How Partial Prerendering works

PPR combines output prepared before a request with work that runs at request time. With Cache Components enabled, Next.js can put eligible content into a static shell: HTML and serialized navigation data generated ahead of the request. Work that cannot be completed for that shell can be deferred behind a Suspense boundary. The fallback is part of the shell; the actual content is sent when the deferred work resolves.

As an Amazon Associate I earn from qualifying purchases.

This allows independent dynamic sections to resolve in parallel rather than holding the entire page behind its slowest request. It does not make the deferred work itself faster, and it does not guarantee a faster end-to-end experience for every route.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How to enable PPR in Next.js 16

Use the current Cache Components configuration in next.config.ts:

import type { NextConfig } from 'next'

const nextConfig: NextConfig = {
  cacheComponents: true,
}

export default nextConfig

With this option enabled, Next.js 16 uses PPR as its rendering behavior. For current configuration details, see the Next.js Cache Components configuration reference.

Do not carry forward the older experimental.ppr flag as current setup advice. Next.js 16 removed the old experimental PPR configuration as the capability was integrated into Cache Components, according to the Next.js 16 announcement. Older Next.js 15 and canary guides describe version-specific setup and status, not the current configuration.

Choose what belongs in the shell, cache, or request path

Make the decision per piece of work rather than labeling an entire route “static” or “dynamic.” A route can combine prerendered content, cached results, and uncached request-time content.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Approach When it fits What the user receives initially Engineering cost
Prerender or cache Pure computation, local synchronous reads, or data that can be reused with a correct cache lifetime and invalidation policy. The resulting content can be included in the shell. Cache keys, lifetimes, and invalidation must preserve freshness and user-specific distinctions.
Defer behind Suspense Request-specific data, work that must remain uncached, or data whose freshness requirement rules out reuse. A fallback appears in the shell; the actual section arrives when its work completes. Fallback design and boundary placement determine how useful the shell remains while work is pending.

Use use cache and related cache APIs when sharing a result is correct. Cache keys include function arguments and closed-over values, so ensure the inputs distinguish results that must not be shared. The Next.js Partial Prerendering guide describes the shell, deferred work, and cache behavior.

For work that must run at request time, put the relevant component behind <Suspense fallback={...}>. Keep boundaries near the dynamic section so unrelated content can still be included in the shell; separate independent sections where doing so allows them to resolve independently.

Place boundaries around useful units of work

  1. Inventory route work. Separate work that can finish ahead of a request—such as pure computation, module imports, synchronous local reads, and deliberately cached data—from work that depends on request-time information.
  2. Set the reuse rule. For each data source, decide whether reuse is safe. Choose cache inputs and lifetimes that preserve the required distinctions and freshness; do not cache personalized results under keys that omit the relevant identity or context.
  3. Design the deferred section. Wrap uncached, request-dependent work in a Suspense boundary and provide a fallback that gives the reader useful context. Put the boundary close to the work that is waiting.
  4. Verify output and behavior. Inspect build output and page source to see what entered the prerendered shell. Exercise representative request paths, data freshness, personalization, and fallback behavior.

A shell can arrive promptly and still leave a user’s main task waiting on a deferred section. Review loading and error behavior as part of the route design, not as a cosmetic afterthought.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What changes when migrating to Cache Components

Cache Components changes more than the PPR switch. The migration guide says it requires the Node.js runtime and does not support Edge Runtime. It also replaces route-segment settings such as dynamic, revalidate, and fetchCache with the use cache and cacheLife model. See the Next.js migration guide for Cache Components before translating an existing route’s behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

In particular, do not assume that turning on the option alone preserves the intent of legacy route configuration. Map each route’s freshness, caching, and request-time requirements to the newer APIs, then verify the resulting output and behavior.

Streaming, prefetching, and CDN conditions

For a PPR-enabled page, Next.js can prefetch the static shell while dynamic data streams when ready. The prefetching guide also notes that invalidations can refresh associated prefetches; see Next.js prefetching.

A CDN can cache static prefetch responses for PPR-enabled routes when its cache key includes _rsc and it respects Next.js Cache-Control headers. That is a condition to validate, not a guarantee that an arbitrary CDN setup is safe. Check the deployed cache key, response headers, and personalization behavior against the Next.js CDN caching guide.

Measure the route, not the feature label

Next.js documentation explains how prerendered content can arrive in the shell and how deferred sections can stream independently, but it does not establish a workload-independent speedup. Runtime fetching can add latency compared with serving prerendered content. Measure representative routes and request patterns in the actual deployment, including the shell, deferred sections, cache behavior, and the time users must wait for the content they need.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.