ISR (Incremental Static Regeneration)

React 🟡 Mid

Définition

Combinaison SSG + SSR : la page est générée statiquement puis régénérée en arrière-plan après un délai (revalidate). Introduit par Next.js. Depuis Next.js 16 (21 octobre 2025), revalidateTag exige un profil cacheLife en second argument ('max', 'hours'…) pour un comportement stale-while-revalidate, et Next.js 16.3 (3 août 2026) permet de servir une coquille de chargement instantanée au premier visiteur d'une URL non pré-rendue, puis de la promouvoir en page pré-rendue.

Analogie

Comme un menu du jour affiche a l'entrée : il est pre-imprime mais le serveur le remplace discrètement chaque jour.

Exemple de code

// Next.js App Router : régénération toutes les heures
export const revalidate = 3600;

export default async function Products() {
  const products = await getProducts();
  return <ProductGrid products={products} />;
}

// Invalidation à la demande (Next.js 16 : profil obligatoire)
import { revalidateTag } from 'next/cache';
revalidateTag('products', 'max');

Cas d'usage

Pages e-commerce, catalogues : contenu relativement stable mais qui doit se mettre a jour sans rebuild complet.

#rendering#performance#nextjs

Dans l'actu

  • 30/09 Next.js 16.3.8 et 15.5.27 corrigent les failles annoncées le 23/09 : une SSRF via l'Image Optimization (sévérité haute, uniquement si `images.remotePatterns` est configuré), un empoisonnement du cache des pages SSG/ISR en auto-hébergé, et deux fuites liées à `'use cache'` (entre root params, et du contenu Draft Mode). Semaine 40 (1re moitié) · 28 – 30 septembre 2026 →
  • 30/09 Next.js 16.3.8 et 15.5.27 corrigent sept failles : SSRF via l'Image Optimization (si `images.remotePatterns` est configuré), empoisonnement du cache SSG/ISR en auto-hébergé, deux fuites liées à `'use cache'`, et un endpoint MCP de `next dev` lisible par n'importe quel site visité. Bilan septembre 2026 →

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre