Sito in JavaScript: ChatGPT vede i tuoi contenuti? Come verificarlo
ChatGPT, Claude e Perplexity non eseguono JavaScript. Scopri come verificare in 5 controlli cosa vedono del tuo sito e cosa sistemare per primo.

In breve
Probabilmente no, se testi, prezzi o recensioni vengono caricati con JavaScript: i crawler di ChatGPT, Claude e Perplexity leggono solo l'HTML che arriva dal server. Google invece esegue JavaScript, per questo un sito può comparire in AI Mode e non in ChatGPT. La soluzione è avere i contenuti essenziali già nell'HTML iniziale.
- I crawler di OpenAI, Anthropic e Perplexity scaricano l'HTML ma non eseguono JavaScript.
- Google AI Overviews e AI Mode usano l'indice di Google, che invece elabora JavaScript.
- Il codice sorgente della pagina (Ctrl+U) è il modo più rapido per vedere cosa legge un crawler AI.
- Prezzi, recensioni, FAQ e schede prodotto caricati via JavaScript sono i contenuti più a rischio.
- Non serve rifare il sito: basta servire dal server l'HTML delle pagine che contano.
Scritto dall'agente AI di Geosnap, rivisto e approvato da Rinald Sefa.
Apri una pagina del tuo sito, poi apri il codice sorgente con Ctrl+U (Cmd+Opt+U su Mac). Se il testo che leggi nella pagina non compare nel sorgente, quei contenuti vengono caricati con JavaScript dopo l'apertura. Per Google spesso non è un problema. Per ChatGPT, Claude e Perplexity sì: le prove pubblicate finora dicono che i loro crawler leggono l'HTML così come arriva dal server e non eseguono il codice. In questa guida vedi come verificarlo in pochi minuti e cosa sistemare per primo.
Perché i crawler AI non vedono i contenuti caricati con JavaScript?
I crawler AI scaricano la pagina ma non la "eseguono" come farebbe un browser: leggono l'HTML iniziale e si fermano lì. Se prezzi, descrizioni o recensioni arrivano solo dopo che uno script ha chiamato un'API, per loro quella parte della pagina è vuota.
Il dato più citato viene da un'analisi di Vercel e MERJ sul traffico reale dei crawler nella rete di Vercel. Nessuno dei principali crawler AI misurati esegue JavaScript: GPTBot, OAI-SearchBot e ChatGPT-User di OpenAI, ClaudeBot di Anthropic, PerplexityBot e altri. Alcuni scaricano i file JavaScript senza eseguirli: l'11,5% delle richieste di ChatGPT e il 23,8% di quelle di Claude riguardavano file .js, mai eseguiti.
Lo stesso studio ha misurato un'altra cosa utile: il 34,8% delle richieste di ChatGPT e il 34,2% di quelle di Claude finivano su pagine 404, contro l'8,2% di Googlebot. Molti errori riguardavano risorse statiche vecchie. Tradotto: i crawler AI sono meno precisi di Google e perdono facilmente quello che non trovano subito.
L'analisi di Vercel è di dicembre 2024, ma i test più recenti la confermano. A gennaio 2026 Resoneo ha costruito una pagina di prova con 15 modi diversi di inserire un testo, dall'HTML statico agli script con ritardo, e ha chiesto a ogni assistente di visitarla. ChatGPT e Claude hanno letto l'HTML statico e il contenuto nel tag noscript, ma nulla di quanto inserito via JavaScript.
Google sì, ChatGPT no: chi legge cosa
La differenza principale è tra Google e tutti gli altri. Google esegue JavaScript da anni: a marzo 2026 ha rimosso dalla sua documentazione una sezione sull'accessibilità dei siti JavaScript perché la considerava superata. Come nota Search Engine Journal, però, questo vale per Google: altri motori e crawler possono non elaborare le pagine allo stesso modo.
| Motore AI | Esegue JavaScript? | Da dove prende il contenuto |
|---|---|---|
| Google AI Overviews e AI Mode | Sì, tramite Google | Dall'indice di Google Search, costruito da Googlebot che esegue JavaScript |
| Gemini | Dipende | Usa l'infrastruttura di Googlebot, che esegue JavaScript; nel test di Resoneo la visita "dal vivo" su richiesta dell'utente non lo eseguiva |
| ChatGPT | No | HTML iniziale letto da OAI-SearchBot, GPTBot e ChatGPT-User |
| Claude | No | HTML iniziale letto da ClaudeBot e dagli altri agenti di Anthropic |
| Perplexity | No | HTML iniziale letto da PerplexityBot |
| Microsoft Copilot | In parte | Nel test di Resoneo eseguiva JavaScript, ma con un tempo di attesa molto breve |
Questo spiega un caso frequente: un sito che compare in Google AI Mode e quasi mai in ChatGPT. Se i contenuti chiave arrivano via JavaScript, Google li vede e ChatGPT no. Nel test di Resoneo, inoltre, nessun assistente ha letto contenuti comparsi dopo circa 2 secondi.
Come capire se l'AI vede i tuoi contenuti: 5 controlli
Bastano pochi controlli per sapere se hai un problema. Falli sulle pagine che contano di più: home, pagine dei servizi, schede prodotto, prezzi.
- Confronta sorgente e pagina. Apri il codice sorgente (non "Ispeziona", che mostra la pagina già elaborata) e cerca con Ctrl+F una frase importante: il nome di un servizio, un prezzo, una recensione. Se non c'è, un crawler AI non la vede.
- Disattiva JavaScript nel browser. Nelle impostazioni del sito in Chrome puoi bloccare JavaScript e ricaricare la pagina. Quello che resta è vicino a ciò che legge ChatGPT.
- Scarica la pagina come un crawler. Da terminale,
curl -A "GPTBot" https://example.com/servizirestituisce l'HTML grezzo. Se il risultato è quasi vuoto, con un solo contenitore e tanti script, il sito dipende da JavaScript. - Fai una prova con l'assistente. Chiedi a ChatGPT di aprire una pagina e di riportare un dettaglio preciso, per esempio il prezzo di un servizio. Attenzione: a volte l'assistente ricostruisce il contenuto dall'indirizzo invece di leggerlo, come Resoneo ha osservato con Gemini. Scegli quindi un dettaglio che non si può indovinare.
- Guarda i log del server. Se GPTBot o ClaudeBot visitano le tue pagine ma ricevono molti errori 404 su file statici, il sito sta servendo risorse che i crawler non riescono a usare.
Lo strumento Controllo URL di Google Search Console mostra l'HTML elaborato, ma solo dal punto di vista di Google: se lì la pagina è completa, non significa che lo sia anche per ChatGPT.
Quali parti del sito sono più a rischio?
I contenuti più esposti sono quelli che servono proprio a rispondere alle domande dei clienti. Ecco dove guardare per primo.
| Elemento | Problema tipico | Cosa fare |
|---|---|---|
| Prezzi e listini | Caricati da un'API dopo l'apertura della pagina | Inserirli nell'HTML iniziale |
| Recensioni | Mostrate da un widget esterno | Riportare almeno una sintesi nel testo della pagina |
| Domande frequenti | Risposte caricate solo al clic sulla domanda | Tenere il testo nell'HTML e nasconderlo solo con il CSS |
| Schede prodotto di un e-commerce | Descrizioni e caratteristiche generate lato client | Rendering lato server o pagine statiche |
| Menu e link interni | Navigazione con script invece di link veri | Usare link <a href> che i crawler possono seguire |
| Titolo e descrizione | Impostati da JavaScript | Scriverli direttamente nel codice della pagina |
Pensa a un'agenzia di viaggi di Torino con le offerte caricate da un motore di prenotazione. Chi chiede a ChatGPT "pacchetti per Lisbona a novembre da Torino" non vedrà mai quelle offerte citate: per il crawler, la pagina contiene solo il titolo e il menu.
Come rimediare senza rifare il sito
Non serve eliminare JavaScript: serve che i contenuti essenziali siano già nell'HTML che il server invia. Vercel lo riassume così: rendering lato server per testo principale, metadati e navigazione; JavaScript lato client va bene per le funzioni accessorie come contatori, chat dal vivo o feed social.
- Rendering lato server o generazione statica. I framework JavaScript più diffusi permettono di generare l'HTML sul server o in fase di pubblicazione. Spesso basta cambiare la modalità di rendering delle pagine più importanti.
- Pre-rendering. Se il sito è una single-page application difficile da modificare, un servizio di pre-rendering può servire ai crawler una versione HTML già pronta. Tienilo come soluzione ponte e verifica che il contenuto sia lo stesso che vedono le persone.
- Un'alternativa nel tag noscript. Nel test di Resoneo ChatGPT e Claude leggevano il contenuto inserito in
noscript. È un rimedio parziale, utile per testi brevi come una descrizione o un prezzo. - Niente contenuti importanti in Shadow DOM o iframe. Nel test quasi nessun assistente li leggeva.
Se il tuo sito è su WordPress, di solito parti avvantaggiato: le pagine vengono generate sul server. Controlla però i plugin e i page builder che caricano blocchi di contenuto via JavaScript, come recensioni, tabelle prezzi e cataloghi.
Il rendering è solo uno dei motivi per cui l'AI può non vedere un sito. Il secondo è il blocco dei crawler nel robots.txt o nel firewall, di cui parliamo nella guida ai crawler AI. Nell'analisi tecnica di Geosnap entrambi i controlli sono automatici: pagine bloccate, contenuti caricati solo via JavaScript ed errori 404 compaiono in un unico elenco. Dopo ogni correzione, ripeti i cinque controlli: è il modo più rapido per sapere se il problema è risolto.
Fonti
- L'ascesa dei crawler AI (Vercel (con MERJ), 2024-12-17)
- Test sui crawler della ricerca AI: gli assistenti eseguono JavaScript? (Resoneo, 2026-01)
- Ultimi aggiornamenti della documentazione di Google Search (Google Search Central, 2026-10-01)
- Google rimuove l'avvertenza sulla SEO JavaScript: è superata (Search Engine Journal, 2026-03-04)
Domande frequenti
I crawler AI eseguono JavaScript?
Quelli di OpenAI, Anthropic e Perplexity no: secondo l'analisi di Vercel e MERJ e i test di Resoneo del 2026 leggono solo l'HTML inviato dal server. Google esegue JavaScript, e Microsoft Copilot lo fa in parte con tempi di attesa molto brevi.
Se Google indicizza bene il mio sito, anche ChatGPT vede i miei contenuti?
Non necessariamente. Google elabora JavaScript prima di indicizzare, quindi vede contenuti che i crawler di ChatGPT non vedono. Controlla il codice sorgente della pagina: se il testo non c'è, ChatGPT non lo legge.
Un sito WordPress ha questo problema?
Di solito meno, perché WordPress genera le pagine sul server. Il problema può comparire con plugin o page builder che caricano recensioni, cataloghi o tabelle prezzi via JavaScript: verifica quelle sezioni una per una.
Devo rifare il sito con il rendering lato server?
Non per forza. Spesso basta attivare il rendering lato server o la generazione statica solo per le pagine principali, oppure usare un servizio di pre-rendering come soluzione temporanea. L'obiettivo è che testo, prezzi e link siano nell'HTML iniziale.