Perché migrare un SPA che funziona
Un SPA React fluido funziona — ma per un sito che vive di organico, è un
incubo SEO (HTML vuoto per Googlebot). La domanda: mantenere la fluidità servendo
al contempo dell'HTML che Google adora? Symfony + Turbo.
Il principio di Turbo
Turbo intercetta i clic e gli invii, esegue la richiesta in background e sostituisce
 il <body> senza ricaricare. Sensazione di SPA, ma ogni URL restituisce un HTML completo
 renderizzato lato server.
composer require symfony/ux-turbo
// assets/app.js
import '@hotwired/turbo';
Turbo si attiva automaticamente.
Migrazione progressiva
Non si riscrive tutto in una volta:
  1. Prima le route server — ricreare ogni vista come route Symfony + Twig.
  2. Turbo sopra — navigazione istantanea senza sforzo.
  3. Isole React dove serve — il quiz interattivo resta in React, incorporato
    in una pagina Twig.
<div class="prose">{{ content|raw }}</div>
{{ react_component('QuizApp', { matiere: matiere, serie: serie }) }}
Cosa si guadagna
  • SEO nativa: ogni pagina è HTML completo, indicizzabile immediatamente.
  • Performance percepita: navigazione quasi istantanea.
  • Semplicità: niente più gestione pesante dello stato client per contenuti statici.
Il verdetto
Per un sito di contenuti che deve posizionarsi, Symfony + Turbo batte un SPA React sui
 criteri che contano. React resta eccellente — per le applicazioni, non per i
 siti di contenuti.