SSR vs. CSR vs. SSG : comment fonctionne le rendu web

Mis à jour : septembre 2026

SSR vs. CSR vs. SSG est une comparaison des stratégies de rendu selon où et quand le HTML est généré : au build, sur le serveur ou dans le navigateur. Ce seul axe — où et quand — détermine le SEO, la performance, la fraîcheur des données et le coût ; tout le reste en découle. Et la précision de développeur backend que les guides frontend enterrent : le rendu est une affaire de frontend ; les données sont une affaire de backend. Les trois stratégies appellent la même API ; elles ne diffèrent que par le moment de l’appel.

Points clés

QuestionRéponse
L’axeOù et quand le HTML est produit — build · serveur · navigateur
CSRLe navigateur le construit — meilleure interactivité, pires premier chargement et SEO
SSRLe serveur le construit à chaque requête — frais, solide en SEO, TTFB plus élevé
SSGPré-généré au build, servi par un CDN — le plus rapide, le moins cher, périmé jusqu’au prochain build
Le recadrageMême API, trois moments d’appel — par route, pas par app

Mêmes données, trois moments d’appel

// JavaScript — the SAME API call, consumed three ways.
// Rendering is a FRONTEND choice; the data is a BACKEND concern.
async function getPosts() {
  const q = new Parse.Query('Post').equalTo('published', true).limit(20);
  return q.find(); // one backend endpoint — the ONLY thing that changes is WHEN
}

// SSG — called at BUILD time; data baked into static HTML, served from a CDN.
// SSR — called PER REQUEST on the server; fresh HTML sent to the browser.
// CSR — called FROM THE BROWSER after load; the client builds the DOM.
// You don't change the backend to switch rendering — only when/where you fetch.

Un seul getPosts(), un seul endpoint backend. Le SSG l’appelle au moment du build et fige le résultat dans du HTML statique ; le SSR l’appelle à chaque requête, sur le serveur, et envoie un HTML frais ; le CSR l’appelle depuis le navigateur après le chargement. Vous ne modifiez jamais le backend pour changer de rendu — seulement le moment et l’endroit où vous récupérez les données. C’est ce constat qui transforme une comparaison à trois voies déroutante en une seule décision.

SSR vs. CSR vs. SSG, côte à côte

Où le HTML est généré en CSR, SSR et SSGEn rendu côté client, le serveur envoie un squelette vide et un bundle JavaScript, puis le navigateur récupère les données auprès de l'API et construit la page. En rendu côté serveur, le serveur interroge l'API à chaque requête et envoie un HTML complet qui est ensuite hydraté. En génération de site statique, le HTML est pré-généré à partir de l'API au moment du build et servi depuis un CDN. Les trois lisent la même API backend.

au moment du build

par requête, serveur

depuis le navigateur

API backend

SSG → HTML statique → CDN

SSR → HTML complet → hydratation

CSR → squelette + JS → construction du DOM

En rendu côté client, le serveur envoie un squelette vide et un bundle JavaScript, puis le navigateur récupère les données auprès de l'API et construit la page. En rendu côté serveur, le serveur interroge l'API à chaque requête et envoie un HTML complet qui est ensuite hydraté. En génération de site statique, le HTML est pré-généré à partir de l'API au moment du build et servi depuis un CDN. Les trois lisent la même API backend.
CSRSSRSSG
HTML généréDans le navigateurSur le serveur, par requêteAu moment du build
TTFBRapidePlus élevé (rend d’abord)Le plus rapide, constant
Premier affichage (FCP)LentRapideRapide
Interactivité (TTI)LenteAprès hydratationAprès hydratation
SEOLe plus risquéSolideSolide
Fraîcheur des donnéesEn directEn directCelle du dernier build
CoûtServeur légerServeur par requêteLe moins cher (statique)
Idéal pourDashboards, appsPersonnalisé, fraisContenu, documentation, marketing

Les métriques, en toute honnêteté

Les compromis qu’aucune comparaison n’énonce clairement. Le SSG remporte le time-to-first-byte haut la main et de façon constante — un CDN renvoie un fichier pré-généré. Le SSR augmente le TTFB (le serveur doit rendre avant de répondre) mais bat encore le CSR sur le premier affichage, et il livre des données fraîches. Le CSR a un TTFB rapide (le squelette est minuscule) mais un premier affichage et un time-to-interactive lents, puisque rien n’est visible tant que le bundle ne s’est pas exécuté. Et celui que tout le monde survole : le SSR et le SSG ne règlent pas le TTI. Tous deux envoient un HTML qui semble prêt, puis l’hydratation (hydration) — télécharger, analyser et exécuter le JavaScript pour attacher l’interactivité — s’exécute quand même. C’est l’écart « semble prêt mais ne répond pas au clic », et c’est pourquoi la facture du JS livré est le véritable impôt sur l’interactivité, ce qui motive les islands, l’hydratation partielle et les server components qui en livrent moins.

Le spectre en 2026 : ISR, streaming, RSC

Le trio est une simplification pédagogique ; la production est un spectre. L’ISR (incremental static regeneration) sert des pages statiques mais les régénère à intervalle régulier ou à la demande — la vitesse du SSG avec une fraîcheur périodique, au prix d’un contenu parfois périmé. Le streaming SSR envoie le HTML par morceaux au fil de sa génération, si bien que le squelette s’affiche en quelques dizaines de millisecondes pendant que le contenu lent arrive derrière. Les server components s’exécutent uniquement sur le serveur, livrent zéro JavaScript pour les parties non interactives et peuvent lire les données directement — la réponse la plus récente au coût de l’hydratation. Aucun ne modifie le contrat avec le backend ; ils offrent un contrôle plus fin sur le moment où le HTML se forme et la quantité de JS qui suit, c’est-à-dire le même axe autour duquel tourne tout cet article.

Par route, pas par app

Le changement de perspective qui dissout la plupart des débats « lequel choisir ? » : vous ne choisissez pas une stratégie pour tout le site. Une même app les combine couramment — une page d’accueil marketing générée statiquement, un catalogue produit régénéré par ISR, un dashboard personnalisé rendu côté serveur et des widgets interactifs rendus côté client — chaque route choisissant selon ses propres besoins. La question n’est jamais « SSR, CSR ou SSG pour mon app ? » mais « lequel pour cette page ? », et la réponse découle des données de la page : identiques pour tous et stables → statique ; personnalisées ou fraîches → serveur ; derrière une connexion et très interactives → client.

Quelle stratégie pour chaque page ? Matrice de décision

Type de pageRendu
Marketing, landing page, blog, documentationSSG
Catalogue produit, actualités, filsISR (statique + rafraîchissement périodique)
Personnalisée, protégée par authentification, panier, rechercheSSR (ou streaming)
Dashboards, outils internesCSR
Temps réel, très interactiveCSR + données en direct
Contenu critique pour le SEOPas de CSR — rendu serveur ou pré-génération

Cas d’usage courants

  • Sites de contenu — SSG et CDN pour des pages instantanées et lisibles par les robots (le pattern JAMstack).
  • E-commerce — pages catalogue en ISR, panier et paiement en SSR, filtres interactifs en CSR — trois stratégies, une seule boutique.
  • Dashboards SaaS — CSR derrière une connexion, là où le SEO ne compte pas mais l’interactivité, si.
  • Presse et édition — SSR ou ISR pour la fraîcheur avec le SEO.
  • PWA — un squelette rendu, plus l’interactivité côté client et le cache hors ligne.

Limites et trade-offs

  • Le risque SEO du CSR est réel mais exagéré. Les robots exécutent le JavaScript avec un budget ; le CSR convient hors du chemin indexable et reste un pari dessus — de la nuance, pas de l’absolu.
  • Le SSR coûte du calcul serveur. Rendre chaque requête a un prix en TTFB et en infrastructure qu’un fichier statique servi par un CDN n’a pas.
  • Le décalage de fraîcheur du SSG. Les données du build restent périmées jusqu’au build suivant ; les sites volumineux ou changeants ont besoin d’ISR ou de longs builds.
  • L’hydratation est l’impôt caché. Le HTML rendu côté serveur livre quand même du JS pour devenir interactif ; premier affichage rapide ne veut pas forcément dire premier clic rapide.
  • Le mélange ajoute de la charge cognitive. Le rendu par route est puissant, mais il oblige à raisonner sur plusieurs moments de récupération des données dans une même app — la flexibilité a un coût en complexité.

Le rendu sur Back4app

Back4app est une plateforme open-source de Backend as a Service (BaaS) qui combine une base de données gérée, des API REST et GraphQL générées automatiquement, l’authentification, le stockage de fichiers et des fonctions serverless avec Cloud Code. C’est la constante sous le choix de rendu : les API REST et GraphQL alimentent le SSG au moment du build, le SSR à chaque requête sur le serveur et le CSR depuis le navigateur — le même endpoint que montrent les onglets de code, consommé à trois moments différents — si bien que changer la stratégie d’une route ne touche jamais le backend. Le recadrage qui ouvre cet article devient un confort concret : puisque le rendu est une décision frontend et que les données vivent derrière une API stable, avec son authentification et ses permissions, une équipe peut pré-générer le blog, rendre le dashboard côté serveur et rendre le shell de l’app côté client sur le même backend Back4app — en choisissant page par page, sans rien changer en dessous.

Questions fréquentes

Qu'est-ce que le CSR (rendu côté client) ?

Le serveur envoie un squelette HTML quasi vide et un bundle JavaScript ; le navigateur télécharge, analyse et exécute le JS, récupère les données auprès d'une API et construit la page. L'utilisateur voit un écran blanc ou un indicateur de chargement jusqu'à l'exécution du JavaScript — la meilleure interactivité, mais le pire chargement initial et le pire SEO.

Qu'est-ce que le SSR (rendu côté serveur) ?

Le serveur génère le HTML complet à chaque requête — en exécutant du code et en récupérant les données — et envoie un document prêt à être affiché, qui est ensuite hydraté pour devenir interactif. Un SEO solide et un premier affichage rapide avec des données toujours fraîches, au prix de calcul côté serveur et d'un time-to-first-byte plus élevé.

Qu'est-ce que le SSG (génération de site statique) ?

Le HTML de chaque page est pré-généré au moment du build sous forme de fichiers statiques servis depuis un CDN, sans aucun travail serveur par requête. L'option la plus rapide, la moins chère et la plus favorable au SEO — mais les données ne sont pas plus fraîches que le dernier build, et elle convient mal aux routes inconnues ou très dynamiques.

Quelle différence entre SSR, CSR et SSG ?

L'endroit et le moment où le HTML est généré : au build (SSG), sur le serveur à chaque requête (SSR) ou dans le navigateur au runtime (CSR). Tout le reste — SEO, performance, fraîcheur des données, coût — découle de ce seul choix.

Quelle stratégie de rendu est la meilleure pour le SEO ?

Le SSG et le SSR, parce que les robots d'indexation reçoivent un HTML complet. Le CSR est le plus risqué, puisque les robots doivent exécuter le JavaScript pour voir le contenu, ce qui retarde l'indexation, voire la compromet. La nuance : les robots modernes exécutent bien le JavaScript, mais avec un budget — le CSR convient donc aux surfaces non indexables et reste un pari pour le contenu qui doit se positionner.

Qu'est-ce que l'hydratation ?

Le fait d'attacher du JavaScript — écouteurs d'événements et état — à un HTML déjà rendu par le serveur, pour qu'une page d'apparence statique devienne interactive. Le piège : le JS doit tout de même être téléchargé, analysé et exécuté, si bien qu'une page peut sembler prête tout en restant inerte au clic, ce qui retarde le time-to-interactive même quand le premier affichage a été rapide.

Quand utiliser le SSR plutôt que le SSG ?

Le SSG pour un contenu identique pour tous et qui change rarement — documentation, blogs, marketing. Le SSR pour les pages personnalisées, protégées par authentification ou qui changent assez souvent pour que les données du build soient périmées. Le conseil par défaut : privilégiez le SSG et ne recourez au SSR que là où la fraîcheur par requête est indispensable.

Une app est-elle limitée à une seule stratégie ?

Non — la pratique moderne se fait par route, voire par composant : pages marketing statiques, catalogue régénéré, dashboards rendus côté serveur et widgets rendus côté client peuvent cohabiter dans une même app. Le rendu est une décision que vous prenez page par page, pas une fois pour tout le site.

Termes associés

À comparer avec

Lectures recommandées

Prêt à construire votre backend ?

Lancez votre projet sur Back4app en quelques minutes — base de données, authentification, API et Cloud Code inclus. Sans carte bancaire.

Écrit et révisé par Back4app Engineering, Back4app Engineering · Publié le 2026-09-16