Incremental Static Regeneration (ISR) is a hybrid rendering method in Next.js that allows individual static pages to be updated and regenerated in the background at defined intervals, without triggering a full site rebuild. It was introduced by Vercel as a way to combine the performance benefits of static generation with the freshness requirements of dynamic content.
To understand ISR, it helps to first consider Static Site Generation (SSG), the approach where all pages are pre-built at deploy time into static HTML files. SSG produces extremely fast pages because there is no server-side computation at request time. The drawback is that content becomes stale the moment the data it was built from changes. Traditionally, the only way to reflect updated content was to trigger a new full build and redeploy the entire site, which can be slow and resource-intensive for large sites.
ISR solves this problem by introducing a revalidation window. When a developer configures a page with ISR, they specify a time interval in seconds using the revalidate property. After a visitor requests that page and the revalidation period has elapsed, Next.js serves the existing cached version to that visitor while simultaneously regenerating the page in the background with fresh data. The next visitor then receives the newly generated version. This pattern is also known as stale-while-revalidate, a caching strategy familiar from HTTP cache headers.
This approach means that a product catalog with thousands of pages does not need to be fully rebuilt every time a price or description changes. Only the pages that have been requested and whose revalidation window has expired are regenerated, making the process incremental by design.
Next.js also supports on-demand ISR, which allows specific pages to be invalidated and regenerated immediately in response to an external event, such as a content management system publishing new content. This gives developers fine-grained control over cache freshness without relying solely on time-based intervals.
From an SEO perspective, ISR is particularly valuable because it ensures that pages served to search engine crawlers are pre-rendered HTML rather than JavaScript-dependent content. Unlike client-side rendering, which requires the browser or crawler to execute JavaScript before meaningful content is visible, ISR pages are fully formed at the point of delivery. This makes them reliably indexable and generally fast to load, both of which are factors that influence search performance.
ISR sits between SSG and Server-Side Rendering (SSR) on the rendering spectrum. SSG is faster but static; SSR is always fresh but adds server latency on every request; ISR offers a middle path where pages are static by default but refreshed periodically. After a page is delivered, client-side JavaScript takes over interactivity through a process called hydration, completing the hybrid rendering cycle.