ChatGPT e Claude vedono il mio sito fatto in JavaScript?
Solo il testo che è già nell'HTML inviato dal tuo server. Uno studio di dicembre 2024 sulla rete di Vercel ha rilevato che i crawler di OpenAI, Anthropic e Perplexity scaricano i file JavaScript ma non li eseguono. Se le tue pagine vengono costruite nel browser, come molti siti React e creati con strumenti AI, questi crawler vedono una pagina quasi vuota.
Dati
- Vercel ha riferito il 17 dicembre 2024 che nessuno dei principali crawler AI, tra cui GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot e PerplexityBot, esegue JavaScript. (Vercel: The rise of the AI crawler (dic. 2024))
- Lo stesso studio ha rilevato che Gemini, che usa l'infrastruttura di Googlebot, e AppleBot eseguono invece JavaScript. (Vercel: The rise of the AI crawler (dic. 2024))
- In un mese sulla rete di Vercel, il crawler di ChatGPT ha richiesto file JavaScript nell'11,50% delle sue richieste e quello di Claude nel 23,84%, senza eseguirli. (Vercel: The rise of the AI crawler (dic. 2024))
- OpenAI afferma che i siti che si escludono da OAI-SearchBot non vengono mostrati nelle risposte della ricerca di ChatGPT, quindi la pagina che legge quel crawler è quella che ChatGPT può citare. (OpenAI: Overview of OpenAI crawlers)
- Nell'App Router di Next.js, layout e pagine sono Server Components per impostazione predefinita e vengono pre-renderizzati in HTML sul server. (Documentazione Next.js: Server e Client Components)
Come verifico se i crawler AI possono leggere il mio sito?
Scarica una pagina come fa un crawler, senza browser, e cerca il suo testo principale nel risultato. Se il prezzo, il titolo o la risposta mancano, i crawler AI non li vedono.
# Cosa riceve un crawler AI: l'HTML grezzo, senza eseguire JavaScript curl -s -A "GPTBot" https://www.example.com/pricing | grep -i "your price or headline" # Non trova nulla? Il testo esiste solo dopo che il JavaScript viene eseguito.
Quali tipi di siti hanno questo problema?
I siti il cui contenuto viene creato da JavaScript nel browser dopo il caricamento della pagina:
- App a pagina singola in React, Vue o Angular con Vite, senza rendering sul server
- Siti generati da costruttori di app AI che consegnano un'app renderizzata dal client
- Pagine che caricano il testo da un'API dopo la prima visualizzazione
- Menu e link fatti di gestori di clic invece di veri link <a href>
Qual è la correzione per ogni configurazione?
La correzione è inviare il testo finito nella prima risposta HTML.
| Configurazione | Cosa chiedere all'agente di codifica |
|---|---|
| Next.js App Router | Mantieni le pagine come Server Components; marca con "use client" solo le parti interattive |
| React o Vue con Vite | Pre-renderizza le pagine pubbliche in HTML statico in fase di build, oppure spostale su un framework con rendering sul server |
| Contenuto caricato da un'API | Recuperalo sul server o in fase di build, non in useEffect |
| Qualsiasi framework | Veri link <a href>, un sitemap.xml e il testo visibile senza clic |
Google ha lo stesso problema?
Meno: il crawler di Google esegue JavaScript, quindi Google Search e Gemini vedono il testo generato lato client, anche se più tardi dell'HTML semplice. ChatGPT, Claude e Perplexity sono quelli che leggono solo l'HTML grezzo.
Come controlla questo easyIndex?
easyIndex legge da sé ogni pagina pubblicata, come farebbe un crawler AI, senza eseguire JavaScript. Una pagina creata dal tuo agente di codifica risulta completata solo quando il testo auditato è in quell'HTML grezzo sul sito online.
Passo dopo passo
- Verifica le pagine chiave. Esegui il test curl sulla home, sulla pagina dei prezzi e sulle principali pagine di servizio, cercando il testo principale di ciascuna.
- Trova dove viene costruito il testo. Chiedi al tuo agente di codifica quali pagine generano il contenuto nel browser e perché.
- Porta il testo sul server. Fai passare l'agente a rendering sul server o a pre-renderizzazione statica per quelle pagine, mantenendo l'interattività solo dove serve.
- Correggi link e sitemap. Ogni link interno deve diventare un vero <a href> e ogni pagina pubblica deve comparire in sitemap.xml.
- Ricontrolla sul sito online. Ripeti il test curl dopo il deploy; il testo deve comparire nell'HTML grezzo.
Errori comuni
- Controllare la pagina in un browser, che esegue JavaScript, e supporre che i crawler vedano lo stesso.
- Renderizzare sul server la home ma lasciare prezzi e pagine di servizio renderizzati nel client.
- Bloccare per sbaglio i crawler AI mentre si corregge il rendering, nel robots.txt o nella CDN.
- Pagare un livello di pre-renderizzazione quando il framework già renderizza sul server.
Come lo risolve easyIndex
Il tuo agente di codifica corregge il rendering nel tuo repository, guidato via MCP; easyIndex legge ogni pagina sul sito online senza eseguire JavaScript, come fanno i crawler AI, e poi registra quali pagine i crawler AI hanno letto davvero. US$ 30 al mese per sito, con 7 giorni di prova gratuita.
Domande frequenti
Un sito Next.js è sicuro per impostazione predefinita?
Quasi: le pagine dell'App Router sono renderizzate sul server per impostazione predefinita, ma il testo recuperato dentro un Client Component dopo il caricamento resta invisibile ai crawler AI.
Un file llms.txt risolve il problema di JavaScript?
No. È un file di testo breve; le pagine hanno comunque bisogno del loro testo nell'HTML perché i crawler lo leggano e lo citino.
I crawler AI inizieranno a eseguire JavaScript?
Nessuno può dirlo. Allo studio di dicembre 2024 non lo facevano, e la scelta sicura è inviare il testo nell'HTML.
Questo riguarda anche chi arriva da ChatGPT?
No. Le persone aprono il tuo sito in un browser normale che esegue JavaScript; il problema riguarda solo ciò che il crawler legge prima di citarti.
Continua a leggere
- Come funziona easyIndex, cosa mi serve e quanto tempo ci vuole per vedere i risultati?
- Quanto costa easyIndex?
- Quali crawler AI esistono e come li consento in robots.txt?
- llms.txt funziona?
- Come faccio il GEO con Claude Code o Codex?
- Cloudflare blocca ChatGPT e altri crawler AI sul mio sito?
Verificato il .