Dev.to
7/5/2026

The original title is: "Next.js App Router Caching: What Actually Gets Cached (and What Doesn't)"
Original: Next.js App Router Caching: What Actually Gets Cached (and What Doesn't)
Short summary
Next.js App Router has four separate caching layers (Request Memoization, Data Cache, Full Route Cache, Router Cache), each with different lifetimes and invalidation APIs. Understanding all four is key to debugging cache-related bugs like stale data after revalidatePath(). Most confusion stems from the Router Cache (browser-side) requiring router.refresh() to clear, not just server-side revalidation.
- •Request Memoization dedupes identical fetches within a single server render; Data Cache persists across requests until revalidated
- •Full Route Cache stores rendered HTML and RSC payload; revalidatePath() invalidates it but requires matching tags for revalidateTag()
- •Router Cache lives in the browser; only router.refresh() or full page reload clears it, not server-side revalidation alone
Generated with AI, which can make mistakes.
Is this a good recommendation for you?



