Performance et vitesse5 min de lecture

SSR, SSG ou ISR : choisir selon la fraîcheur, le cache et les besoins des utilisateurs

Comparez les stratégies de rendu selon la fraîcheur du contenu, la personnalisation et le comportement en cas de panne, puis mesurez votre propre charge de travail.

Trois chemins de rendu : à la requête, à la compilation et par revalidation

La réponse courte

Le SSG convient au contenu qui peut être généré à l'avance ; le SSR effectue le rendu à chaque requête ; l'ISR peut réutiliser une page générée tout en la rafraîchissant. Choisissez route par route selon l'ancienneté acceptable, les permissions et le support d'exploitation, puis mesurez l'expérience complète.

Il n’existe pas d’architecture universellement la plus rapide

Une réponse en cache proche du visiteur peut être rapide quelle que soit la façon dont le HTML a été généré à l’origine. Une page rendue côté serveur avec des requêtes efficaces peut surpasser une page statique qui embarque trop de JavaScript. Le TTFB, la fraîcheur du contenu et la réactivité sont des propriétés distinctes.

Cette comparaison est un cadre de décision, pas un banc d’essai de systèmes clients. La version du framework, l’environnement d’exécution, l’adaptateur d’hébergement, la configuration du cache, la géographie et l’accès aux données influent tous sur les résultats.

Comparez le travail effectué par chaque approche

Choix de rendu et compromis d’exploitation
Approche Quand le HTML est produit Bon usage de départ Points à vérifier
SSR Pendant une requête, selon le cache Pages authentifiées ou propres à chaque requête Travail de l’origine, délais d’expiration et limites du cache privé
SSG Avant la visite, généralement lors d’une compilation Pages éditoriales et de documentation stables Durée de compilation et délai de publication
ISR Sortie générée réutilisée puis rafraîchie Contenu public avec une ancienneté bornée Invalidation, échec de régénération et première visite sans cache

Utilisez le SSR quand la requête change la réponse

Les pages de compte et les vues soumises à des permissions exigent souvent des décisions au moment de la requête. Gardez l’authentification et l’autorisation côté serveur et empêchez la mise en cache partagée des réponses privées. Le streaming, le cache de données et une conception soignée des requêtes peuvent réduire l’attente, sans supprimer le besoin de mesurer.

Le SSR n’implique ni un coût d’infrastructure particulier ni une taille de cluster obligatoire. La charge, le travail par réponse et la stratégie de montée en charge déterminent ces besoins.

Utilisez le SSG quand la publication peut précéder les visites

Le HTML généré à l’avance peut être servi par un hébergement statique ordinaire ou un CDN. C’est un bon point de départ pour un contenu qui évolue de façon prévisible. Vérifiez la durée d’une compilation réaliste et la façon dont les rédacteurs voient les brouillons avant publication.

Tous les systèmes statiques ne régénèrent pas chaque page à chaque modification ; le comportement de la compilation incrémentale dépend de l’outil. Testez le traitement des images, la récupération du contenu et la durée du déploiement, en plus du rendu des pages.

Utilisez l’ISR quand une ancienneté bornée est acceptable

L’ISR combine une sortie générée et sa régénération. Dans le Pages Router de Next.js, un intervalle de revalidation permet à une requête ultérieure de déclencher le rafraîchissement une fois l’intervalle écoulé ; ce n’est pas un minuteur qui garantit un contenu frais à la seconde près. La sortie en cache peut rester visible pendant la régénération.

Validez le comportement des premières visites, des régénérations en échec et de l’invalidation à la demande sur votre plateforme d’hébergement réelle. Les noms d’API et leur prise en charge varient selon le routeur et la version du framework. Ne supposez pas qu’un environnement edge prend en charge les mêmes fonctions de régénération qu’un déploiement Node.js.

Les descriptions publiques de produits tolèrent souvent une certaine ancienneté, mais le prix, le stock et la décision de paiement qui font foi doivent être vérifiés dans le flux de transaction. Ne laissez jamais une ancienne page en cache devenir la seule source de vérité d’un achat.

Menez une comparaison reproductible

  1. Utilisez le même contenu, les mêmes images et un comportement d’interaction équivalent pour toutes les implémentations.
  2. Notez la version du framework, l’environnement d’exécution, la région du serveur, le CDN, la région de la base de données et la politique de cache.
  3. Testez séparément les requêtes à froid et à chaud, y compris la régénération et la panne de l’origine.
  4. Mesurez depuis plusieurs emplacements et avec des charges concurrentes réalistes ; notez le nombre d’échantillons et la distribution de la latence.
  5. Comparez le LCP, les octets transférés et les traces d’interaction, en plus du TTFB.
  6. Testez la publication, la dépublication, les changements de permissions et le retour arrière avec l’équipe qui maintiendra le site.

Questions fréquentes

Peut-on combiner plusieurs stratégies ?

Oui. Un blog, un catalogue produits et un tableau de bord privé peuvent avoir des besoins de rendu et de cache différents. Définissez ces frontières explicitement et gardez le nombre de modes d’exploitation assez réduit pour que votre équipe puisse les tester.

Quelle stratégie de rendu convient le mieux au blog d’une entreprise ?

Un HTML public généré à l’avance ou mis en cache est souvent un bon point de départ lorsque le contenu évolue de façon prévisible. Le bon choix dépend aussi de l’aperçu, du délai de publication, des intégrations et de la maintenance. Mesurez la page complète, y compris les images et le travail d’interaction, et pas seulement le premier octet de la réponse.

Un intervalle de revalidation ISR garantit-il une mise à jour immédiate ?

Non. Le comportement dépend du framework et du déploiement. Dans le modèle du Pages Router de Next.js décrit plus haut, une requête ultérieure peut déclencher la régénération après l’intervalle, tandis qu’une réponse générée précédemment peut rester disponible. Testez les rafraîchissements en échec, les premières visites sans cache et l’invalidation à la demande.

Les pages de compte privées peuvent-elles utiliser le même cache partagé qu’un article public ?

Les réponses privées ou soumises à des permissions nécessitent des frontières réfléchies et ne doivent pas fuiter par un cache public partagé. Établissez l’autorisation avant de renvoyer des informations protégées. Les pages éditoriales publiques et les pages de compte authentifiées peuvent suivre des politiques de rendu et de cache différentes.

Sources et lectures complémentaires

Pour aller plus loin

Comparez WordPress headless et classique, puis utilisez la démarche de mesure des performances.

Paul Edward

Écrit par Paul Edward

Développeur web full-stack senior spécialisé en PHP, Laravel, WordPress et systèmes web assistés par l’IA.

En savoir plus sur Paul

Leave a Reply

Your email address will not be published. Required fields are marked *

Chargement d’une vérification rapide… (JavaScript requis)

Continuer la lecture

Brief du projet Étape 1 sur 2 · Le travail

Que voulez-vous faire construire ?

Un paragraphe suffit pour commencer. Si ce n’est pas un travail pour moi, je vous le dirai et je vous orienterai vers quelqu’un de mieux placé.

Le travail

Cochez tout ce qui s’applique.

Plateforme

« Je ne sais pas » est une réponse tout à fait valable.

Que cherchez-vous à construire, et que doit-il faire pour les personnes qui l’utilisent ? Écrivez-le comme vous le diriez à voix haute.

0 / 1200

Deux étapes. Moins d’une minute.