La tua pagina può posizionarsi al #1 su Google e rimanere comunque invisibile a ChatGPT

Il crawler di Google esegue il tuo JavaScript, estrae l'HTML renderizzato nel suo indice e può posizionare un sito renderizzato lato client nella prima pagina dei risultati di ricerca. La stessa pagina, quando interrogata tramite ChatGPT o la ricerca AI di Bing, scompare perché i bot che alimentano questi servizi non eseguono mai il JavaScript. Il risultato è un sito con un alto posizionamento che nessun assistente AI riesce a far emergere.

Perché i crawler AI non trovano il tuo contenuto

Due dei crawler AI più utilizzati — GPTBot di OpenAI e ClaudeBot di Anthropic — non eseguono affatto il rendering del JavaScript. Uno studio di dicembre 2024 di Vercel e MERJ ha dimostrato che entrambi i bot si limitano a scaricare l'HTML grezzo e i file JavaScript collegati, per poi fermarsi. Gli script non vengono mai eseguiti, quindi i bot vedono solo un guscio vuoto.

Googlebot, al contrario, mette in coda la pagina, esegue gli script e indicizza il DOM risultante. Questa differenza fondamentale significa che un sito costruito con un framework puramente client-side (React, Vue, ecc.) può essere completamente visibile a Google, pur rimanendo una pagina bianca per la ricerca basata su AI.

Google vs. AI: Il divario di rendering

Google investe da tempo nel rendering headless. Il suo bot può elaborare complesse single-page application, idratarle ed estrarre dati strutturati che appaiono dopo il caricamento iniziale. I crawler AI, tuttavia, sono ancora in una modalità di "solo download". Possono analizzare JSON-LD iniettati tramite strumenti come react-helmet, ma solo se tale markup è presente nell'HTML grezzo.

Gli strumenti per sviluppatori possono trarre in inganno. Il pannello Elements di Chrome mostra la pagina dopo che il JavaScript è stato eseguito, dando la falsa impressione che il markup faccia parte della sorgente. Usare "view-source" (o curl senza un browser) rivela ciò che un bot riceve effettivamente. Se il contenuto o i dati strutturati mancano lì, i crawler AI non li vedranno mai.

Come si manifesta il problema

Un tipico sito React che si affida al rendering lato client si posizionerà in alto su Google per parole chiave come "migliore macchina del caffè" o "come riparare un rubinetto che perde". Eppure, un utente che chiede a ChatGPT: "Quali sono le migliori macchine del caffè?" riceverà risposte che omettono completamente quel sito. Lo stesso divario esiste per l'AI di Bing, che gestisce circa il 92% delle query degli agenti di ChatGPT. Le capacità di rendering JavaScript di Bing sono limitate, quindi un sito esclusivamente client-side può essere invisibile a entrambi i principali provider di ricerca AI.

Il problema è silenzioso. Le dashboard SEO che monitorano i posizionamenti su Google segnaleranno una posizione ottimale, mentre il traffico del sito proveniente dagli assistenti AI rimarrà pari a zero. Questa discrepanza può costare alle aziende una quota crescente di traffico di scoperta, specialmente man mano che sempre più utenti si affidano alle interfacce conversazionali per risposte rapide.

Cosa stanno sbagliando gli sviluppatori

Molti team assumono che se Google può leggere la pagina, allora qualsiasi crawler può farlo. Spesso:

  • Si affidano a react-helmet o librerie simili per iniettare JSON-LD dopo il caricamento della pagina, credendo che il markup sia "lì".
  • Testano solo nella vista Elements del browser, non nel codice sorgente grezzo.
  • Saltano un semplice controllo con curl, ignorando il fatto che il titolo o le frasi chiave non compaiono mai nella risposta HTML iniziale.

Queste pratiche danno l'illusione di una buona salute SEO, lasciando però il sito cieco rispetto alla ricerca AI.

Come risolvere il problema

La soluzione è fornire il contenuto reale nella prima risposta HTTP. Esistono tre approcci collaudati:

  • Server-Side Rendering (SSR) – Il server esegue il JavaScript, renderizza l'HTML completo e lo invia al client. La pagina arriva già popolata.
  • Static Generation – Al momento della build, il framework crea file HTML statici che includono tutto il contenuto. Non è necessario alcun rendering a runtime.
  • Prerendering – Un servizio middleware renderizza la pagina una volta, memorizza il risultato in cache e serve lo snapshot statico ai crawler.

Framework come Next.js (React) e Nuxt (Vue) offrono supporto integrato per queste tecniche. Passare da un bundle puramente client-side a uno dei metodi sopra indicati garantisce che sia Googlebot che i crawler AI vedano lo stesso contenuto.

Un rapido test di verifica:

curl -s https://yourpage.com | grep "your headline text"

Se il comando non restituisce nulla, il titolo non è presente nell'HTML grezzo e i bot AI non lo vedranno.

Cosa monitorare

Lo stato attuale è un chiaro disallineamento: il motore di rendering di Google è sofisticato; i crawler AI no. Lo studio che ha scoperto questo divario ha solo pochi mesi e sia OpenAI che Anthropic hanno manifestato interesse nel migliorare le proprie pipeline di indicizzazione. Tuttavia, nessuna roadmap pubblica garantisce che l'esecuzione completa del JavaScript verrà aggiunta a breve.

Nel frattempo, il costo derivante dall'ignorare il problema è cambiato. Dieci anni fa, la penalità consisteva in un'indicizzazione di Google più lenta; oggi, consiste nell'esclusione dal canale di scoperta in più rapida crescita: la ricerca guidata dall'IA. Le aziende che dipendono dal traffico organico dovrebbero sottoporre le proprie pagine a un audit utilizzando strumenti di analisi del codice sorgente, adottare l'SSR o la generazione statica dove possibile e monitorare i report di indicizzazione specifici per l'IA non appena saranno disponibili.

Messaggio chiave: Un sito che appare perfetto nei ranking di Google può risultare invisibile a ChatGPT e Bing AI se si affida esclusivamente al client-side rendering. Fornire i contenuti nell'HTML iniziale — tramite SSR, generazione statica o prerendering — colma il divario e garantisce la visibilità sia nella ricerca tradizionale che in quella basata sull'IA.