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.
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.
Quel problème de performance le Partial Pre-Rendering résout-il ?
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 : quelle stratégie de rendu choisir pour Next.js ?
| 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. Pour comprendre le contexte complet de Next.js 16, lisez notre article d'introduction à Next.js 16 et React 19, et pour les dernières évolutions incluant l'Adapter API, consultez Next.js 16.2 Agent-Ready.
Besoin d'aide pour migrer vers le PPR ? Chez BOVO Digital, nous optimisons vos performances web avec les dernières technologies Next.js.
Étiquettes

William Aklamavo
Expert en développement web et automatisation, passionné par l'innovation technologique et l'entrepreneuriat digital.
