Partial Prerendering (Experimental)
Partial Prerendering is an experimental feature and subject to change.
Partial Prerendering is an experimental feature that allows static portions of a route to be prerendered and served from the cache with dynamic holes streamed in, all in a single HTTP request.
Incremental support is available in Next.js 15, allowing you to opt-in to Partial Prerendering for specific routes and layouts.
To enable Partial Prerendering, set the experimental ppr
flag to incremental
:
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
ppr: 'incremental',
},
}
module.exports = nextConfig
Options
incremental
: Allows you to incrementally opt-in layouts and pages, and should be used with theexperimental_ppr
route config option.true
: Enables Partial Prerendering for all routes in your application.
We recommend using incremental
first. Once all the routes in your application have PPR enabled, it’ll be considered safe for you to set the ppr
value to true
, and enable it for the entire app and all future routes.
Good to know:
- When using
incremental
, routes that don't haveexperimental_ppr
will default tofalse
and will not be prerendered using Partial Prerendering. You need to explicitly opt-in to Partial Prerendering for each route.- Partial Prerendering does not yet apply to client-side navigations. We are actively working on this.
- Partial Prerendering is designed for the Node.js runtime only. Using the Edge Runtime is not needed when you can instantly serve the static shell.
Learn more about Partial Prerendering in the Next.js Learn course.
Was this helpful?