Pourquoi migrer un SPA qui marche
Un SPA React fluide, ça marche — mais pour un site qui vit de l'organique, c'est un
cauchemar SEO (HTML vide pour Googlebot). La question : garder la fluidité tout en
servant du HTML que Google adore ? Symfony + Turbo.
cauchemar SEO (HTML vide pour Googlebot). La question : garder la fluidité tout en
servant du HTML que Google adore ? Symfony + Turbo.
Le principe de Turbo
Turbo intercepte les clics et soumissions, fait la requête en arrière-plan, et remplace
le <body> sans recharger. Sensation de SPA, mais chaque URL renvoie un HTML complet
rendu serveur.
le <body> sans recharger. Sensation de SPA, mais chaque URL renvoie un HTML complet
rendu serveur.
composer require symfony/ux-turbo
// assets/app.js import '@hotwired/turbo';
Turbo s'active automatiquement.
Migration progressive
On ne réécrit pas tout d'un coup :
- Routes serveur d'abord — recréer chaque vue en route Symfony + Twig.
- Turbo par-dessus — navigation instantanée sans effort.
- Îlots React là où c'est utile — le quiz interactif reste en React, embarqué
dans une page Twig.
<div class="prose">{{ content|raw }}</div>
{{ react_component('QuizApp', { matiere: matiere, serie: serie }) }}
Ce qu'on gagne
- SEO natif : chaque page est du HTML complet, indexable immédiatement.
- Performance perçue : navigation quasi instantanée.
- Simplicité : plus de gestion d'état client lourde pour du contenu statique.
Le verdict
Pour un site de contenu qui doit ranker, Symfony + Turbo bat un SPA React sur les
critères qui comptent. React reste excellent — pour des applications, pas pour des
sites de contenu.
critères qui comptent. React reste excellent — pour des applications, pas pour des
sites de contenu.