Glossary

ISR (Incremental Static Regeneration)

ISR is a Next.js rendering strategy that pre-renders pages at build time and regenerates them on a schedule or on-demand. Combines the speed of static with the freshness of dynamic.

Incremental Static Regeneration is a hybrid rendering mode introduced by Vercel in Next.js 9.5 (2020) and adopted by other frameworks since. Pages are pre-rendered at build time (like SSG / static generation), but Next.js can regenerate them on a configurable interval (every 60 seconds, every hour, etc.) or trigger regeneration on demand via an API call.

Why ISR matters for SEO: it lets you serve static HTML (fast LCP, no server cost per request, perfect Lighthouse scores) while still updating content frequently (blog posts, pricing changes, product details). Without ISR, you either pay the per-request server cost of SSR or accept stale content from pure SSG.

Use cases that fit ISR: e-commerce product pages that update every few hours, blog index pages where new posts appear daily, dashboards where the underlying data refreshes every 5 minutes, comparison pages that pull from a database. Use cases that don't fit ISR: per-user personalized content (use SSR or client-side), real-time data (use SSR or streaming).

ISR in practice: in Next.js App Router, set `export const revalidate = 60` on a page to regenerate every 60 seconds. Or call `revalidatePath('/path')` from a server action to trigger regeneration on demand (e.g., 'a new blog post was published, regenerate the index'). The first request after revalidation gets the stale version while the new version is built in the background, then the fresh version is served to subsequent requests.

Tradeoffs: ISR pages can serve stale content for up to the revalidation window. For an e-commerce site that needs price updates within 1 minute, set `revalidate = 60`. For a marketing site where copy changes once a quarter, `revalidate = 86400` (24 hours) or pure SSG with manual rebuild is fine. Match the revalidation cadence to the freshness need.

Example

A marketing site has 50 /vs/[competitor] comparison pages that include current pricing for each competitor. The site uses ISR with `revalidate = 86400` — pages are pre-rendered at build, regenerated daily. When a competitor changes their pricing, the page updates within 24 hours without a deploy. Lighthouse Performance stays at 95+; server cost is near-zero.

Related terms

See how Website Killer uses isr (incremental static regeneration) in practice.

Free forever plan. Custom domains, hosting, and AI generation included.