Crawler AI e JavaScript: il test per configuratori e listini
Pressioni, codici e tempi di consegna stanno spesso solo nel configuratore. Un protocollo in cinque passi per capire cosa legge davvero un assistente.
Sul sito di un'azienda manifatturiera, la pagina più ricca di dati è spesso quella che un crawler AI legge peggio. Il configuratore di una valvola a sfera, il selettore dei ricambi di una macchina per il packaging, il listino online di un produttore di rubinetteria: lì stanno i diametri, le pressioni di esercizio, i codici articolo e i tempi di consegna che un buyer chiede davvero. E su molti siti quei valori non esistono nell'HTML finché il browser non esegue il JavaScript che li va a prendere. Questo protocollo serve a verificare, pagina per pagina, come vanno d'accordo crawler AI e JavaScript sul tuo sito, con strumenti che hai già.
Prima un punto fermo: chi gestisce i crawler ne parla poco. La pagina di OpenAI sui suoi bot descrive OAI-SearchBot, GPTBot e ChatGPT-User; l'articolo di supporto di Anthropic descrive ClaudeBot, Claude-User e Claude-SearchBot; la documentazione di Perplexity descrive PerplexityBot e Perplexity-User. Le abbiamo rilette tutte e tre il 20 ottobre 2026 e nessuna dice se quegli agenti eseguono JavaScript. L'eccezione è Google: la sua guida al JavaScript per la Ricerca, aggiornata il 4 marzo 2026, spiega che un Chromium headless renderizza la pagina ed esegue il JavaScript, e che Google indicizza l'HTML renderizzato. Vale per la Ricerca Google. Non dice da quale copia della pagina partano Gemini o AI Mode.
L'ipotesi di lavoro, quindi, è quella prudente: per ogni assistente che non sia di Google, la pagina è l'HTML che il tuo server invia, e basta. Quello che compare solo dopo l'esecuzione degli script va dimostrato leggibile, non dato per scontato.
Primo passo: scegliere un numero da cercare
Un configuratore raramente è una pagina sola. Fai un elenco corto, dieci URL al massimo: il configuratore di prodotto, la ricerca ricambi per matricola, il listino o lo strumento di preventivo, una pagina di famiglia la cui tabella si carica da un database, e la pagina con disponibilità e tempi di consegna se la pubblichi.
Accanto a ogni URL scrivi un valore che vedi a schermo e che un cliente potrebbe chiedere a un assistente: un codice articolo, una pressione massima, un attacco filettato, un prezzo. È la tua sonda. I titoli e i testi commerciali non servono, perché di solito nell'HTML ci sono comunque. Quello che ti interessa sapere è se ci sono i dati tecnici.
Secondo passo: leggere l'HTML come lo riceve un crawler AI senza JavaScript
L'HTML grezzo è il documento che il server restituisce prima che parta qualunque script. Per un crawler che non esegue JavaScript, quell'URL è tutto lì.
Per leggerlo hai tre strade. Nel browser apri il sorgente della pagina (Ctrl+U, oppure Cmd+Option+U su Mac), non l'ispettore degli strumenti per sviluppatori, che mostra la pagina dopo che gli script l'hanno modificata, e cerca la sonda. Sempre in Chrome puoi aprire il menu dei comandi degli strumenti per sviluppatori, scegliere «Disable JavaScript» e ricaricare: quello che resta a schermo è, a grandi linee, ciò che riceve un crawler che non renderizza. Da terminale:
curl -s -A "GPTBot" https://www.example.it/configuratore/ | grep -c "PN16"
Zero vuol dire che il valore nel documento non c'è. Cambiare lo user agent non trasforma curl in GPTBot: ti dice solo se il server o il CDN mandano ai bot qualcosa di diverso da ciò che mandano ai browser. Lancia il comando una volta con lo user agent di un browser e una volta con il nome di un bot, e confronta il peso delle due risposte.
Terzo passo: capire da dove arrivano i dati, e chi è venuto a prenderli
Se la sonda manca, apri il pannello Rete, filtra per Fetch/XHR e usa il configuratore come lo userebbe un cliente. Quasi sempre vedrai chiamate a un endpoint che restituisce JSON, tipo /api/prodotti/, oppure a un configuratore ospitato sul dominio del fornitore del software. I tuoi dati stanno lì.
Per ogni endpoint verifica tre cose. Se il robots.txt lo blocca: una riga Disallow: /api/, frequente e spesso sensata, significa che un crawler che rispetta il file non chiederà i dati nemmeno se renderizza la pagina. Se sta su un altro dominio, il cui robots.txt non controlli tu. Se richiede una sessione, un cookie o un login. Basta una di queste condizioni e i valori restano fuori portata, qualunque cosa faccia il crawler con il JavaScript.
Poi i log di accesso, che sono la cosa più vicina a una prova. Filtra l'ultimo mese per gli user agent dei crawler AI e guarda quali URL hanno chiesto. Un crawler che esegue gli script di solito richiede anche i dati che quegli script caricano: se GPTBot o ClaudeBot hanno visitato /configuratore/ ma mai l'endpoint JSON, per quell'agente e quella pagina è un indizio forte. Come si leggono quelle righe, e come si distingue un crawler dichiarato da uno che si spaccia per tale, lo trovi in come riconoscere un crawler AI nei log del server. Su un sito piccolo, però, un mese senza visite dimostra poco: i log confermano il secondo passo, non lo sostituiscono.
Quarto passo: la domanda a cui risponde solo il configuratore
Adesso il test diretto. Scrivi una domanda la cui risposta giusta, sul tuo sito, sta solo dentro il JavaScript: «Qual è la pressione massima di esercizio della valvola [modello] di [marchio]?», oppure «Quale guarnizione di ricambio monta la pompa [modello]?». Falla a ChatGPT, Claude, Gemini e Perplexity con la ricerca web attiva, nella lingua del mercato in cui vendi: in tedesco se il cliente è a Stoccarda, in spagnolo se è a Valencia. Per ogni risposta annota tre cose: se riporta il tuo valore, se cita un URL, di chi è quell'URL.
Le risposte cambiano da una prova all'altra e da un assistente all'altro, quindi una risposta è un'osservazione e non un verdetto. Cerca una costante: assistenti che citano la pagina statica di un distributore o di un marketplace al posto della tua, oppure che danno un numero plausibile senza fonte. Se il tuo valore torna giusto con il tuo URL accanto, quella pagina per quell'assistente è leggibile, qualunque sia il meccanismo.
Il listino riservato agli agenti è un caso a parte
Molte aziende italiane non pubblicano prezzi per una ragione precisa: il listino è uno, ma il prezzo reale passa per gli sconti in cascata concordati con agenti, rivenditori e grossisti, e cambia da cliente a cliente. Il listino sta nell'area riservata, oppure gira in Excel tra la rete vendita. È una scelta commerciale legittima e questo protocollo non ti chiede di cambiarla.
Ti chiede solo di esserne consapevole. Un prezzo dietro login non lo leggerà nessun assistente, né con né senza JavaScript, e alla domanda «quanto costa» risponderà qualcun altro: un distributore, un e-commerce, un concorrente che il prezzo lo mostra. Quello che puoi pubblicare senza toccare la politica degli sconti sono i fatti che preparano il preventivo: se vendi diretto o solo tramite rete, il lotto minimo, i tempi di consegna tipici, i paesi in cui spedisci. Sono le informazioni che un buyer estero chiede per prime.
Quinto passo: i dati nell'HTML, il configuratore resta dov'è
Il configuratore è un ottimo strumento per chi compra e un pessimo documento per chi indicizza. Toglierlo non risolve niente. Il rimedio è fare in modo che ogni dato che un cliente potrebbe chiedere esista anche come testo, in una pagina che il server consegna completa.
- Una pagina statica per famiglia o modello, con le caratteristiche in una tabella HTML: dimensioni, materiali, pressioni, norme, codici. Il configuratore la richiama e lei richiama il configuratore.
- Rendering lato server o prerendering del configuratore stesso, se la piattaforma lo consente, così la prima risposta contiene già la configurazione di base.
- Lo stesso contenuto per tutti. Mandare ai bot una pagina diversa da quella che vedono le persone è il vecchio cloaking, e ti lascia con due versioni dei dati che col tempo divergono.
La scheda tecnica in PDF è un problema parente, con una causa diversa: ne parla perché il PDF della tua scheda tecnica è invisibile alle AI.
Dopo la modifica, ripeti il secondo e il quarto passo sugli stessi URL con le stesse domande. Il secondo ti risponde subito: il valore nell'HTML c'è o non c'è. Il quarto no. Gli assistenti recepiscono i cambiamenti con i loro tempi, una pagina corretta può metterci settimane a comparire nelle risposte, e niente in questo protocollo garantisce che succeda.
Questa seconda metà è quella che conviene automatizzare. PSentry ripete lo stesso insieme di domande su ChatGPT, Claude, Gemini e Perplexity due volte al mese, in ogni lingua in cui vendi, e registra se il tuo marchio viene nominato e quali fonti citano le risposte. Misura, non modifica quello che dicono gli assistenti. Per un intervento sul configuratore vuol dire avere una traccia datata: se le risposte alle tue domande sonda si sono spostate dopo che si è spostato l'HTML.