Incremental Static Regeneration (ISR) is a caching strategy that combines the speed of static content with the flexibility of server-side rendering. It follows the stale-while-revalidate pattern: visitors get a fast cached response, and Vercel regenerates the page in the background based on a time interval or an API call you trigger.
Vercel's CDN provides fully managed caching and routing when you implement ISR with frameworks like Next.js, SvelteKit, Nuxt, and Astro.
Use ISR when your content updates on a known schedule (minutes to hours) rather than in real time:
- E-commerce: Large product catalogs that need current pricing and availability without rebuilding the entire site.
- Media and publishing: Content pages that update when authors publish in a headless CMS.
- Generative AI platforms: Pages generated from discrete events like git syncs or API updates, not continuous streams.
To get started:
- Set up ISR with your framework
- Learn how ISR works from build time through revalidation
- See how ISR compares to other caching strategies
Benefits of Vercel's CDN for ISR
When you deploy ISR with your framework on Vercel, the CDN adds these optimizations:
- Zero configuration overhead: Vercel's CDN applies the right caching strategy based on your framework code. It manages Cache-Control headers automatically.
- Durable storage: The ISR cache lives alongside your Function region and persists content for 31 days, or until you revalidate it. It is scoped to a specific deployment where each deployment generates its own cache.
- Cache shielding: On a CDN miss, Vercel reads from the ISR cache before invoking your function, reducing load on your origin.
- Automatic request collapsing: When multiple requests hit the same uncached path, Vercel collapses them into one function invocation per region, protecting your backend during traffic spikes.
- Globally consistent purging: When you revalidate content, all caches across all regions update within 300ms. Vercel purges HTML and data payloads together, so users see consistent content across full page loads and client-side transitions.
- Selective pre-rendering: You can pre-render popular pages at build time and generate the rest on demand as visitors request them. This speeds up your builds.
- Instant rollbacks: Cached content from previous deployments are not purged, so you can roll back without losing previously generated content. However, each new deployment uses its own ISR cache and does not reuse the cache from a previous deployment.
Using ISR
ISR works with your framework's existing APIs. Your framework code defines how each route behaves, and Vercel handles the caching automatically.
Framework
Return revalidate from getStaticProps
- Export revalidate from a route segment
- Export config with isr property
- Add routeRules with isr option
- Configure server output with ISR
- Getting started
- How to enable ISR
- Nuxt on Vercel
- Astro on Vercel
- Gatsby on Vercel
To cache data inside your functions separately from the page response, see Runtime Cache.
ISR follows a lifecycle from build through serving and revalidation. The diagram below shows the complete flow. Each section that follows focuses on one stage.
Your framework code defines which routes are static, cacheable, or dynamic. When you deploy, Vercel analyzes this and distributes route metadata to every CDN region. Before any request arrives, each region already knows which paths are cacheable. Because Vercel knows cacheability ahead of time, it can selectively pre-render content and collapse concurrent requests to the same path.
At request time (cache miss)
A request arrives at the nearest CDN region. Vercel checks local caches in that region. If the content is cached and its tags are still valid, Vercel serves the response immediately from the CDN. Your function doesn't run.
If the CDN doesn't have a valid cached response, Vercel forwards the request to your Function region. If multiple requests hit the same uncached path at once, Vercel collapses them into a single invocation. Vercel then checks the durable ISR cache. If the cache has the content, Vercel serves it from the origin and replicates it back to the CDN. If not, Vercel invokes your function, which can read from the data cache and your backend. Vercel stores the response in the ISR cache and serves it to the user.
Two triggers can update cached content:
- Time-based revalidation runs automatically after a set interval
- On-demand revalidation runs when you call an API
Both execute in the background: visitors continue to get the cached version while Vercel generates the new content. Once the new version is ready, Vercel updates all representations of the path together. It purges HTML and data payloads atomically and propagates new content to all CDN regions through a global push pipeline.
If revalidation fails, Vercel keeps serving the existing cached content. Vercel considers a revalidation failed when it encounters:
- Network errors: Timeouts, connection failures, or other transport-layer issues
- Invalid HTTP status codes: Any status code other than 200, 301, 302, 307, 308, 404, or 410
- Server errors: Function execution failures or runtime errors
When a failure occurs, Vercel preserves the stale content and sets a 30-second Time-To-Live (TTL), so it retries revalidation shortly after.
Caching on Vercel
Vercel provides several caching strategies depending on your architecture. ISR is one of four approaches:
Next.js, SvelteKit, Nuxt, Astro, and Gatsby declare which routes are cacheable at build time. Vercel handles CDN caching, durable ISR storage, request collapsing, and revalidation automatically.
Use ISR when:
- Your framework supports it
- You need cached pages to survive deployments and rollbacks
- You need all regions to serve the same content version
- You want request collapsing to protect your backend during traffic spikes
Your ISR cache uses your project's default Function region. You can change this region in your project's Settings. See ISR cache region for details on how the region affects pricing and performance.
With ISR, Vercel knows a path is cacheable before the first request arrives. That's what enables request collapsing, durable storage, 300ms global purges, instant rollbacks, and path grouping. With Cache-Control headers alone, Vercel doesn't know a path is cacheable until it receives the response, so these features aren't available.
ISR
On-demand purging & regeneration
Durable storage
Instant rollbacks
Feature
Support for fallbacks upon MISS
Caching Headers
Automatic support for stale-if-error
Limited

Limited
Cache shielding
Caching static page responses
Slow origin protection
Automatic support for stale-while-revalidate
Globally consistent purging
Usage within popular frontend frameworks
Limited

Limited
APIs with Cache-Control headers
API routes and custom backends cache responses in the CDN by setting Cache-Control headers. Vercel caches the response per region after the first request. Use this when your framework doesn't support ISR or you need per-region response caching with manual control. See CDN cache.
Vercel transforms and optimizes images, caching them on the CDN for fast delivery. This is a separate caching layer from ISR and Cache-Control.
Vercel can cache requests proxied to external origins via rewrites, reducing load on your origin. See CDN cache.
In addition to response caching, Runtime Cache caches data inside your functions: individual fetch results, database queries, or computed values. It works alongside any of the approaches above.
- Function invocations: ISR functions run whenever they revalidate in the background or through on-demand revalidation
- ISR writes: Vercel persists fresh content to durable storage for the duration you specify, until it goes unaccessed for 31 days
- ISR reads: Vercel reads from the ISR cache when the CDN doesn't have the content
- Fast Origin Transfer: Data transferred from the Function region
You can reach our customer support team by emailing info@yourcompany.example.com, calling +1 555-555-5556, or using the live chat on our website. Our dedicated team is available 24/7 to assist with any inquiries or issues.
We’re committed to providing prompt and effective solutions to ensure your satisfaction.
We offer a 30-day return policy for all products. Items must be in their original condition, unused, and include the receipt or proof of purchase. Refunds are processed within 5-7 business days of receiving the returned item.
More resources
Last updated August 28, 2026
Cross-link map: Incremental Static Regeneration \(ISR\) (/docs/incremental-static-regeneration)From the Vercel docs graph (built 2026-09-21T05:26:59.511Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as JSON: https://vercel.com/docs/graph.jsonSemantically closest pagesGetting started with ISR — Learn how to set up Incremental Static Regeneration \(ISR\) with time-based and on-demand revalidation.ISR: A flexible way to cache dynamic contentHow to reduce ISR revalidation costs — Reduce ISR costs by analyzing Incremental Static Regeneration \(ISR\) behavior to find pages and tags that revalidate toISR Usage and Pricing — Learn about ISR costs, usage metrics, and strategies to optimize your ISR reads and writes.ISR on Vercel is now faster and more cost-efficientThis page links to (14)Vercel Primitives — Learn about the Vercel platform primitives and how they work together to create a Vercel Deployment.Vercel CDN Cache — Learn how Vercel's CDN cache stores your content across a global network to reduce latency and origin load.Runtime Cache — Vercel Runtime Cache is a specialized cache that stores responses from data fetches in Vercel functionsAstro on Vercel — Deploy Astro sites to Vercel and configure server-side rendering, ISR, Web Analytics, Image Optimization, and Routing MiNuxt on Vercel — Deploy Nuxt applications to Vercel and configure rendering, functions, middleware, routing, image optimization, and cachSvelteKit on Vercel — Deploy SvelteKit applications to Vercel and configure the adapter, rendering, streaming, ISR, analytics, and Routing MidConfiguring regions for Vercel Functions — Learn how to configure regions for Vercel Functions.Image Optimization with Vercel — Transform and optimize images to improve page load performance.ISR Usage and Pricing — Learn about ISR costs, usage metrics, and strategies to optimize your ISR reads and writes.Getting started with ISR — Learn how to set up Incremental Static Regeneration \(ISR\) with time-based and on-demand revalidation.Request Collapsing — Learn how Vercel's CDN shields your origin during traffic surges for uncached routes.CDN pricing and usage — Understand CDN pricing resources, monitor usage from your dashboard, and optimize Fast Data Transfer, Fast Origin TransfMonitoring — Query and visualize your Vercel usage, traffic, and more with Monitoring.Rewrites on Vercel — Learn how to use rewrites to send users to different URLs without modifying the visible URL.Pages that link here (80)By site: vercel-changelog (7) · vercel-kb (22) · vercel-web (10) · vercel-docs (41)From vercel-changelogDeploys are now up to 33% faster for apps with many ISR pagesFlags SDK 3.2Fluid compute now supports ISR background and on-demand revalidationIncremental Static Regeneration (ISR) is now faster and more cost-efficientRequest collapsing for ISR cache missesTag-based cache invalidation now available for all responsesWrite utilization now available in ISR ObservabilityFrom vercel-kbAstro on Vercel vs Webflow Cloud — Compare running Astro on Vercel Functions with Fluid compute against Webflow Cloud on Cloudflare Workers. Learn how AstrBuild with a Nitro starter template — Deploy a Nitro app to Vercel from a starter template. Compare the Nitro Starter, route rules, cached HTTP handler, plugiCaching audits: Five antipatterns that cost performance and money — Five caching antipatterns from hundreds of Vercel technical audits: write amplification, deploy-wiped caches, spinner shDeploy a headless Shopify storefront with Vercel — Deploy a headless Shopify storefront using the Next.js Commerce template on VercelHosting your API on Vercel — Learn how to build and scale performant APIs on Vercel.How do I reduce my build time with Next.js on Vercel? — Reduce Next.js build times on Vercel by pre-rendering fewer pages at build time, deferring generation with ISR and imageHow to migrate from Fastly to Vercel with zero downtime — Consolidate your CDN infrastructure on Vercel to reduce latency, simplify your configuration, and improve your developerHow to reduce ISR revalidation costs — Reduce ISR costs by analyzing Incremental Static Regeneration \(ISR\) behavior to find pages and tags that revalidate toMigrate a Next.js app from Webflow Cloud to Vercel — Move your Next.js app from Webflow Cloud to Vercel: remove the OpenNext Cloudflare adapter, drop the base path, map storMigrate an Astro app from Webflow Cloud to Vercel — Move your Astro app from Webflow Cloud to Vercel: swap the @astrojs/cloudflare adapter for @astrojs/vercel, drop the basNext.js on Vercel vs Cloudflare — Compare running Next.js on Vercel Functions with Fluid compute against Cloudflare Workers with the OpenNext Cloudflare aNext.js on Vercel vs Webflow Cloud — Compare running Next.js on Vercel Functions with Fluid compute against Webflow Cloud on Cloudflare Workers. Learn how NeNext.js on Vercel vs Netlify — Compare running Next.js on Vercel Functions with Fluid compute against Netlify Functions and the OpenNext adapter. LearnSet cache control headers for functions — Learn how to set headers to cache your function's responses.How to ship a Nitro app on Vercel — Deploy a Nitro app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and conTroubleshooting Build Error: "Build step did not complete within the maximum of 45 minutes" — Learn common reasons Vercel builds hit the 45-minute limit and how to reduce build times so your deployments stay fast aVercel vs Akamai — A detailed guide to Vercel vs Akamai: compute models, AI infrastructure, framework support, media streaming, CDN capabilVercel vs Netlify — A detailed guide to Vercel vs Netlify: runtimes, compute architecture, AI infrastructure, security, and when to choose eVercel vs Railway — A detailed guide to Vercel vs Railway: serverless vs always-on containers, container images via Dockerfile.vercel, frameVercel vs Render — A detailed guide to Vercel vs Render: compute models, AI infrastructure, Docker and container image support, backgroundVercel vs Webflow Cloud — Compare Vercel and Webflow Cloud for deploying Next.js and Astro apps, including runtime, framework support, storage, prWhat should I do if I receive a 503 error on Vercel? — Learn about when Serverless Functions return a 503 status code and what can be done about them.From vercel-webPreventing the stampede: Request collapsing in the Vercel CDN Composable AI for ecommerce: Hands-on with Vercel’s AI SDKNew features for SvelteKit: Optimize your application with easeHow Google handles JavaScript throughout the indexing processHow to choose the best rendering strategy for your appISR on Vercel is now faster and more cost-efficientPartial prerendering: Building towards a new default rendering model for web applicationsThe user experience of the Frontend CloudNext.js 16.3 support on VercelWhat's new in Svelte 5From vercel-docsVercel Primitives — Learn about the Vercel platform primitives and how they work together to create a Vercel Deployment.Caching — Learn how Vercel caches content across multiple layers to deliver fast responses and reduce load on your backend.Cache Status and Reasons — Understand the cache status and reason shown for each request in Vercel logs, and what causes a response to miss, bypassVercel CDN Cache — Learn how Vercel's CDN cache stores your content across a global network to reduce latency and origin load.Purging Vercel CDN Cache — Learn how to invalidate and delete cached content on Vercel's CDN, including cache keys and manual purging options.Runtime Cache — Vercel Runtime Cache is a specialized cache that stores responses from data fetches in Vercel functionsData Cache for Next.js — Vercel Data Cache is a specialized cache that stores responses from data fetches in Next.js App RouterVercel CDN overview — Vercel's CDN is a globally distributed platform that handles routing, caching, security, and compression for every deploDraft Mode — Vercel's Draft Mode enables you to view your unpublished headless CMS content on your site before publishing it.Frameworks on Vercel — Vercel supports a wide range of the most popular frameworks, optimizing how your application builds and runs no matter wNitro on Vercel — Deploy Nitro applications to Vercel with zero configuration. Learn about observability, ISR, and custom build configuratFrontends on Vercel — Vercel supports a wide range of the most popular frontend frameworks, optimizing how your application builds and runs noAstro on Vercel — Deploy Astro sites to Vercel and configure server-side rendering, ISR, Web Analytics, Image Optimization, and Routing MiFull-stack frameworks on Vercel — Vercel supports a wide range of the most popular backend frameworks, optimizing how your application builds and runs noNext.js on Vercel — Vercel is the native Next.js platform, designed to enhance the Next.js experience.Nuxt on Vercel — Deploy Nuxt applications to Vercel and configure rendering, functions, middleware, routing, image optimization, and cachSvelteKit on Vercel — Deploy SvelteKit applications to Vercel and configure the adapter, rendering, streaming, ISR, analytics, and Routing MidVite + Nitro on Vercel — Add a backend to any Vite app with Nitro and deploy to Vercel with zero configuration.Supported Frameworks on Vercel — Learn about the frameworks that can be deployed to Vercel.@vercel/functions API Reference \(Node.js\) — Learn about available APIs when working with Vercel Functions.vercel.functions API Reference \(Python\) — Learn about available APIs when working with Vercel Functions in Python.Vercel Function Logs — Use runtime logs to debug and monitor your Vercel Functions.Using the Bun Runtime with Vercel Functions — Learn how to use the Bun runtime with Vercel Functions to create fast, efficient functions.Legacy Usage & Pricing for Functions — Learn about legacy usage and pricing for Vercel Functions.How requests flow through Vercel — Learn how Vercel routes, secures, and serves requests from your users to your application.How Vercel CDN works — Learn how Vercel's CDN processes requests through routing, caching, and compute layers to deliver your content with lowISR Usage and Pricing — Learn about ISR costs, usage metrics, and strategies to optimize your ISR reads and writes.Getting started with ISR — Learn how to set up Incremental Static Regeneration \(ISR\) with time-based and on-demand revalidation.Request Collapsing — Learn how Vercel's CDN shields your origin during traffic surges for uncached routes.Limits — Look up account limits, usage summaries, rate limits, and resource constraints for every Vercel plan.Runtime Logs — Learn how to search, inspect, and share your runtime logs with the Logs tab.Observability Insights — List of available data sources that you can view and monitor with Observability on Vercel.Partial Prerendering \(PPR\) — Partial Prerendering serves a cached static shell instantly, then renders and streams the dynamic parts of a page per reCalculating usage of resources — Understand how Vercel measures and calculates your resource usage based on a typical user journey.Legacy Metrics — Learn about legacy usage metrics, including Bandwidth, Requests, Vercel Function Invocations, and Vercel Function ExecutProduction checklist for launch — Ensure your application is ready for launch with this comprehensive production checklist by the Vercel engineering team.Static Configuration with vercel.json — Learn how to use vercel.json to configure and override the default behavior of Vercel from within your project.Programmatic Configuration with vercel.ts — Define your Vercel configuration in vercel.ts with @vercel/config for type-safe routing and build settings.Projects overview — A project is where you deploy and operate frontend apps, APIs, backends, containers, and agent workloads on Vercel.Monitoring Reference — This reference covers the clauses, fields, and variables used to create a Monitoring query.Vercel Storage overview — Store files with Vercel Blob, runtime configuration with Global Config, and application data with Marketplace databases.
For example, if you trigger on-demand revalidation for example-domain.com/example-page, Vercel won't revalidate sub.example-domain.com/example-page. Subdomains and other deployments aren't affected.
Can you trust our partners?
Security
Was this helpful?