Partial Pre-Rendering (PPR) dans Next.js : Le Guide Complet
Le PPR combine le meilleur du statique et du dynamique. Avec la directive use cache, Next.js révolutionne le rendu web. Guide technique avec exemples.

William Aklamavo
25 février 2026
Partial Pre-Rendering (PPR) dans Next.js : Le Guide Complet
Le Partial Pre-Rendering (PPR) est la fonctionnalité la plus excitante de Next.js depuis les Server Components. Avec la nouvelle directive use cache, le framework de Vercel résout enfin le dilemme : statique ou dynamique ?
La réponse en 2026 : les deux, sur la même page.
Le Problème que PPR Résout
Imaginez une page e-commerce :
| Élément | Nature | Besoin |
|---|---|---|
| Header / Logo | Statique | Identique pour tous |
| Fiche produit | Semi-dynamique | Change rarement |
| Prix | Dynamique | Temps réel |
| Panier | Très dynamique | Unique par utilisateur |
Avant PPR : il fallait choisir SSG, SSR ou ISR. Avec PPR, chaque élément est rendu de manière optimale.
Comment Fonctionne le PPR
- Build time : pré-rendu des parties statiques
- Edge : shell statique servi depuis le CDN
- Streaming : parties dynamiques streamées en parallèle
La Directive use cache
async function ProductInfo({ id }: { id: string }) {
"use cache";
const product = await db.product.findUnique({ where: { id } });
return <div>{product.name} - {product.description}</div>;
}
async function LivePrice({ id }: { id: string }) {
const price = await fetchLivePrice(id);
return <span>{price} EUR</span>;
}
export default async function ProductPage({ params }) {
return (
<div>
<Suspense fallback={<ProductSkeleton />}>
<ProductInfo id={params.id} />
</Suspense>
<Suspense fallback={<PriceSkeleton />}>
<LivePrice id={params.id} />
</Suspense>
</div>
);
}
PPR vs ISR vs SSR
| Critère | SSR | ISR | PPR |
|---|---|---|---|
| Vitesse | Moyen | Rapide | Ultra-rapide |
| Fraîcheur | Temps réel | Délai | Temps réel (dynamique) |
| Charge serveur | Haute | Moyenne | Basse |
Migration
Étape 1 : Activer PPR
const nextConfig = {
experimental: { ppr: true },
};
Étape 2 : Classifier vos composants
- Statiques →
use cachelongue durée - Semi-dynamiques →
use cacheavec revalidation - Dynamiques → pas de cache
Étape 3 : Wrappez avec Suspense
Chaque composant cacheable dans un <Suspense> avec fallback.
Impact Core Web Vitals
| Métrique | Avant PPR | Après PPR |
|---|---|---|
| LCP | 2.5s | 0.8s |
| FID | 100ms | 40ms |
| CLS | 0.15 | 0.02 |
Conclusion
Le PPR est un changement de paradigme : le meilleur des deux mondes sans compromis.
Besoin d'aide pour migrer vers le PPR ? Chez BOVO Digital, nous optimisons vos performances web avec les dernières technologies Next.js.