Rendering in Next.js: SSG, SSR, ISR, and PPR Explained / Jun 20, 2026
Next.js lets you render each route differently, and choosing well decides how fast, how fresh, and how cheap a page is. Here are the four options in plain terms.
Static generation (SSG)
The page is rendered once at build time and served as plain HTML. It is the fastest and cheapest option, and it caches beautifully. Use it for anything that does not change per user or per request: marketing pages, documentation, and blog posts.
Server rendering (SSR)
The page is rendered on the server for every request. It is always fresh and can be personalized, but it is slower to first byte and needs a running server. Use it for pages that must reflect the latest data or the current user, like a dashboard.
Incremental static regeneration (ISR)
ISR is the middle ground. The page is static, but Next rebuilds it in the background after a revalidation window you set. Readers get static speed, and the content refreshes on a schedule. Use it for content that changes occasionally, like product pages or a blog that gets edits.
Partial prerendering (PPR)
PPR serves a static shell instantly and streams the dynamic parts into it. You get static speed for the layout and fresh data for the pieces that need it, in one response. It is the direction the framework is heading for pages that are mostly static with a small dynamic section.
How to choose
- Rarely changes and same for everyone: SSG.
- Must be fresh or personalized every time: SSR.
- Changes occasionally: ISR.
- Mostly static with one dynamic piece: PPR.
The trap is defaulting everything to server rendering out of habit. Start static, reach for freshness only where a route actually needs it, and your site stays fast by default.
Frequently asked questions
- What is the difference between SSG and SSR?
- Static generation (SSG) renders a page once at build time and serves the same HTML to everyone, which is fastest. Server rendering (SSR) renders on every request, which is slower but always fresh and can be personalized.
- What is ISR in Next.js?
- Incremental Static Regeneration serves a static page but rebuilds it in the background after a set time, so you get static speed with content that updates on a schedule.
- Which rendering method is best for a blog?
- Static generation, optionally with ISR if posts change after publishing. A blog rarely needs per request server rendering, so static keeps it fast and cheap.