[{"data":1,"prerenderedAt":96},["ShallowReactive",2],{"guide-ai-crawler-logs-it":3},{"copy":4,"related":83},{"name":5,"question":6,"title":7,"description":8,"h1":9,"lede":10,"panelTitle":11,"end":12,"sections":15},"Log dei crawler AI","Quali crawler AI visitano davvero il mio sito?","Scopri quali crawler AI visitano il tuo sito","Trova GPTBot, ClaudeBot, PerplexityBot e altri crawler AI nei log di accesso, verifica che siano autentici e scopri quali pagine falliscono.","Scopri quali crawler AI visitano davvero il tuo sito","Il tuo robots.txt dice quali crawler AI possono leggere il tuo sito. Il tuo log di accesso dice quali l’hanno fatto, con che frequenza e cosa hanno ricevuto in risposta. Questa guida mostra dove trovare quel log, come contare le visite dei crawler AI con pochi comandi di shell e come distinguere un crawler vero da uno che ne prende solo in prestito il nome.","In questa pagina",{"heading":13,"text":14},"Controlla chi può leggere il tuo sito","Una scansione gratuita legge il tuo robots.txt e mostra quali crawler AI lascia entrare e quali blocca, accanto al resto della preparazione del tuo sito per l’AI.",{"why":16,"crawlers":22,"find":29,"format":37,"count":48,"verify":57,"errors":67,"limits":75},{"heading":17,"panel":18,"body":19},"Perché conta chi visita davvero","Perché conta",[20,21],"Un assistente AI può citare solo una pagina che uno dei suoi crawler ha letto. Se nessuno di loro ha scaricato la tua pagina dei prezzi, nessuna risposta la citerà, per quanto sia scritta bene.","Il tuo robots.txt, e la tabella dei bot AI in un report SagBot, dicono quali crawler possono leggere il tuo sito. Non dicono quali sono passati. Il log di accesso del tuo server sì: ogni richiesta, con l’indirizzo da cui proviene, la pagina, il codice di stato e lo user agent che identifica il crawler.",{"heading":23,"panel":24,"body":25},"Quali crawler AI esistono e perché arrivano","Chi sono i crawler",[26,27,28],"I crawler AI arrivano per uno di tre motivi. I crawler di addestramento raccolgono pagine per addestrare i modelli. I crawler di ricerca costruiscono l’indice in cui un assistente cerca quando risponde. Gli agenti su richiesta dell’utente scaricano una pagina in tempo reale perché qualcuno ha appena chiesto all’assistente qualcosa al riguardo. Le visite degli ultimi due tipi sono quelle che possono portare a una citazione.","OpenAI invia `GPTBot` per l’addestramento, `OAI-SearchBot` per la ricerca e `ChatGPT-User` per le richieste in tempo reale. Anthropic invia `ClaudeBot`, `Claude-SearchBot` e `Claude-User`; Perplexity invia `PerplexityBot` e `Perplexity-User`. Meta usa `meta-externalagent`, `meta-webindexer` e `meta-externalfetcher`, Amazon usa `Amazonbot`, `Amzn-SearchBot` e `Amzn-User`, e Mistral e DuckDuckGo inviano `MistralAI-User` e `DuckAssistBot`. `Bytespider` (ByteDance) e `CCBot` (Common Crawl, un archivio aperto su cui sono addestrati molti modelli) raccolgono dati di addestramento.","Due nomi che non troverai in un log: `Google-Extended` e `Applebot-Extended` sono regole del robots.txt, non crawler. Google scarica le pagine con `Googlebot` e Apple con `Applebot`; le regole Extended decidono solo se ciò che hanno scaricato può essere usato per l’AI. L’agente di Google per le richieste in tempo reale degli utenti, `Google-Agent`, compare invece con il suo nome.",{"heading":30,"panel":31,"body":32},"Trova il tuo log di accesso","Trova il log",[33,34,35,36],"Sul tuo server il log è un semplice file di testo. nginx scrive `\u002Fvar\u002Flog\u002Fnginx\u002Faccess.log`. Apache scrive `\u002Fvar\u002Flog\u002Fapache2\u002Faccess.log` su Debian e Ubuntu, e `\u002Fvar\u002Flog\u002Fhttpd\u002Faccess_log` su Red Hat, Rocky e Alma. I giorni precedenti vengono ruotati in file numerati o datati accanto a esso, i più vecchi compressi come `.gz`.","Su un hosting condiviso o gestito, cerca nel pannello di hosting i log di accesso grezzi e scaricali. Alcuni hosting conservano solo pochi giorni, quindi salvali regolarmente se vuoi una visione più lunga.","Dietro Cloudflare, apri AI Crawl Control per il tuo dominio nella dashboard. È disponibile su tutti i piani e mostra le richieste per crawler AI, i loro codici di stato e i percorsi più richiesti, senza alcun file di log; sul piano gratuito le metriche coprono le ultime 24 ore. Per le righe di richiesta grezze, Logpush le esporta in uno storage a tua scelta. Cloudflare vede solo gli hostname in proxy (la nuvola arancione); i record solo DNS vanno direttamente al tuo server.","Su Vercel, la pagina Logs del progetto mostra le richieste recenti con il loro user agent, per un’ora su Hobby e per un giorno su Pro. Un log drain (Pro ed Enterprise) invia ogni richiesta, compresi i file statici, a uno storage a tua scelta.",{"heading":38,"panel":39,"body":40,"code":44},"Verifica che il log registri lo user agent","Controlla il formato",[41,42,43],"È lo user agent a identificare il crawler, quindi ogni riga deve contenerlo. nginx e Apache hanno entrambi un formato chiamato `combined` che chiude ogni riga con il referrer e lo user agent tra virgolette. nginx lo usa a meno che tu non ne scelga un altro; Apache lo definisce, e la tua riga `CustomLog` decide se viene usato.","Guarda le ultime righe del log con il primo comando qui sotto. Se ognuna termina con il nome di un browser o di un bot tra virgolette, sei a posto. Se le righe terminano con lo stato e un numero di byte, il server scrive nel Common Log Format, che non contiene lo user agent: imposta `combined` sulla riga `access_log` (nginx) o sulla riga `CustomLog` (Apache), come qui sotto, e ricarica il server.","I comandi dei passaggi successivi presuppongono il layout `combined`. Se usi un tuo `log_format` o `LogFormat`, mantieni `$http_user_agent` o `%{User-Agent}i` come ultimo campo tra virgolette, oppure adatta i comandi.",[45,46,47],"tail -n 3 \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log","access_log \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log combined;","LogFormat \"%h %l %u %t \\\"%r\\\" %>s %b \\\"%{Referer}i\\\" \\\"%{User-Agent}i\\\"\" combined\nCustomLog ${APACHE_LOG_DIR}\u002Faccess.log combined",{"heading":49,"panel":50,"body":51,"code":54},"Conta le visite per crawler AI","Conta le visite",[52,53],"Incolla il primo blocco in una shell sul server. Imposta `BOTS` con i nomi dei crawler AI della tabella dei bot AI di SagBot e conta le richieste per crawler nel log corrente. Cambia il percorso se il tuo è diverso, per esempio `\u002Fvar\u002Flog\u002Fapache2\u002Faccess.log`.","Il secondo blocco fa lo stesso sui file ruotati, compressi o no; eseguilo nella stessa shell, così `BOTS` resta impostata. Spesso in cima alla lista ci sono i crawler di addestramento. Le visite dei crawler di ricerca e degli agenti su richiesta dell’utente sono quelle legate alle risposte, quindi vale la pena accorgersi quando mancano.",[55,56],"BOTS='GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-SearchBot|Claude-User'\nBOTS=\"$BOTS|PerplexityBot|Perplexity-User|Google-Agent|Applebot|Bytespider|CCBot\"\nBOTS=\"$BOTS|meta-externalagent|meta-webindexer|meta-externalfetcher|Amazonbot\"\nBOTS=\"$BOTS|Amzn-SearchBot|Amzn-User|MistralAI-Training|MistralAI-Index\"\nBOTS=\"$BOTS|MistralAI-User|DuckAssistBot\"\nawk -F'\"' '{print $6}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log \\\n  | grep -Eo \"$BOTS\" | sort | uniq -c | sort -rn","zgrep -hE \"${BOTS:?}\" \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log* \\\n  | awk -F'\"' '{print $6}' | grep -Eo \"$BOTS\" | sort | uniq -c | sort -rn",{"heading":58,"panel":59,"body":60,"code":64},"Verifica che un crawler sia autentico","Verifica i crawler",[61,62,63],"Chiunque può inviare una richiesta il cui user agent dice `GPTBot`, e gli scraper lo fanno. Per fidarti di una visita, confronta l’indirizzo da cui proviene con l’elenco pubblicato dal gestore stesso. Il primo comando qui sotto elenca gli indirizzi che si sono presentati come `GPTBot`; sostituiscilo con qualsiasi altro nome.","OpenAI, Anthropic, Perplexity, Amazon, Apple e Common Crawl pubblicano gli intervalli IP dei loro crawler nella documentazione dei loro bot. Google e Bing si possono verificare anche con il DNS inverso: l’indirizzo deve risolversi in un nome `googlebot.com`, `google.com` o `googleusercontent.com` per Google, o `search.msn.com` per Bing, e quel nome deve risolversi di nuovo nello stesso indirizzo. Il secondo blocco mostra il controllo con l’indirizzo di esempio fornito da Google. Apple (`applebot.apple.com`) e Common Crawl (`crawl.commoncrawl.org`) superano lo stesso test.","Meta e ByteDance non pubblicano alcun elenco di indirizzi al momento in cui scriviamo, quindi le loro visite si possono contare ma non verificare.",[65,66],"awk '\u002FGPTBot\u002F {print $1}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log | sort | uniq -c | sort -rn","host 66.249.66.1\nhost crawl-66-249-66-1.googlebot.com",{"heading":68,"panel":69,"body":70,"code":73},"Trova le pagine che falliscono con i crawler AI","Trova le pagine in errore",[71,72],"Un crawler che riceve un 404 o un 500 se ne va senza niente da citare, e una pagina che continua a fallire può uscire dal suo indice.","Il blocco qui sotto elenca i percorsi che hanno risposto ai crawler AI con 404 o con un qualsiasi 5xx, dai più frequenti; richiede `BOTS` dal passaggio di conteggio nella stessa shell. Reindirizza le pagine spostate al loro nuovo indirizzo, correggi gli errori e togli i link morti dalla sitemap e dai link interni.",[74],"awk -F'\"' -v bots=\"${BOTS:?}\" '$6 ~ bots {\n  split($3, f, \" \"); split($2, r, \" \")\n  if (f[1] == 404 || f[1] >= 500) print f[1], r[2]\n}' \u002Fvar\u002Flog\u002Fnginx\u002Faccess.log | sort | uniq -c | sort -rn | head -20",{"heading":76,"panel":77,"body":78},"Cosa i log non possono mostrarti","Cosa sfugge ai log",[79,80,81,82],"Una pagina servita dalla cache di una CDN non raggiunge mai il tuo server, quindi il tuo log conta meno visite di quelle reali. Usa i log della CDN o la sua vista sui crawler per il quadro completo.","Cloudflare vede solo gli hostname in proxy. Un hostname impostato su solo DNS non mostra visite in AI Crawl Control, per quanti crawler lo raggiungano.","Il solo user agent può essere falsificato, e il Common Log Format non lo registra affatto.","I log mostrano visite, non citazioni. Che un crawler legga una pagina non significa che un assistente la citerà; quanto spesso vieni citato è una misura a parte.",[84,88,92],{"path":85,"name":86,"question":87},"\u002Ffor\u002Fdevelopers","Sviluppatori","I crawler e gli agenti AI riescono a raggiungere e leggere il mio sito?",{"path":89,"name":90,"question":91},"\u002Fguides\u002Fimprove-geo","Migliora la tua GEO","Come faccio a far citare il mio sito dai motori di risposta AI?",{"path":93,"name":94,"question":95},"\u002Fguides\u002Fai-visibility","Visibilità nell’AI","Cosa posso correggere, e cosa posso solo monitorare, di come l’AI vede il mio brand?",1793992963632]