Générateurs de site statique (SSG) vs rendu côté serveur (SSR)
Temps de lecture : 5 minutes
Quelle solution est la meilleure pour concevoir votre site internet? Comprenez la différence pour prendre un choix éclairé pour votre futur site web!
Commençons par le commencement
Au tout début de l'internet, la technologie n'était pas là où on en est en ce moment, la seule solution pour concevoir un site internet était à l'aide d'un site dit statique. Lorsqu'un site était accédé, une requête HTTP était envoyée au serveur, qui lui retournait le HTML qui était interprété par votre navigateur. C'était simple, mais manquait beaucoup de dynamisme puisque, par exemple, pour avoir un site bilingue ça demandait de recopier chaque page en entier et de la traduire.
Arrive ensuite le rendu côté serveur
La prochaine avancée dans le domaine arrive grâce au PHP, un langage qui permet de concevoir un site web rendu côté serveur (SSR ou server-side rendering en anglais)! C'est une façon de générer le HTML du côté du serveur, tout en permettant de le modifier avant de retourner au client le HTML généré. Cela permet à des systèmes de gestion de contenu (CMS) tels Wordpress ou Drupal, de rendre plus facile la modification et dynamisation d'un site web.
L'idée est bonne, un client demande de voir une page, le CMS construit la page demandée avec les donnés et retourne une page générée au client. Cette technique a permis de faciliter la gestion de contenu, mais a tout de même un désavantage, maintenant le serveur doit générer la page à la demande, fini les pages statiques déjà générées, ce qui peut être plus long finalement pour recevoir l'information.
Les librairies Javascript entre ensuite en jeux
C'est un peu après que Javascript explose, grâce à AJAX on peut maintenant facilement faire des appels de notre page web pour générer notre page! C'est ici que les applications monopage (SPA ou Single-page application en anglais) naissent. Le serveur n'a maintenant qu'à retourner une petite partie de votre site et le reste sera généré directement dans votre navigateur. Au lieu de n'avoir qu'un seul appel vers votre serveur, ce sera maintenant plusieurs qui seront fait pour générer la page demandée, mais comme tout se fait dans la même page, les réponses du serveurs sont plus rapides.
Ce genre de site internet est une bonne approche pour un site web plus applicatif par contre, puisque comme la page est généré côté client, si votre client a un mobile moins performant, sa page sera plus longue à générer qu'un site statique. Le gros avantage d'un site comme ça est que tout peut être dynamisé, mais c'est un peu aussi ce qui nous amène au prochain problème. Comme le contenu est généré côté client, ce n'est pas tous les robots qui seront capable de scanner vos pages ce qui peut rendre votre placement dans les moteurs de recherche moins performant. Ça reste néanmoins une bonne option pour un site applicatif!
Un retour aux sources?
Après toutes ces innovations, c'est maintenant au tour des générateurs de site statique (SSG ou Server-side generation en anglais) de faire leur arrivée. Mais qu'est-ce qu'un site statique qu'on appel généré? C'est un site qui sera généré comme un site statique classique, mais au lieu de l'être à la demande comme ceux rendus côté serveur, il sera compilé lorsque le contenu de votre site web sera modifié. Votre site est donc dynamique puisqu'il se base maintenant sur sur votre contenu ou votre CMS! Une fois que vous changez votre contenu, le site est généré à l'instant, ce qui permet à vos utilisateurs de recevoir un site statique rapidement! Le client n'aura pas à attendre que le serveur recompile une page à la demande comme avec un site SSR, puisqu'il sera toujours généré automatiquement.
Par exemple, mon site utilise Nuxt comme générateur de site statique, lorsque je crée un nouvel article de blogue, mon serveur détecte le nouveau contenu et demande à Nuxt de régénérer mon site. Une fois mon site généré, le serveur le retournera avec mon nouvel article de blogue et le tour est joué! La génération se fait une seule fois lorsque le contenu change et après les clients ont un site rapide puisqu'ils n'ont jamais à attendre que leur page est générée, elle l'est toujours!
Quelle solution me convient le mieux?
Avec tous ces choix, c'est vrai qu'il peut être difficile de s'y retrouver! Pour plusieurs site informationnel, d'entreprise, ou autre qui ne change pas pour chaque client, la solution est vraiment un site statique généré, puisque c'est ce qui donnera la meilleur expérience client! De plus, il ne faut pas s'inquiéter, si vous avez une partie de votre site que vous voulez tout de même dynamiser pour chaque client, il est toujours possible de l'ajouter après la génération un peu comme une application monopage. C'est probablement l'option qui apportera la meilleure expérience pour vos utilisateurs!
Si par contre vous voulez un site applicatif, par exemple facebook, une application monopage est votre solution puisqu'elle permettra de se dynamiser pour chaque utilisateurs.
Pour ce qui est des sites côté serveur, c'est difficile de leurs trouvé un gros avantage versus nos deux compétiteurs. Même côté hébergement, c'est beaucoup plus cher à héberger puisque ça demande plus de ressource qu'un site statique généré, qui ne fera que transmettre les pages HTML et c'est tout. Comme les SSG sont tout de même encore nouveau comparé aux SSR, ces derniers sont encore plus présents comme solution web. Mais ce n'est qu'une question de temps avant que ceux-ci se fassent remplacer au fil du temps, puisque beaucoup de sites seraient pas mal mieux en SSG!
Vous avez besoin d'aide pour un projet?
Si tout ça vous intéresse, n'hésitez pas à me contacter, je suis disponible quelle que soit la solution qui vous convient le mieux. J'ai travaillé avec tous ces types de site internet et je pourrais donc vous conseiller selon vos besoins!