ISR (Incremental Static Regeneration) is a Next.js rendering strategy that pre-renders static pages at build time and revalidates them incrementally — on a schedule, on demand, or via tag invalidation — without rebuilding the entire site.
ISR sits between SSG (everything pre-built, no freshness) and SSR (every request rendered, no caching). Pages are served from cache; behind the scenes the server revalidates expired pages and serves the fresh version on the next request.
For ecommerce, ISR works well for catalog pages where data changes occasionally (hourly or daily) but each individual page request shouldn't trigger a database query. Typical usage: revalidate: 3600 on a PLP means the page is served from cache for an hour, then revalidated.
In Next.js 16, ISR has been largely subsumed by Cache Components + PPR. The new model lets developers cache at the component level rather than the page level — equivalent freshness control with finer granularity.