I crawler IA non eseguono JavaScript

Pubblicato il 2026-08-099 min di letturaAI crawlers · JavaScript rendering · server-side rendering · GPTBot

In breve

I crawler IA come GPTBot e ClaudeBot eseguono JavaScript?

No. L'analisi congiunta di Vercel e MERJ, condotta su una rete che ha servito 569 milioni di richieste GPTBot in un solo mese, non ha trovato alcuna prova che GPTBot, ClaudeBot, PerplexityBot o il crawler di Meta eseguano JavaScript: analizzano l'HTML grezzo restituito dal server e scartano gli script. Google fa eccezione, perché Gemini eredita l'infrastruttura di rendering di Googlebot. Se il tuo catalogo parametrico assembla i dati di prodotto lato client, un assistente IA vede un guscio vuoto al posto delle tue specifiche.

La risposta breve

I crawler IA non eseguono JavaScript. Quando GPTBot, ClaudeBot o PerplexityBot richiede una pagina, effettua una semplice GET HTTP, prende i byte restituiti dal server e li analizza come testo. Non c'è alcun browser, nessuna costruzione del DOM, nessuna idratazione e nessuna attesa che si risolvano le chiamate XHR. L'analisi congiunta di Vercel e MERJ, condotta su una rete che ha servito 569 milioni di richieste GPTBot e 370 milioni di richieste ClaudeBot in un solo mese, non ha trovato alcuna prova di esecuzione di JavaScript da parte dei principali crawler IA. I crawler a volte scaricano i file di script — GPTBot ha richiesto JavaScript nell'11,50% delle richieste, ClaudeBot nel 23,84% — salvo poi non eseguirli mai.

The crawler is not served a worse page. It is served the same page, and cannot execute the step that fills it in.

Google fa eccezione, ed è il motivo per cui tanti team non si sono accorti del problema. Googlebot gestisce un servizio di rendering basato su Chromium headless e Gemini si appoggia a quella stessa infrastruttura. Così un catalogo parametrico renderizzato lato client può posizionarsi benissimo su Google Search ed essere al tempo stesso del tutto assente da ChatGPT, Claude e Perplexity. E non si tratta più dello stesso pubblico: la ricerca di Forrester del 2026 sui compratori aziendali ha rilevato che il 94% dei buyer B2B utilizza ormai l'IA durante il processo d'acquisto, mentre Adobe ha misurato una crescita del traffico proveniente dall'IA verso i siti retail del 393% su base annua nel primo trimestre 2026.

Che cosa riceve davvero GPTBot

Conviene essere precisi sui due documenti in gioco, perché la maggior parte dei team che gestiscono i cataloghi guarda soltanto il secondo.

L'HTML grezzo è il flusso di byte che il server di origine scrive nella risposta. È ciò che stampa curl, ciò che mostra view-source: e ciò che analizza un client HTTP di solo testo.

Il DOM renderizzato è ciò che esiste in memoria dopo che il browser ha analizzato quell'HTML, scaricato ed eseguito ogni script, risolto ogni chiamata fetch() e applicato ogni mutazione. È ciò che mostra il pannello Elements dei devtools del browser.

In un catalogo SPA moderno questi due documenti non hanno quasi nulla in comune. L'HTML grezzo è un guscio: un <div id="root">, un manifest di preload e un centinaio di kilobyte di riferimenti ai bundle. Ogni stringa significativa — codice articolo, package, tolleranza, intervallo di temperatura di esercizio, stato RoHS, stato del ciclo di vita, disponibilità a magazzino, scaglione di prezzo — arriva dopo, da una chiamata API che il crawler non farà mai.

Un crawler IA vede il tuo HTML grezzo e nient'altro. Se una specifica non è nei byte restituiti dal server, per il modello quella specifica non esiste.

Quali client eseguono il rendering e quali no

ClientOperatoreEsegue JavaScriptA che cosa serve
GPTBotOpenAINoRaccolta di dati di addestramento
OAI-SearchBotOpenAINoIndicizzazione per la ricerca in ChatGPT
ChatGPT-UserOpenAINoRecupero in tempo reale per la domanda di un utente
ClaudeBotAnthropicNoRaccolta di dati di addestramento
PerplexityBotPerplexityNoIndicizzazione per la ricerca
Meta-ExternalAgentMetaNoAddestramento e indicizzazione
BytespiderByteDanceNoRaccolta di dati di addestramento
GooglebotGoogle, Chromium headlessRicerca e grounding per Gemini
ApplebotApple, può eseguire il rendering in un browserSiri, Spotlight, Safari

Ogni «No» di quella tabella è un comportamento misurato nel dataset di Vercel e MERJ, non un'inferenza. Ogni «Sì» è documentato dall'operatore: Google pubblica la propria pipeline di rendering e la documentazione di Apple sul suo crawler afferma che Applebot «può eseguire il rendering dei contenuti del tuo sito all'interno di un browser». Gli agenti più recenti di Anthropic, Claude-SearchBot e Claude-User, sono successivi allo studio e non sono stati misurati separatamente; da allora nessun operatore ha annunciato una pipeline di rendering per loro.

La conseguenza pratica è asimmetrica nel modo peggiore. Il rendering è la parte costosa della scansione, e gli operatori che hanno scelto di saltarlo sono proprio quelli che oggi si frappongono tra il tuo prodotto e il tuo acquirente.

Perché i cataloghi parametrici falliscono più di ogni altra cosa

L'analisi di Adobe dell'aprile 2026 ha valutato la leggibilità automatica delle pagine retail e ha collocato le schede prodotto al 66%, il valore più basso fra tutti i tipi di pagina, sotto le homepage (75%), le pagine di categoria (74%) e persino le pagine di FAQ (80%). Quell'ordine non è casuale. Le pagine che contengono i dati più strutturati, più preziosi e più rilevanti per la decisione d'acquisto sono quelle costruite con più JavaScript.

Cinque schemi ricorrenti spiegano gran parte del danno:

  1. 01Lo stato dei filtri vive nel client. Il tuo selettore parametrico è un componente React che legge da uno store locale. Non esiste alcun URL renderizzato lato server per «0603, 100nF, X7R, 50V», quindi non c'è nulla che un crawler possa scaricare e nulla da citare.
  2. 02La tabella delle specifiche è una risposta API. Il guscio della pagina viene renderizzato, poi una richiesta a /api/product/attributes popola la tabella. Il crawler si ferma al guscio.
  3. 03Prezzo e disponibilità sono deliberatamente lato client. Ragionevole per la cache. Fatale per la visibilità verso le macchine, perché un modello che non vede la disponibilità non consiglierà quel componente.
  4. 04Tab e accordion caricano i contenuti in differita. Datasheet, application note, certificati di conformità e link CAD vengono spesso caricati al clic. Un crawler non fa mai clic.
  5. 05Lo scroll infinito sostituisce la paginazione. Dal prodotto numero 51 in poi non esiste alcun URL scansionabile.

Ad agosto 2026 Partsgraph ha analizzato 984 domini di distributori e produttori in tutto il mondo — Nord America, Europa e Asia. Il punteggio mediano di visibilità IA è stato di 50 su 100 e il 70% del campione ha ottenuto una valutazione D o F. Circa la metà non è riuscita a servire nemmeno una pagina di catalogo leggibile a un normale client non browser. La distribuzione di elettronica è risultata il segmento più debole, con una mediana di 34.

Come verifico se i crawler IA riescono a leggere il mio catalogo?

Esegui questi controlli sul tuo server di origine. Testare il sito di un concorrente falsificando lo user-agent di un crawler produce falsi negativi, perché i bot manager aziendali verificano i crawler tramite l'IP di origine e non tramite la stringa user-agent: un header contraffatto proveniente da un indirizzo non riconosciuto viene sottoposto a challenge a prescindere da ciò che dice il robots.txt.

  1. 01Scarica l'HTML grezzo. Scegli la tua singola pagina prodotto di maggior valore.
curl -sS --compressed -o page.html -w "status=%{http_code} bytes=%{size_download}" "https://example.com/products/part-number"
  1. 01Cerca il codice articolo nei byte. Non nel browser: nel file.
grep -c "MPN-12345" page.html

Se il risultato è 0, nessun crawler IA può capire che la pagina riguarda quel componente.

  1. 01Cerca tre valori parametrici su cui ti aspetteresti che un progettista applichi un filtro.
grep -oiE "operating temperature|tolerance|package|rohs|lifecycle" page.html | sort | uniq -c
  1. 01Conta i blocchi di dati strutturati.
grep -c "application/ld+json" page.html

Zero significa nessun record di prodotto leggibile dalle macchine. Uno o più significa che devi estrarlo e verificare che contenga davvero sku, mpn, gtin, brand, offers e le voci additionalProperty più importanti, e non soltanto un percorso di breadcrumb.

  1. 01Confronta con la pagina renderizzata. Apri lo stesso URL in un browser con JavaScript disattivato. Ciò che sopravvive è più o meno quello che ottiene un crawler. Lo scarto tra quel risultato e la pagina normale è la misura della tua invisibilità.
  1. 01Controlla l'intero percorso, non una sola pagina. Ripeti la prova su una pagina di categoria, una pagina di risultati di ricerca, un link a un datasheet e un download CAD. Un crawler che riesce a leggere una scheda prodotto ma non può raggiungerla da un elenco di categoria scansionabile resta comunque bloccato.

Una pagina che supera il test mostrerà il codice articolo decine di volte, le etichette parametriche presenti come testo e almeno un blocco JSON-LD. Come riferimento, una pagina prodotto ben costruita restituisce in genere 60–200 KB di HTML contenenti l'intera tabella delle specifiche; un guscio SPA difettoso ne restituisce 4–15 KB, con dentro nient'altro che riferimenti ai bundle.

Come si risolve senza riscrivere il sito?

Non serve cambiare piattaforma. Serve che i byte prodotti dal server di origine contengano i fatti. Le strade sono quattro e non si escludono a vicenda.

ApproccioImpegnoChe cosa risolveRischio principale
Rendering lato server delle route di prodottoAltoTutto, in modo definitivoCosto del cambio di piattaforma e rischio di regressioni
Prerender / dynamic renderingMedioIl contenuto dell'HTML grezzoObsolescenza della cache su prezzo e disponibilità
JSON-LD generato lato serverBassoI fatti leggibili dalle macchineIgnorato se il corpo della pagina resta vuoto
Mirror in markdown e livello overlayBassoContenuti, documenti e accesso degli agentiRichiede la manutenzione dei link canonici

Il rendering lato server delle route di prodotto e di categoria è la risposta duratura. Se sei già su un framework che lo supporta, spostare le route del catalogo su componenti server o sulla generazione statica con rivalidazione incrementale è di solito questione di settimane, non di trimestri, perché il livello dati esiste già: viene semplicemente invocato dal lato sbagliato.

Il prerendering è la soluzione tampone onesta. Renderizza ogni pagina prodotto una volta in fase di build o secondo una pianificazione, metti l'HTML in cache sull'edge e servilo a tutti. Servi lo stesso documento alle persone e alle macchine: mostrare ai crawler una pagina diversa (cloaking) è al tempo stesso un rischio sul piano delle policy e, nei fatti, controproducente, perché il modello citerà comunque la versione che ha ricevuto.

Il JSON-LD generato lato server è l'intervento a basso sforzo con l'effetto leva maggiore. Mettilo nell'HTML che emette il server, non in un tag manager.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "sku": "MPN-12345",
  "mpn": "MPN-12345",
  "name": "100 nF 50 V X7R 0603 ceramic capacitor",
  "brand": { "@type": "Brand", "name": "Example Components" },
  "additionalProperty": [
    { "@type": "PropertyValue", "name": "Capacitance", "value": "100 nF" },
    { "@type": "PropertyValue", "name": "Voltage rating", "value": "50 V" },
    { "@type": "PropertyValue", "name": "Dielectric", "value": "X7R" },
    { "@type": "PropertyValue", "name": "Operating temperature", "value": "-55 to +125 C" }
  ],
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "0.042",
    "availability": "https://schema.org/InStock"
  }
}
</script>

Un mirror in markdown è il modo più economico per rendere una pagina inequivocabile. Pubblica l'equivalente in solo testo di ogni pagina prodotto a un URL stabile e collegato, con la tabella delle specifiche resa come tabella markdown. I client di solo testo la interpretano alla perfezione, generarla dalla stessa fonte dati costa quasi nulla e ti dà una superficie macchina canonica che non si disallinea quando il front end viene ridisegnato. Attenzione: llms.txt non è questo. Al 2026 nessun grande operatore IA si è impegnato a leggerlo e il team Search Relations di Google ha esplicitamente rifiutato di avallarlo. I mirror funzionano perché sono normali pagine collegate.

Un overlay mette tutto quanto sopra davanti al sito esistente, anziché dentro di esso. Un servizio sidecar o un edge worker pubblica sul tuo dominio pagine generate lato server e leggibili dagli agenti, JSON-LD, mirror in markdown e un endpoint MCP gestito, attingendo al PIM che già utilizzi. Il sito rivolto ai clienti non cambia in nulla. È l'approccio adottato da Partsgraph ed è anche quello che un numero crescente di produttori sta realizzando internamente: a novembre 2025 Microchip ha rilasciato un server MCP pubblico e gratuito per i dati dei suoi prodotti e, a giugno 2026, TrustedParts di ECIA ha lanciato un servizio di agenti IA per l'inventario.

Da dove partire, in ordine

  1. 01Esegui il test in sei passaggi descritto sopra sui tuoi dieci prodotti principali e annota i conteggi dei byte.
  2. 02Genera il JSON-LD lato server sulle pagine prodotto. È la modifica più piccola con l'effetto misurabile più grande.
  3. 03Fai in modo che ogni specifica, ogni link a un datasheet e ogni link CAD siano presenti nell'HTML iniziale, anche se la versione interattiva resta lato client.
  4. 04Assegna a ogni combinazione di filtri parametrici che conta un URL reale, scansionabile e generato lato server.
  5. 05Pubblica un mirror in markdown per ciascun prodotto e collegalo dalla pagina.
  6. 06Solo a quel punto preoccupati di posizionamenti, prompt e quota di presenza nelle risposte. Il recupero viene prima della citazione: non c'è nulla da ottimizzare finché il contenuto non esiste nel corpo della risposta.

Il meccanismo non è sottile e non è oggetto di discussione. Un modello può citare soltanto ciò che ha ricevuto, e ciò che ha ricevuto è il tuo HTML grezzo. Tutto il resto è un passaggio di rendering che non è mai avvenuto.

Vuoi sapere a che punto è il tuo catalogo? Il grader gratuito di visibilità IA di Partsgraph esegue sul tuo dominio i controlli descritti in questo articolo, all'indirizzo [/audit](/audit).

Domande frequenti

GPTBot esegue il rendering di JavaScript?

No. Vercel e MERJ hanno rilevato che GPTBot scarica file JavaScript in circa l'11,5% delle sue richieste, ma non li esegue mai. Estrae i contenuti dall'HTML che il server restituisce nella risposta iniziale. Tutto ciò che il tuo bundle inietta nel DOM dopo il caricamento è per lui invisibile.

Perché Google vede la mia single-page app e ChatGPT no?

Googlebot dispone di un servizio di rendering basato su Chromium headless: esegue il tuo JavaScript e indicizza il DOM risultante. Gemini si appoggia alla stessa infrastruttura. OpenAI, Anthropic e Perplexity utilizzano semplici client HTTP privi di motore di rendering, quindi la stessa pagina può posizionarsi bene su Google ed essere del tutto assente da una risposta generata dall'IA.

Il prerendering o il dynamic rendering risolvono il problema?

Possono farlo, e sono una soluzione tampone legittima per un catalogo che non puoi migrare rapidamente su un'altra piattaforma. I rischi sono l'obsolescenza della cache su prezzo e disponibilità e il fatto di servire ai crawler una pagina sostanzialmente diversa da quella che ricevono gli utenti. Mantieni l'HTML prerenderizzato semanticamente identico alla pagina renderizzata e imposta una finestra di rivalidazione breve sui campi volatili.

Il JSON-LD da solo è sufficiente?

Solo se si trova nell'HTML restituito dal server. Il JSON-LD iniettato da un tag manager o da uno script lato client arriva quando il crawler ha già terminato. Genera il tag script lato server e considera il JSON-LD un complemento al testo leggibile della pagina, non un suo sostituto.

Come faccio a verificarlo da solo in meno di un minuto?

Lancia curl su un URL di prodotto con la compressione attiva, salva la risposta e poi cerca con grep, nei byte grezzi, il tuo codice articolo e due o tre valori parametrici. Se non compaiono nel file ma sono visibili nel browser, significa che li costruisce JavaScript e nessun crawler IA li vedrà mai.

I crawler IA rispettano la mia sitemap?

La usano in modo discontinuo. Vercel e MERJ hanno misurato che il 34,82% delle richieste di ChatGPT finisce su errori 404, contro l'8,22% di Googlebot: un dato che suggerisce una scoperta dei link a partire da fonti obsolete più che una scansione disciplinata della sitemap. Una sitemap accurata con valori lastmod corretti aiuta, ma non compensa pagine che non restituiscono alcun contenuto.

Vale anche per i download di file CAD, BIM e datasheet?

Sì, e in misura ancora maggiore. Se un link di download è generato da JavaScript, si trova dietro una pagina interstiziale o si risolve tramite un URL firmato di breve durata, un client che non sia un browser non può seguirlo in alcun modo. Tanto vale che quel documento non esista.

Fonti

  1. 01Vercel and MERJ, The rise of the AI crawler, December 2024
  2. 02Adobe Digital Insights, AI traffic and retail machine-readability, April 2026
  3. 03eCommerceNews, Adobe machine-readability scores by page type, April 2026
  4. 04TechCrunch, AI traffic to US retailers rose 393% in Q1, April 2026
  5. 05Forrester, The State Of Business Buying, 2026 (January 2026)
  6. 06Google Search Central, Google crawlers and user agents
  7. 07OpenAI, Overview of OpenAI crawlers
  8. 08Anthropic, Does Anthropic crawl data from the web?
  9. 09Apple Support, About Applebot
  10. 10Microchip Technology, MCP Server press release, November 2025
  11. 11ECIA, TrustedParts.com launches Inventory AI Agent Service, June 2026
  12. 12Search Engine Journal, Google says llms.txt is speculative for now
Provalo sul tuo catalogo

Scopri esattamente cosa riescono a leggere oggi gli assistenti IA dei tuoi prodotti e cosa no: policy di accesso per i crawler, copertura del catalogo, accesso alle schede tecniche — con un punteggio e il confronto con 984 distributori e produttori in tutto il mondo.

Valuta il mio catalogo

Note dal campo correlate