Google utilizza oltre 25 crawler, spider e fetcher diversi per scansionare il web, verificare la qualità degli annunci, alimentare i propri prodotti AI e rispondere alle azioni degli utenti. Ogni crawler si identifica tramite una stringa User-Agent nell’header HTTP della richiesta e un product token utilizzato per il matching nel file robots.txt. Questa guida documenta ogni singolo crawler attivo e ritirato, con le relative UA string aggiornate, i metodi di verifica e le strategie di controllo.
Cosa sono gli User-Agent dei crawler
Lo User-Agent è un’intestazione HTTP (User-Agent:) che ogni client — browser, bot o fetcher — invia al server per identificarsi. Per i crawler di Google, questa stringa contiene informazioni sul tipo di crawler, la versione e un riferimento alla documentazione ufficiale.
La stringa User-Agent ha due funzioni operative distinte: identificare il crawler nei log del web server e determinare quali regole del file robots.txt applicare.
User-Agent string vs product token
La User-Agent string è la stringa completa inviata nell’header HTTP. Contiene informazioni sul browser engine, la versione di Chrome/Chromium utilizzata dal motore di ricerca e l’identificativo del crawler. Ad esempio, la UA string completa di Googlebot smartphone è:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Il product token è l’identificativo breve utilizzato nel file robots.txt per il matching delle regole. Per Googlebot il product token è semplicemente Googlebot. Quando nel robots.txt vengono definite regole per più user agent, Google applica la regola più specifica: se esistono regole sia per Googlebot che per Googlebot-Image, quest’ultimo seguirà le proprie regole specifiche.
Nota: la versione di Chrome nella UA string (indicata come W.X.Y.Z) è un placeholder che viene aggiornato automaticamente per corrispondere alla versione di Chromium attualmente utilizzata dal Web Rendering Service (WRS) di Google. Il rendering engine di Googlebot è evergreen, ovvero viene aggiornato regolarmente all’ultima versione stabile di Chromium.
Come Google identifica i propri crawler
Google classifica i propri crawler in tre categorie, ciascuna con comportamenti distinti rispetto al robots.txt e metodi di verifica diversi:
- Common crawler — crawler automatici che rispettano il robots.txt. Includono Googlebot e tutti i crawler utilizzati per l’indicizzazione su Search, Immagini, Video, News e Shopping.
- Special-case crawler — crawler che possono ignorare le regole wildcard (
*) del robots.txt. Includono AdsBot, Mediapartners e Google-Safety. - User-triggered fetcher — fetcher attivati da un’azione esplicita dell’utente. Generalmente ignorano il robots.txt perché la richiesta è intenzionale. Includono Google-Agent (AI), NotebookLM, FeedFetcher e altri.
Ogni categoria utilizza range IP differenti e hostname distinti per la verifica tramite reverse DNS. I dettagli di verifica sono documentati nella sezione dedicata più avanti.
Common crawler
I common crawler sono i crawler automatici di Google che rispettano il file robots.txt. Utilizzano hostname nel formato crawl-*.googlebot.com o geo-crawl-*.geo.googlebot.com e i loro IP sono pubblicati nel file common-crawlers.json.
Googlebot
Googlebot è il crawler principale di Google. Costruisce l’indice per Google Search, Discover, Immagini, Video e News. Opera in due varianti — desktop e smartphone — ma entrambe condividono lo stesso product token Googlebot: non è possibile distinguerle tramite robots.txt.
Google utilizza prevalentemente la variante smartphone per l’indicizzazione (mobile-first indexing). Il rendering engine è basato su Chromium evergreen: la versione di Chrome nella UA string viene aggiornata regolarmente.
Product token: Googlebot
UA string desktop:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Googlebot/2.1; +http://www.google.com/bot.html) Chrome/W.X.Y.Z Safari/537.36
UA string smartphone:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Googlebot non dovrebbe accedere al sito più di una volta ogni pochi secondi in media. Il limite di dimensione è di 2 MB per i file supportati e 64 MB per i PDF. Le risorse CSS e JavaScript vengono scaricate separatamente, con gli stessi limiti. Per approfondire la gestione della frequenza di scansione, vedi la guida al crawl budget.
Googlebot-Image
Crawler dedicato alle immagini. Alimenta Google Immagini, Discover e le feature video di Search.
Product token: Googlebot-Image (fallback: Googlebot)
UA string: Googlebot-Image/1.0
Googlebot-News
Crawler per Google News e news.google.com. Non ha una UA string dedicata: utilizza le stesse stringhe di Googlebot standard.
Product token: Googlebot-News (fallback: Googlebot)
UA string: utilizza le UA string standard di Googlebot
Googlebot-Video
Supporta le feature video nei risultati di ricerca.
Product token: Googlebot-Video (fallback: Googlebot)
UA string: Googlebot-Video/1.0
Google StoreBot
Indicizza i dati prodotto per Google Shopping e shopping.google.com. Opera sia in versione desktop che mobile.
Product token: Storebot-Google
UA string desktop:
Mozilla/5.0 (X11; Linux x86_64; Storebot-Google/1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Safari/537.36
UA string mobile:
Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012; Storebot-Google/1.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36
Google-InspectionTool
Utilizzato dagli strumenti di test di Search Console: URL Inspection e Rich Results Test. Non è un crawler automatico — viene attivato quando un utente avvia un test manuale da Search Console. Utile per verificare come Google renderizza le pagine con dati strutturati.
Product token: Google-InspectionTool (fallback: Googlebot)
UA string desktop:
Mozilla/5.0 (compatible; Google-InspectionTool/1.0;)
UA string smartphone:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Google-InspectionTool/1.0;)
GoogleOther
Crawler generico utilizzato per R&D interno e fetch di contenuti pubblici. Non ha impatto diretto su nessun prodotto Google specifico — bloccarlo non influenza l’indicizzazione su Search. È il crawler da bloccare se si vuole limitare l’accesso a Google senza impattare la visibilità in SERP.
Product token: GoogleOther
UA string desktop:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GoogleOther) Chrome/W.X.Y.Z Safari/537.36
UA string smartphone:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; GoogleOther)
GoogleOther-Image e GoogleOther-Video
Varianti ottimizzate di GoogleOther per il fetch di immagini e video. Come GoogleOther, non hanno impatto su prodotti Google specifici.
GoogleOther-Image — Product token: GoogleOther-Image (fallback: GoogleOther) — UA string: GoogleOther-Image/1.0
GoogleOther-Video — Product token: GoogleOther-Video (fallback: GoogleOther) — UA string: GoogleOther-Video/1.0
Google-CloudVertexBot
Scansiona pagine web per conto dei Vertex AI Agent configurati dai proprietari dei siti. Non ha impatto sull’indicizzazione in Search. Viene attivato quando un’applicazione Vertex AI richiede l’accesso a contenuti web.
Product token: Google-CloudVertexBot (fallback: Googlebot)
UA string: contiene la sottostringa Google-CloudVertexBot
Google-Extended
Google-Extended non è un crawler con una propria UA string: è un product token utilizzabile esclusivamente nel robots.txt per controllare se i contenuti scansionati vengono utilizzati per il training dei modelli Gemini e per il grounding delle risposte di Gemini Apps.
Product token: Google-Extended
UA string: nessuna (utilizza le UA string degli altri crawler Google)
Bloccare Google-Extended nel robots.txt non influenza l’inclusione o il posizionamento in Google Search. È uno strumento di controllo esclusivamente per l’uso dei contenuti nell’addestramento AI. Vedi la sezione dedicata ai crawler AI per approfondire.
Special-case crawler
I special-case crawler hanno un comportamento particolare rispetto al robots.txt: ignorano le regole wildcard (User-agent: *) e richiedono regole specifiche per il proprio product token. Utilizzano hostname nel formato rate-limited-proxy-*.google.com e i loro IP sono pubblicati nel file special-crawlers.json.
APIs-Google
Consegna messaggi di notifica push per le Google API. Elimina la necessità di polling continuo da parte delle applicazioni. Invia richieste HTTPS POST con retry a backoff esponenziale in caso di errore, estendendo i tentativi fino a diversi giorni.
Product token: APIs-Google
UA string: APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)
Richiede certificati SSL validi — rifiuta certificati self-signed, revocati o da CA non trusted.
AdsBot-Google e AdsBot-Google-Mobile
Verificano la qualità delle landing page degli annunci Google Ads. Questo è uno dei crawler più importanti da gestire correttamente: se AdsBot non riesce ad accedere alla landing page, il Quality Score dell’annuncio viene penalizzato, con conseguente aumento del CPC.
AdsBot-Google (desktop)
Product token: AdsBot-Google
UA string: AdsBot-Google (+http://www.google.com/adsbot.html)
AdsBot-Google-Mobile
Product token: AdsBot-Google-Mobile
UA string: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; AdsBot-Google-Mobile; +http://www.google.com/mobile/adsbot.html)
Nota: AdsBot ignora le regole User-agent: * nel robots.txt. Per bloccarlo serve una regola esplicita con il product token specifico.
Mediapartners-Google
Visita i siti che partecipano al programma AdSense per determinare quali annunci mostrare in base al contenuto della pagina.
Product token: Mediapartners-Google
UA string desktop: Mediapartners-Google
UA string mobile: [vari dispositivi] (compatible; Mediapartners-Google/2.1; +http://www.google.com/bot.html)
Come AdsBot, ignora le regole wildcard * nel robots.txt.
Google-Safety
Crawler dedicato alla scoperta di malware, phishing e contenuti abusivi. Ignora completamente il robots.txt — nessuna regola può bloccarlo, né wildcard né specifica. Questa è una misura di sicurezza: Google deve poter verificare la presenza di contenuti dannosi indipendentemente dalle direttive del webmaster.
UA string: Google-Safety
User-triggered fetcher
I user-triggered fetcher si attivano solo in risposta a un’azione esplicita dell’utente. Generalmente ignorano il robots.txt perché la richiesta è intenzionale. Utilizzano hostname nel formato *.gae.googleusercontent.com o google-proxy-*.google.com. I range IP sono pubblicati nei file user-triggered-fetchers.json e user-triggered-fetchers-google.json.
Google-Agent (Project Mariner)
Google-Agent è uno dei crawler più recenti e significativi. Viene utilizzato dagli agenti AI su infrastruttura Google (come Project Mariner) per navigare il web ed eseguire azioni richieste dall’utente. È il primo crawler Google progettato per la navigazione autonoma guidata da AI.
UA string desktop:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; Google-Agent) Chrome/W.X.Y.Z Safari/537.36
UA string smartphone:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Google-Agent)
I range IP sono pubblicati nel file user-triggered-agents.json. Google sta sperimentando il protocollo web-bot-auth tramite l’identità https://agent.bot.goog per la verifica di questi agenti AI.
Google-NotebookLM
Scarica le pagine web che gli utenti forniscono come fonti di progetto in NotebookLM, il tool AI di Google per l’analisi e la sintesi di documenti.
UA string: Google-NotebookLM
FeedFetcher-Google
Scarica feed RSS e Atom per Google News e WebSub. Si attiva solo dopo che un utente ha esplicitamente avviato un servizio che richiede dati dal feed. Non scopre link autonomamente — accede solo agli URL forniti dagli utenti.
UA string: FeedFetcher-Google; (+http://www.google.com/feedfetcher.html)
Ignora il robots.txt. Per bloccarlo, il server deve restituire un codice di errore HTTP (404, 410 o simili) quando rileva l’user agent FeedFetcher-Google. La frequenza media di accesso non dovrebbe superare una richiesta per feed all’ora.
Google-Read-Aloud
Scarica e legge le pagine web utilizzando la sintesi vocale (text-to-speech). Alimenta le funzionalità di lettura ad alta voce nelle app Google Go, Google Read it e Read Aloud nell’app Google.
UA string desktop:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Safari/537.36 (compatible; Google-Read-Aloud; +https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers)
UA string mobile:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/W.X.Y.Z Mobile Safari/537.36 (compatible; Google-Read-Aloud; +https://developers.google.com/search/docs/crawling-indexing/overview-google-crawlers)
Non è controllabile tramite robots.txt. Per disattivare la lettura ad alta voce su una pagina, utilizzare il meta tag:
<meta name="google" content="nopagereadaloud">
Per contenuti a pagamento, utilizzare il markup isAccessibleForFree impostato a false nei dati strutturati.
Google-Site-Verification
Scarica i token di verifica per la proprietà in Google Search Console.
UA string: Mozilla/5.0 (compatible; Google-Site-Verification/1.0)
Altri fetcher
Altri fetcher user-triggered meno comuni:
- Chrome Web Store (
Google-CWS) — scarica URL dai metadati di estensioni e temi Chrome - GoogleMessages (
GoogleMessages) — genera anteprime link nei messaggi di chat - Google-Pinpoint (
Google-Pinpoint) — scarica URL per collezioni di documenti personali - Google Publisher Center (
GoogleProducer) — scarica i feed forniti dai publisher per le landing page di Google News
Crawler IA di Google
Con l’espansione dei prodotti AI, Google ha introdotto diversi crawler specifici per l’intelligenza artificiale. La gestione di questi crawler è diventata una decisione strategica per i webmaster: è possibile controllare l’accesso AI senza impattare l’indicizzazione tradizionale.
I tre crawler AI principali e le relative strategie di controllo:
- Google-Extended — controlla se i contenuti vengono utilizzati per il training dei modelli Gemini e il grounding di Gemini Apps. Bloccare
Google-Extendednel robots.txt non influisce sull’indicizzazione o sul posizionamento in Search. È la leva principale per chi vuole apparire in SERP ma non vuole alimentare l’addestramento AI. - Google-CloudVertexBot — crawler per i Vertex AI Agent. Bloccarlo impedisce ai chatbot e agli agenti AI basati su Vertex di accedere ai contenuti. Non ha impatto su Search.
- Google-Agent (Project Mariner) — agente AI che naviga il web per conto dell’utente. Essendo un user-triggered fetcher, opera su richiesta esplicita. Google sta sviluppando il protocollo
web-bot-authper consentire la verifica dell’identità di questi agenti.
Configurazione robots.txt per bloccare l’uso AI mantenendo l’indicizzazione:
User-agent: Googlebot
Allow: /
User-agent: Google-Extended
Disallow: /
User-agent: Google-CloudVertexBot
Disallow: /
Nota: Google-NotebookLM è un user-triggered fetcher che ignora il robots.txt — gli utenti possono comunque fornire URL delle pagine a NotebookLM. Lo stesso vale per Google-Agent.
Crawler ritirati
I seguenti crawler Google non sono più attivi. Se compaiono nei log del server, la richiesta proviene probabilmente da un bot che sta falsificando la UA string.
| Crawler | Product token | Note |
|---|---|---|
| Googlebot-Mobile | Googlebot-Mobile | Sostituito da Googlebot smartphone. Utilizzava UA string con dispositivi SAMSUNG-SGH-E250 e DoCoMo. |
| AdsBot Mobile Web (iPhone) | — | Sostituito da AdsBot-Google-Mobile |
| Duplex on the Web | DuplexWeb-Google | Servizio di automazione web, discontinuato |
| Google Favicon | Google Favicon | Crawler per favicon, integrato in Googlebot |
| Mobile Apps Android | AdsBot-Google-Mobile-Apps | Crawler per app Android, ritirato |
| Web Light | googleweblight | Servizio di ottimizzazione pagine per connessioni lente, discontinuato |
Tabella riepilogativa completa
Tabella di riferimento con tutti i crawler Google attualmente attivi. La colonna “Tipo” indica la categoria (C = Common, S = Special-case, U = User-triggered). La colonna “robots.txt” indica se il crawler rispetta le regole del file robots.txt.
| Crawler | Product token | Tipo | robots.txt | Uso principale |
|---|---|---|---|---|
| Googlebot | Googlebot | C | Si | Search, Discover, Immagini, Video, News |
| Googlebot-Image | Googlebot-Image | C | Si | Google Immagini, Discover |
| Googlebot-News | Googlebot-News | C | Si | Google News |
| Googlebot-Video | Googlebot-Video | C | Si | Feature video in Search |
| Google StoreBot | Storebot-Google | C | Si | Google Shopping |
| Google-InspectionTool | Google-InspectionTool | C | Si | URL Inspection, Rich Results Test |
| GoogleOther | GoogleOther | C | Si | R&D interno |
| GoogleOther-Image | GoogleOther-Image | C | Si | R&D (immagini) |
| GoogleOther-Video | GoogleOther-Video | C | Si | R&D (video) |
| Google-CloudVertexBot | Google-CloudVertexBot | C | Si | Vertex AI Agent |
| Google-Extended | Google-Extended | C | Si | Training Gemini, grounding |
| APIs-Google | APIs-Google | S | Solo specifico | Notifiche push API |
| AdsBot-Google | AdsBot-Google | S | Solo specifico | Qualita landing page Ads |
| AdsBot-Google-Mobile | AdsBot-Google-Mobile | S | Solo specifico | Qualita landing page Ads (mobile) |
| Mediapartners-Google | Mediapartners-Google | S | Solo specifico | AdSense matching contenuti |
| Google-Safety | — | S | No (ignora tutto) | Malware, phishing, abusi |
| Google-Agent | — | U | No | AI agent (Project Mariner) |
| Google-NotebookLM | — | U | No | NotebookLM fonti utente |
| FeedFetcher-Google | — | U | No | Feed RSS/Atom |
| Google-Read-Aloud | — | U | No | Sintesi vocale (TTS) |
| Google-Site-Verification | — | U | No | Verifica Search Console |
| Google-CWS | — | U | No | Chrome Web Store |
| GoogleMessages | — | U | No | Anteprima link chat |
| Google-Pinpoint | — | U | No | Collezioni documenti |
| GoogleProducer | — | U | No | Google Publisher Center |
Verificare l’identita di Googlebot
La stringa User-Agent nell’header HTTP può essere falsificata da chiunque. Per verificare che una richiesta provenga realmente da Google, esistono due metodi affidabili: il reverse DNS lookup e la verifica tramite IP range. Per un approfondimento completo, vedi la guida su come verificare Googlebot.
Reverse DNS lookup
Il metodo più diretto. Consiste in due passaggi: un reverse DNS lookup sull’IP sorgente per ottenere l’hostname, seguito da un forward DNS lookup sull’hostname per confermare che risolva allo stesso IP.
# Passaggio 1: reverse DNS lookup
host 66.249.66.1
# Risultato atteso: crawl-66-249-66-1.googlebot.com
# Passaggio 2: forward DNS lookup per conferma
host crawl-66-249-66-1.googlebot.com
# Risultato atteso: 66.249.66.1
Gli hostname validi per ciascuna categoria di crawler:
- Common crawler:
crawl-*.googlebot.comogeo-crawl-*.geo.googlebot.com - Special-case crawler:
rate-limited-proxy-*.google.com - User-triggered fetcher:
*.gae.googleusercontent.comogoogle-proxy-*.google.com
Verifica tramite IP range JSON
Google pubblica i range IP dei propri crawler in file JSON con notazione CIDR. Ogni categoria di crawler ha il proprio file:
| File JSON | Crawler coperti |
|---|---|
| common-crawlers.json | Googlebot, GoogleOther, StoreBot, InspectionTool, CloudVertexBot, Google-Extended |
| special-crawlers.json | AdsBot, Mediapartners, APIs-Google, Google-Safety |
| user-triggered-fetchers.json | Google-CWS, GoogleMessages, Google-Pinpoint, Google-Read-Aloud, Google-Site-Verification |
| user-triggered-fetchers-google.json | FeedFetcher-Google, GoogleProducer |
| user-triggered-agents.json | Google-Agent |
I file sono disponibili all’URL base https://developers.google.com/static/crawling/ipranges/. Esempio di script Python per verificare se un IP appartiene ai range Google:
import json
import ipaddress
import urllib.request
def check_google_ip(ip_to_check):
files = [
"common-crawlers.json",
"special-crawlers.json",
"user-triggered-fetchers.json",
"user-triggered-fetchers-google.json",
"user-triggered-agents.json"
]
base = "https://developers.google.com/static/crawling/ipranges/"
ip = ipaddress.ip_address(ip_to_check)
for f in files:
data = json.loads(urllib.request.urlopen(base + f).read())
for prefix in data.get("prefixes", []):
cidr = prefix.get("ipv4Prefix") or prefix.get("ipv6Prefix")
if cidr and ip in ipaddress.ip_network(cidr):
return f"IP {ip_to_check} trovato in {f}"
return f"IP {ip_to_check} NON appartiene a Google"
# Esempio di utilizzo
print(check_google_ip("66.249.66.1"))
Comportamento tecnico dei crawler Google
Tutti i crawler Google condividono alcune proprietà tecniche comuni relative ai protocolli, ai limiti e al supporto per caching e compressione. Conoscere questi dettagli è essenziale per ottimizzare il crawl budget e la gestione delle risorse server.
Protocolli di trasferimento
- HTTP/1.1 — protocollo predefinito per tutte le richieste
- HTTP/2 — supportato quando disponibile. Per disattivare l’uso di HTTP/2 da parte di Googlebot, il server deve rispondere con codice di stato
421 - FTP / FTPS — utilizzati raramente per specifici tipi di file
I crawler Google effettuano le richieste principalmente da IP statunitensi. Se rilevano un blocco geografico, possono eseguire la scansione da datacenter di altri paesi.
Limiti di dimensione dei file
| Tipo di contenuto | Limite |
|---|---|
| Default (primo segmento di qualsiasi file) | 15 MB |
| File supportati (HTML, CSS, JS, ecc.) | 2 MB |
| Documenti PDF | 64 MB |
Le risorse CSS e JavaScript vengono scaricate separatamente e sono soggette agli stessi limiti. Contenuti oltre il limite vengono troncati.
Content encoding
I crawler Google inviano l’header Accept-Encoding e supportano tre algoritmi di compressione:
- gzip
- deflate
- Brotli (
br)
Abilitare la compressione lato server riduce la banda consumata dal crawling e migliora l’efficienza della scansione. Brotli offre rapporti di compressione migliori rispetto a gzip per contenuti HTML/CSS/JS.
HTTP caching
Googlebot supporta le intestazioni HTTP standard per il caching condizionale. Implementare correttamente il caching riduce le richieste ripetute e il consumo di crawl budget:
- ETag / If-None-Match — pienamente supportato. È il metodo di caching preferito da Google
- Last-Modified / If-Modified-Since — supportato con date in formato RFC standard
- Cache-Control: max-age — raccomandato per indicare la durata della cache
Quando Googlebot riceve una risposta 304 Not Modified, non scarica nuovamente il contenuto — risparmiando banda e crawl budget. ETag è preferito rispetto a Last-Modified per la precisione nella validazione.
Controllare l’accesso dei crawler con robots.txt
Il file robots.txt è lo strumento principale per controllare l’accesso dei crawler. La comprensione di come i diversi crawler Google interagiscono con le regole robots.txt è fondamentale per una gestione corretta della scansione.
Product token e regole robots.txt
Nel robots.txt, Google applica la regola più specifica disponibile. Se esistono regole sia per Googlebot che per Googlebot-Image, Googlebot-Image seguirà le proprie regole specifiche, ignorando quelle generiche di Googlebot. Se non esiste una regola specifica, il crawler segue quella di Googlebot (per i common crawler) o la regola wildcard * (se il crawler la rispetta).
Crawler che ignorano robots.txt
Non tutti i crawler Google rispettano il robots.txt allo stesso modo:
- Common crawler — rispettano tutte le regole robots.txt, inclusa la wildcard
* - Special-case crawler (AdsBot, Mediapartners, APIs-Google) — ignorano la regola
User-agent: *. Servono regole esplicite con il product token specifico - Google-Safety — ignora completamente il robots.txt (nessuna regola può bloccarlo)
- User-triggered fetcher — generalmente ignorano il robots.txt perché la richiesta è intenzionale dell’utente
Esempi di configurazione robots.txt
Consentire l’indicizzazione ma bloccare il training AI:
User-agent: Googlebot
Allow: /
User-agent: Google-Extended
Disallow: /
Bloccare AdsBot (richiede regola specifica, la wildcard non funziona):
User-agent: AdsBot-Google
Disallow: /
User-agent: AdsBot-Google-Mobile
Disallow: /
Consentire solo Googlebot, bloccare tutto il resto:
User-agent: Googlebot
Allow: /
User-agent: *
Disallow: /
Bloccare la scansione delle immagini in una directory specifica:
User-agent: Googlebot
Allow: /
User-agent: Googlebot-Image
Disallow: /private/
Per direttive più granulari a livello di singola pagina, è possibile utilizzare il meta tag robots o l’header HTTP X-Robots-Tag. Vedi la guida al meta tag NOINDEX per i dettagli.
Analisi dei crawler Google nei log del server
L’analisi dei log del web server è il metodo più affidabile per capire quali crawler Google visitano il sito, con quale frequenza e quali pagine richiedono. Per operazioni da terminale, ecco i comandi più utili.
Contare le richieste per tipo di crawler Google:
grep -oP '(Googlebot|Googlebot-Image|Googlebot-Video|Googlebot-News|Storebot-Google|Google-InspectionTool|GoogleOther|Google-CloudVertexBot|AdsBot-Google|Mediapartners-Google|Google-Safety|Google-Agent|Google-NotebookLM|FeedFetcher-Google|Google-Read-Aloud)' access.log | sort | uniq -c | sort -rn
Monitorare i nuovi crawler AI nei log:
grep -E '(Google-Agent|Google-NotebookLM|Google-CloudVertexBot|Google-Extended|Google-Read-Aloud)' access.log | awk '{print $1, $4, $7}' | head -50
Verificare le richieste di un IP sospetto:
# Estrai IP che si presentano come Googlebot
grep "Googlebot" access.log | awk '{print $1}' | sort -u | while read ip; do
host "$ip" | grep -q "googlebot.com\|google.com" || echo "FAKE: $ip"
done
L’analisi regolare dei log permette di identificare crawler non autorizzati che falsificano le UA string di Google, monitorare l’adozione dei nuovi crawler AI e ottimizzare la gestione del crawl budget in base ai pattern di scansione effettivi.
Articoli correlati
Autore
Mi chiamo Giovanni Sacheli e dal 2009 aiuto le aziende a farsi trovare online. Sono specializzato in SEO tecnica e PPC, competenze che applico quotidianamente nella mia agenzia, Searcus Swiss Sagl. Mi piace sviluppare strumenti a supporto del mio lavoro, ho creato SEOdata.app e cluster.army e co-scritto il libro SEO Audit Avanzato. Curo maniacalmente questo blog per colleghi e appassionati, dove mi "appunto" quello che imparo. Sono un NERD anni '80, motociclista e orgoglioso papà di due bambini.
Link:
Giovanni Sacheli
SEO Audit Avanzato
Searcus Swiss Sagl
SEOdata.app
cluster.army