SEO

ISR (Incremental Static Regeneration)

Also called Incremental static regeneration

A middle path where pre-built pages are refreshed individually in the background instead of rebuilding the whole site.

Quick facts: ISR (Incremental Static Regeneration)

Category
SEO
Also called
Incremental static regeneration
Level
Advanced
Affects
Content freshness, build times, indexed accuracy
Where to see it
Search Console URL Inspection, your framework's build and cache logs, browser view-source
In this article4
  1. How incremental static regeneration works
  2. Why incremental static regeneration matters
  3. Where incremental static regeneration goes wrong
  4. What to do about it

How incremental static regeneration works

The site is built as static HTML, exactly as it would be with static site generation, but each page is given a freshness window. While the window is open, visitors are handed the stored file with no server work at all. Once it has expired, the next visitor still receives the stored file straight away, and the framework quietly rebuilds that page in the background. The visitor after them gets the new version.

Most implementations also allow an on-demand refresh: the CMS calls a webhook when an editor publishes, and only the affected pages are regenerated. So a site can behave like a static one — fast, cheap, served from the edge — while still updating itself page by page instead of all at once.

Why incremental static regeneration matters

It solves the problem that makes static generation painful at scale. A catalogue or a large content library does not have to be rebuilt in full every time a single item changes, which turns a long, nerve-racking deploy into a background task nobody notices. New pages can also be created on first request rather than waiting for the next build.

For search, the important part is that crawlers still receive complete HTML from a file. There is no rendering queue and no script that has to succeed, so titles, canonical tags, body copy and internal links are all present on the first request, and the page tends to be quick to arrive because it is served from cache.

Where incremental static regeneration goes wrong

Someone always gets the old copy, and it might be Googlebot. On a page that gets few visits, the stored HTML can sit unrefreshed for a long stretch, because regeneration is triggered by a request. A crawler arriving during that quiet period sees whatever was true when the page was last built, which is how outdated prices, retired offers and old titles end up in the index.

Deletions are the sharper edge. If an item is removed from the CMS but its stored page is never invalidated, the URL can keep answering with a normal page and a success status instead of the gone-or-redirected response it should give. Stacked caches make all of this harder to reason about: a CDN in front of the regeneration layer means the window you configured is not the one visitors actually experience, and two people testing the same URL can honestly report different results.

What to do about it

Set each window by how quickly that content genuinely goes stale, not by one site-wide habit. Editorial pages suit a long window with an on-demand rebuild fired from the CMS, so publishing feels instant. Pages carrying prices or stock deserve a short window, or should be left to server-side rendering instead.

Handle removals explicitly rather than hoping the window closes in time — a deleted item needs its stored page invalidated and its URL answering with a proper redirect or gone status. Keep one caching layer authoritative and document what the others do. Then verify rather than assume: the URL Inspection tool in Search Console shows the HTML Google is actually holding, and comparing that against the live page is the only reliable way to catch a page that quietly stopped refreshing.

Do and do not

Do

  • Set the freshness window by how fast content changes
  • Rebuild on demand when an editor publishes
  • Invalidate stored pages for deleted items immediately

Do not

  • Assume a rarely visited page is refreshing itself
  • Stack caching layers without knowing which one wins
  • Serve prices or stock from a long freshness window

Questions people ask about this

Will search engines see stale content with ISR?

They can. Regeneration is triggered by a request, so a page nobody visits keeps serving whatever was built last. If a crawler arrives during that quiet period, it reads the old version. On pages where accuracy matters — prices, availability, dates — use a short freshness window, or rebuild on demand when the content is edited.

How is ISR different from ordinary page caching?

The pattern is similar, but the layer is different. Caching stores a copy of what an application produced and falls back to that application when the copy expires. Incremental regeneration stores generated files and rebuilds them individually in the background, so there is no application waiting behind the cache to serve a request live.

Should I use ISR or just rebuild the whole site?

Full rebuilds are simpler and fine while they stay quick. Once a build takes long enough that people avoid deploying, or that fixing a typo becomes an event, regeneration per page is worth the added complexity. The cost is that freshness now varies by URL, so it needs checking rather than assuming.

Related terms

Found this useful?

Share it, or ask an AI to summarise it

Back to the glossary

Knowing the term is the easy part

Applying it to your own site and budget is the work. Book a call and I will tell you what actually applies to you.