[▲ Vercel Community](/) · [Categories](/categories) · [Latest](/latest) · [Top](/top) · [Live](/live)

[Help](/c/help/9)

# Why Vercel ISR reads and writes are high with use-cache despite low traffic

18 views · 1 like · 1 post


Aman (@amanzadran9) · 2026-03-29 · ♥ 1

## Problem
I’m seeing very high `ISR` cache activity that doesn’t match my actual traffic.  

## Setup
- ~400+ dynamic pages
- `use-cache` enabled
- No time-based `revalidate`
- Only using on-demand `revalidateTag`
- I did NOT call `revalidateTag`
- No recent deployments
- Only a couple real visitors per day  

## Current Behavior
For just one day:
- I’m seeing ~10k `ISR` reads in a single day
- Significant `ISR` writes as well
- Writes appear to happen across many/all dynamic pages
- Pages that were not visited still seem to get regenerated
- Activity continues throughout the day without obvious triggers

## Expected Behavior
- `ISR` reads roughly proportional to actual traffic  
- Writes only when:
  1. A page is visited after invalidation
  2. A deployment occurs
  3. `revalidateTag` is called  

## Environment
- `App Router`  
- Dynamic routes (e.g. `/[slug]`)  
- Using `use-cache`  
- On-demand revalidation via `revalidateTag` (not triggered)  
- No `export const revalidate = X`  
- No background jobs or cron hitting these routes

## Questions
What can cause `ISR` reads and writes without user visits, deployments, `revalidateTag` calls, or time-based revalidation? Are there internal Vercel processes, bot traffic, prefetching, or cache validation mechanisms that could explain this behavior? How can I prevent it so `ISR` only reads on real requests, only writes on actual invalidation, and does not regenerate untouched dynamic routes? Is there a way to trace what is triggering these regenerations?