Due siti, una sola applicazione, e finalmente visibili ai motori di ricerca.

Il sito di prodotto di una società di consulenza sull'AI risultava con zero pagine indicizzate: le pagine si costruivano solo nel browser e i crawler le vedevano vuote. Lo abbiamo riportato, insieme al sito istituzionale, in un'unica applicazione che genera HTML completo sul server.

Settore
Servizi alle imprese
Ambito
Sviluppo software
Anno
2026
Come funziona
Chi visita
Crawler e agenti AIsenza JavaScript
Personebrowser
Domini
Sito istituzionalecon rassegna stampa
Sito di prodottocon form demo
Un'applicazione
Sito scelto dall'host della richiesta
HTML lato serverPagine a blocchiSEO per paginaRuoli2FAUn database
Cosa esce
Pagine completetesto nell'HTML
JSON-LD e sitemapper sito
Richiestepannello ed email
In breve

Due siti, uno istituzionale e uno di prodotto, erano pagine singole costruite in JavaScript nel browser, affiancate da un WordPress per la rassegna stampa e i form. Li abbiamo sostituiti con un'unica applicazione Laravel 13 e Filament 5 che sceglie il sito dall'indirizzo richiesto, genera ogni pagina sul server con meta e JSON-LD e ha un solo pannello per pagine, articoli, SEO e richieste. Abbiamo eliminato WordPress e consegnato un server che il cliente può gestire senza di noi.

0
pagine indicizzate del sito di prodotto prima del progetto
2
siti serviti dallo stesso codice e dallo stesso database
148
test automatici verdi prima del go-live
15.10.2026
go-live dei due siti insieme

Contesto

Il cliente è una società di consulenza sull'intelligenza artificiale con un prodotto per gli uffici legali, compliance e acquisti. I due siti erano esportati da uno strumento di design come pagine singole: belle, ma con tutto il testo costruito da JavaScript al caricamento. La rassegna stampa e i form stavano su un WordPress separato, raggiunto con proxy dal server web.

Il problema

Un crawler che non esegue JavaScript trova una pagina vuota: Search Console riportava zero pagine indicizzate per il sito di prodotto. In più le notifiche dei form del vecchio WordPress non partivano: una richiesta commerciale reale arrivata il 10 ottobre era rimasta ferma senza che nessuno la vedesse.

Cosa abbiamo fatto

  1. 01

    Un'applicazione, due siti

    Laravel 13 e Filament 5 servono entrambi i domini dallo stesso codice e dallo stesso database, scegliendo il sito dall'host della richiesta. Un host non previsto risponde 404, quelli di anteprima mandano noindex.

  2. 02

    HTML completo lato server

    Ogni pagina è generata sul server con titolo, meta, JSON-LD e sitemap per sito. Le due pagine singole sono diventate più pagine, con i redirect dai vecchi indirizzi. Gli identificativi del grafo JSON-LD sono rimasti identici, perché un grafo esterno li richiama: un carattere diverso avrebbe rotto il collegamento.

  3. 03

    Via WordPress

    I 32 articoli della rassegna e lo storico dei form sono stati importati nel nuovo database. Gli articoli che riproducevano per intero testi di terzi sono diventati un riassunto originale con il link alla fonte. I form inviano notifiche e conferme con Amazon SES, e la richiesta rimasta ferma è stata recuperata e girata al cliente.

  4. 04

    Un pannello per la redazione

    Pagine a blocchi, articoli, SEO, richieste dai form e utenti in un solo pannello, con ruoli Admin, Editor e Commerciale e autenticazione a due fattori. Il consenso ai cookie passa da CF-Consent con Consent Mode v2.

  5. 05

    Un server che si può consegnare

    Niente pannelli di gestione esterni: il server EC2 sta nell'account AWS del cliente, è costruito da uno script nel repository, si aggiorna con GitHub Actions e Deployer, ha snapshot dei dischi e un dump notturno del database. Il vecchio server è rimasto acceso 14 giorni dopo il go-live per poter tornare indietro.

Com'è andata

Il 15 ottobre 2026 i due domini sono passati sul nuovo server insieme, con il cambio di due record DNS e il vecchio server pronto per il rollback. Le sitemap sono state inviate a Search Console e le pagine principali sottoposte all'indicizzazione; la redazione lavora dal pannello, e le richieste dai form arrivano a chi deve leggerle.

Strumenti

Laravel 13Filament 5MySQL 8BladeJSON-LDAmazon SESGitHub ActionsDeployerAWS EC2

Domande frequenti

Perché un sito costruito in JavaScript non viene indicizzato?

Molti crawler, e quasi tutti gli agenti AI, leggono l'HTML che arriva dal server senza eseguire gli script. Se il testo compare solo dopo, per loro la pagina è vuota.

Conviene servire due siti dalla stessa applicazione?

Quando condividono redazione, tipo di contenuti e infrastruttura sì: un pannello, un database e un server da mantenere al posto di due. Ogni sito resta separato per dominio, SEO e grafica.

Cosa vuol dire un server consegnabile?

Che il cliente può prenderne il controllo senza dipendere da noi: sta nel suo account, si ricostruisce da uno script documentato e non richiede abbonamenti a strumenti di terzi.

Contatti

Hai un problema simile?

Scrivici cosa usate oggi e cosa non funziona. Ti rispondiamo entro un giorno lavorativo con una prima lettura tecnica.

Email
hello@cloudfactory.it
Sede
Viale di Trastevere 114, 00153 Roma