Panoramica dei crawler e dei fetcher di Google (user agent)

Google utilizza crawler e fetcher per eseguire azioni per i propri prodotti, in modo automatico o su richiesta dell'utente. "Crawler" (a volte chiamato anche "robot" o "spider") è un termine generico che indica qualsiasi programma utilizzato per individuare e analizzare automaticamente i siti web. I fetcher agiscono come un programma come wget, che in genere invia una singola richiesta per conto di un utente. I crawler di Google rientrano in tre categorie:

Crawler comuni I crawler comuni utilizzati per i prodotti Google (ad esempio Googlebot). Rispettano sempre le regole del file robots.txt per le scansioni automatiche.
Crawler per casi speciali I crawler per casi speciali sono simili ai crawler comuni, ma vengono utilizzati da prodotti specifici in cui è presente un accordo sulla procedura di scansione tra il sito sottoposto a scansione e il prodotto Google. Ad esempio, AdsBot ignora lo user agent globale del file robots.txt (*) con l'autorizzazione del publisher dell'annuncio.
Fetcher attivati dall'utente I fetcher attivati dall'utente fanno parte di strumenti e funzioni di prodotto in cui l'utente finale attiva un recupero. Ad esempio, Google Site Verifier agisce su richiesta di un utente.

Proprietà tecniche dei crawler e dei fetcher di Google

I crawler e i fetcher di Google sono progettati per essere eseguiti contemporaneamente da migliaia di macchine per migliorare le prestazioni e seguire il ritmo di crescita del web. Per ottimizzare l'utilizzo della larghezza di banda, questi client sono distribuiti in molti data center in tutto il mondo, in modo da trovarsi vicino ai siti a cui potrebbero accedere. Pertanto, i tuoi log potrebbero mostrare visite da diversi indirizzi IP. Google registra principalmente il traffico proveniente da indirizzi IP negli Stati Uniti. Se rileva che un sito blocca le richieste dagli Stati Uniti, potrebbe tentare di eseguire la scansione da indirizzi IP situati in altri paesi.

Protocolli di trasferimento supportati

I crawler e i fetcher di Google supportano HTTP/1.1 e HTTP/2. I crawler useranno la versione del protocollo che offre le migliori prestazioni di scansione e potrebbero cambiare protocollo tra le sessioni di scansione in base alle statistiche di scansione precedenti. La versione del protocollo predefinita utilizzata dai crawler di Google è HTTP/1.1; la scansione su HTTP/2 potrebbe consentire di risparmiare risorse di calcolo (ad esempio CPU, RAM) per il tuo sito e Googlebot, ma non offre alcun vantaggio specifico per il sito (ad esempio, nessun miglioramento del ranking nella Ricerca Google). Per disattivare la scansione su HTTP/2, indica al server che ospita il tuo sito di rispondere con un codice di stato HTTP 421 quando Googlebot tenta di accedere al tuo sito su HTTP/2. Se ciò non è fattibile, puoi inviare un messaggio al team addetto alla scansione (soluzione temporanea).

L'infrastruttura dei crawler di Google supporta anche la scansione tramite FTP (come definito dal documento RFC959 e dai relativi aggiornamenti) e FTPS (come definito dal documento RFC4217 e dai relativi aggiornamenti), ma la scansione tramite questi protocolli è rara.

Codifiche dei contenuti supportate

I crawler e i fetcher di Google supportano le seguenti codifiche (compressioni) dei contenuti: gzip, deflate e Brotli (br). Le codifiche dei contenuti supportate da ogni user agent di Google vengono pubblicizzate nell'intestazione Accept-Encoding di ogni richiesta effettuata. Ad esempio, Accept-Encoding: gzip, deflate, br.

Frequenza di scansione e carico dell'host

Il nostro obiettivo è eseguire a ogni visita la scansione del maggior numero possibile di pagine del tuo sito senza sovraccaricare il server. Se il tuo sito non riesce a stare al passo con le richieste di scansione di Google, puoi ridurre la frequenza di scansione. Tieni presente che l'invio di un codice di risposta HTTP inappropriato ai crawler di Google potrebbe influire sulla visualizzazione del tuo sito nei prodotti Google.

Memorizzazione nella cache HTTP

L'infrastruttura di scansione di Google supporta la memorizzazione nella cache HTTP basata su regole come definita dallo standard HTTP Caching, in particolare tramite l'intestazione della risposta ETag e della richiesta If-None-Match e l'intestazione della risposta Last-Modified e della richiesta If-Modified-Since.

Se nella risposta HTTP sono presenti entrambi i campi dell'intestazione della risposta ETag e Last-Modified, i crawler di Google utilizzano il valore ETag come richiesto dallo standard HTTP. In particolare, per i crawler di Google consigliamo di utilizzare ETag anziché l'intestazione Last-Modified per indicare la preferenza di memorizzazione nella cache, poiché ETag non presenta problemi di formattazione della data.

Altre istruzioni di memorizzazione nella cache HTTP non sono supportate.

I singoli crawler e fetcher di Google potrebbero o meno utilizzare la memorizzazione nella cache, a seconda delle esigenze del prodotto a cui sono associati. Ad esempio, Googlebot supporta la memorizzazione nella cache quando viene eseguita nuovamente la scansione degli URL per la Ricerca Google, mentre Storebot-Google supporta la memorizzazione nella cache solo in determinate condizioni.

Per implementare la memorizzazione nella cache HTTP per il tuo sito, contatta il tuo provider di hosting o del sistema di gestione dei contenuti.

ETag e If-None-Match

L'infrastruttura di scansione di Google supporta ETag e If-None-Match come definito dallo standard HTTP Caching. Scopri di più sull'intestazione della risposta ETag e sulla relativa intestazione della richiesta, If-None-Match.

Last-Modified e If-Modified-Since

L'infrastruttura di scansione di Google supporta Last-Modified e If-Modified-Since come definito dallo standard HTTP Caching con le seguenti limitazioni:

  • La data nell'intestazione Last-Modified deve essere formattata in base allo standard HTTP. Per evitare problemi di analisi, vi consigliamo di utilizzare il seguente formato della data: "Giorno della settimana, DD Mon YYYY HH:MM:SS fuso orario". Ad esempio, "Fri, 4 Sep 1998 19:15:56 GMT".
  • Sebbene non sia obbligatorio, ti consigliamo di impostare anche il campo max-age dell'intestazione della risposta Cache-Control per aiutare i crawler a determinare quando eseguire nuovamente la scansione dell'URL specifico. Impostate il valore del campo max-age sul numero di secondi previsto per cui i contenuti rimangono invariati. Ad esempio Cache-Control: max-age=94043.

Scopri di più sull'intestazione della risposta Last-Modified e sulla relativa intestazione della richiesta, If-Modified-Since.

Verificare i crawler e i fetcher di Google

I crawler di Google si identificano in tre modi:

  1. L'intestazione della richiesta HTTP user-agent.
  2. L'indirizzo IP di origine della richiesta.
  3. Il nome host DNS inverso dell'IP di origine.

Scopri come utilizzare questi dettagli per verificare i crawler e i fetcher di Google.