La version 0.23 du framework web Wasp, annoncée le 25 mai 2026, ajoute une fonctionnalité de prérendu statique (static prerendering) qui permet de générer du HTML réel à l’étape de construction. Cette évolution vise à résoudre un problème récurrent des applications monopages (SPA) : certains moteurs de recherche et robots d’intelligence artificielle ne voient qu’une page blanche tant que le code JavaScript n’a pas été exécuté.

Le problème de la page blanche

Les applications monopages fonctionnent en envoyant une coque HTML vide au navigateur, puis en laissant le langage JavaScript tout afficher côté client. Ce fonctionnement convient aux applications interactives riches, mais il signifie que tout programme qui lit le code HTML avant l’exécution de JavaScript ne trouve rien. Ce phénomène était auparavant perçu comme un simple problème de référencement (SEO). Cependant, selon l’équipe de développement de Wasp, l’évolution du web a changé la donne : si le robot de Google (Googlebot) exécute désormais du JavaScript, de nouveaux robots d’exploration et assistants d’IA – comme ChatGPT, Claude et Perplexity – tentent d’extraire le contenu des sites pour répondre aux questions des utilisateurs. Si un site leur est invisible, c’est autant de trafic et de visibilité perdus.

Les solutions traditionnelles – mettre en place un générateur de site statique distinct, maintenir un serveur de rendu côté serveur (SSR) complet, ou ajouter un service de prérendu – ajoutent chacune de la complexité, de l’infrastructure et une charge de maintenance supplémentaire. L’équipe de Wasp a donc cherché une approche plus intégrée.

La solution : un champ « prerender: true »

Avec Wasp 0.23, le prérendu s’active par route dans le fichier de configuration « main.wasp ». Il suffit d’ajouter l’instruction « prerender: true » à une route pour que, lors de l’exécution de la commande « wasp build », le composant de cette route soit converti en HTML statique. Lorsqu’un navigateur ou un robot accède à cette adresse, il reçoit immédiatement un contenu réel et pertinent. Ensuite, React hydrate la page côté client pour rétablir l’interactivité complète. Les routes sans cette option continuent de fonctionner exactement comme avant ; le système est donc optionnel et non intrusif.

Cas d’usage recommandés

Le prérendu est adapté aux pages dont le contenu est connu au moment de la compilation : pages d’accueil et pages marketing, pages « À propos », tarifs et FAQ, ainsi que tout contenu majoritairement statique qui ne dépend pas de l’utilisateur connecté. En revanche, il n’est pas recommandé pour les tableaux de bord utilisateur et les pages authentifiées, où le contenu varie selon le visiteur, ni pour les pages qui reposent fortement sur des API de navigateur (comme « localStorage », géolocalisation ou autres données propres au client) qui ne sont pas disponibles au moment de la construction.

Genèse et perspectives

La fonctionnalité a été développée à partir d’une demande de commentaires publique (RFC « Deep Freeze ») publiée par l’équipe, puis construite en deux étapes : d’abord la machinerie de rendu SSR interne, puis le champ utilisateur « prerender » qui relie le tout. L’infrastructure SSR mise en place ouvre la voie à d’autres stratégies de rendu à l’avenir, le rendu côté serveur en réponse à une requête étant déjà inscrit sur la feuille de route.

Par ailleurs, le cœur de cette approche repose sur un plugin Vite construit à partir de l’API Vite Environments. Ce plugin, qui gère le pipeline de rendu SSR, la génération de HTML et le câblage de l’hydratation, a été conçu comme un projet autonome. L’équipe prévoit de l’extraire et de le publier en open source une fois qu’il sera stabilisé, afin que d’autres projets et frameworks puissent également l’utiliser.

Disponibilité

Les utilisateurs de Wasp 0.23 peuvent dès à présent activer le prérendu sur leurs routes. La documentation complète détaille le fonctionnement, les limites et le dépannage. L’équipe invite les retours sur son serveur Discord.