PPR (Pré-rendu Partiel) est une stratégie de rendu Next.js qui combine des coquilles HTML pré-rendues statiques avec des îlots dynamiques en streaming, offrant un premier rendu rapide et une fraîcheur par utilisateur.
Introduit dans Next.js comme experimental.ppr = "incremental" dans Next.js 14 et progressivement stabilisé à travers Next.js 15 et 16, PPR fonctionne en pré-rendant les parties d'une page qui sont statiques (titre, canonique, hreflang, JSON-LD, héros) et en identifiant les frontières dynamiques (badge de panier, récemment consulté, recommandations personnalisées) enveloppées dans <Suspense>. La coquille statique est diffusée instantanément depuis le cache de bord; les îlots dynamiques sont diffusés après, souvent en quelques dizaines de millisecondes.
Pour le commerce électronique, PPR est particulièrement précieux car le contenu critique pour le SEO (titre, canonique, données structurées) se trouve dans la coquille statique et arrive avant tout appel à la base de données. Les îlots dynamiques servent l'expérience par utilisateur sans bloquer la surface SEO.
PPR s'associe naturellement avec les Composants de Cache (cacheComponents: true) — les composants optent pour la mise en cache au niveau du composant, et PPR compose les parties statiques et dynamiques en un flux cohérent.