Che cosa è un crawler? | Come funzionano gli spider

Un crawler del web, noto anche come "spider", è un tipo di bot abitualmente gestito da motori di ricerca quali Google e Bing. Il compito dei crawler è indicizzare i contenuti dei siti Web presenti nella rete, in modo che possano comparire nei risultati dei motori di ricerca.

Share facebook icon linkedin icon twitter icon email icon

Crawler

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Che cosa è un bot crawler (o spider)
  • Capire in che modo un crawler sceglie quale pagina scandagliare
  • Spiegare la differenza tra scraping e crawling del web
  • Determinare se il crawling dovrebbe essere consentito su ogni singola pagina web.

Che cosa è un bot crawler?

Un crawler, spider, o bot di un motore di ricerca, scarica e indicizza contenuti presenti in ogni angolo di Internet. L'obiettivo di questo tipo di bot è conoscere di quale argomento tratta ogni pagina (quasi) presente in rete, in modo che le informazioni possano essere recuperate quando ce n'è bisogno. Questi bot sono chiamati "web crawler" perché "crawling" è il termine tecnico utilizzato per indicare l'accesso a un sito web e il recupero di dati ottenuti tramite un programma informatico.

Questi bot sono quasi sempre gestiti dai motori di ricerca. Applicando un algoritmo di ricerca ai dati raccolti dai crawler, i motori di ricerca sono in grado di fornire link utili in risposta alle query degli utenti. In questo modo, il motore di ricerca è in grado di generare un elenco di pagine web ogni volta che un utente effettua la sua ricerca su Google o Bing (o su un altro motore).

Un web crawler può essere paragonato a una persona che passi in rassegna, pazientemente, tutti i libri contenuti in una biblioteca disordinata, e li cataloghi uno ad uno. In questo modo, chiunque visiti la biblioteca potrà trovare rapidamente e facilmente le informazioni di cui ha bisogno. Per poter catalogare e suddividere i libri per argomento, il bibliotecario dovrà leggerne il titolo, l'indice e qualche pagina di testo per riuscire a capire di cosa tratta.

A differenza di una biblioteca, però, l'Internet non è fatto di cataste fisiche di libri, e ciò rende difficoltoso poter dire se tutte le informazioni necessarie siano state indicizzate correttamente, o se una grande quantità di esse sia stata trascurata. Per provare a trovare tutte le informazioni pertinenti che Internet offre, un bot crawler inizierà da una serie di pagine web note, seguendo i collegamenti ipertestuali che rimandano ad altre pagine, seguendo i collegamenti ipertestuali che da queste pagine rimandano ad altre, e così via.

Allo stato attuale non è possibile sapere con esattezza quanta parte di Internet venga effettivamente scandagliata dai bot dei motori di ricerca. Alcune fonti stimano che solo il 40-70% di Internet sia effettivamente indicizzato per le ricerche, e si tratta comunque di miliardi di pagine web.

Che cosa è l'indicizzazione di ricerca?

L'indicizzazione di ricerca è un procedimento simile alla creazione del catalogo di una biblioteca, ma per Internet, in modo che un motore di ricerca sappia in che punto della rete recuperare le informazioni quando giunge una richiesta. Può essere paragonato all'indice analitico di un libro, in cui sono elencati tutte le pagine in cui sono menzionati un dato argomento o una data parola.

L'indicizzazione si basa prevalentemente sul testo che appare sulla pagina e sui metadati* della stessa, che gli utenti non vedono. Quando i motori di ricerca indicizzano una pagina, aggiungono all'indice tutte le parole in essa contenute, ad eccezione di "un" "una" e "il/la" nel caso di Google. Quando gli utenti ricercano quelle parole, il motore di ricerca scorre l'indice di tutte le pagine in cui compaiono quelle parole, e seleziona quelle più pertinenti.

*Nell'ambito dell'indicizzazione di ricerca, i metadati sono i dati che dicono ai motori di ricerca di cosa tratta la pagina Web. Spesso il meta-titolo e la meta-descrizione sono ciò che apparirà sulle pagine dei risultati, al contrario dei contenuti della pagina che sono visibili agli utenti.

Come funzionano i crawler?

L'Internet è in continua espansione e in continuo mutamento. Dal momento che è impossibile sapere quante pagine web siano presenti in esso, i bot crawler iniziano da un seed, ovvero da un lista di URL noti, e scandagliano in prima battuta le pagine collegate a quegli URL. Man mano che avanzano lungo le pagine, incontreranno collegamenti ipertestuali che rimandano ad altri URL, e aggiungeranno questi URL alla prossima lista di pagine da scandagliare.

Data l'immensa quantità di pagine su Internet che potrebbero essere indicizzate per la ricerca, questo processo potrebbe proseguire quasi all'infinito. Un web crawler, tuttavia, segue alcune politiche che lo rendono più selettivo nella scelta delle pagine da scandagliare, nell'ordine in cui scandagliarle e con quale frequenza farlo per controllare gli aggiornamenti ai contenuti.

L'importanza relativa di ciascuna pagina web: la maggior parte dei crawler non scandaglia nella sua interezza l'Internet disponibile pubblicamente, e nemmeno è stata concepita per farlo. Essi decidono invece quali pagine scandagliare per prime sulla base della quantità di pagine che si collegano a una data pagina, della quantità di visitatori che essa riceve, e di altri fattori che indicano la probabilità che la pagina contenga informazioni importanti.

L'idea di fondo è che una pagina web che sia citata da molte altre e che riceva un elevato numero di visite contenga informazioni autorevoli e di elevata qualità, e pertanto è di particolare importanza che un motore di ricerca la includa nei propri indici, non dissimilmente da una biblioteca che si assicuri di avere a disposizione più copie di un libro particolarmente richiesto dai suoi frequentatori.

Rivisitazione di pagine web: sul web, i contenuti vengono aggiornati, rimossi o spostati continuamente. I crawler devono pertanto rivisitare periodicamente le pagine per fare in modo che sia indicizzata l'ultima versione dei loro contenuti.

Requisiti di robots.txt: i crawler decidono quali pagine scandagliare anche sulla base del protocollo robots.txt (noto anche come "Protocollo di esclusione dei robot"). Prima di scandagliare una pagina web, i crawler controllano il file robots.txt ospitato dal server di quella pagina. Il file robots.txt è un file di testo che specifica le regole che un bot deve seguire quando accede all'applicazione o al sito web ospitati. Queste regole precisano quali pagine il bot può scandagliare e quali collegamenti ipertestuali può seguire. Per un esempio, controllare il file robots.txt di Cloudflare.com.

Tutti questi fattori vengono ponderati in modo diverso dagli algoritmi proprietari che ciascun motore di ricerca incorpora nei suoi spider. I crawler di ogni motore di ricerca si comportano in modo leggermente diverso, anche se l'obiettivo finale è il medesimo: scaricare e indicizzare contenuti dalle pagine web.

Perché i crawler vengono chiamati "spider"?

L'Internet, o perlomeno la parte di Internet a cui accede la maggior parte degli utenti, è noto anche come il World Wide Web, ovvero la "ragnatela globale" – l'acronimo "www" iniziale degli URL dei siti internet deriva proprio da questa definizione. È parso assolutamente naturale chiamare i bot dei motori di ricerca "spiders" ovvero "ragni", perché si muovono lungo tutta la "ragnatela globale", proprio come i ragni veri fanno con le loro ragnatele.

Ai crawler deve essere sempre consentito l'accesso alle proprietà web?

Questa decisione spetta unicamente alla proprietà web stessa, e dipende da una serie di fattori. I crawler hanno bisogno di risorse dei server per poter indicizzare i contenuti: proprio come un utente o un bot che visiti un sito, essi fanno delle richieste alle quali il server deve rispondere. A seconda della quantità di contenuti in ciascuna pagina o del numero di pagine sul sito, potrebbe rientrare nell'interesse del gestore non consentire indicizzazione di ricerca con troppa frequenza, dal momento che troppa indicizzazione potrebbe sovraccaricare il server, aumentare i costi di banda, o entrambe.

Può anche darsi il caso che alcuni sviluppatori o delle aziende non desiderino che determinate pagine siano rilevabili, a meno che non sia stato già fornito all'utente un link alle pagina (senza collocare quest'ultima dietro un paywall o un login). Un esempio di questo si ha, in ambito commerciale, quando una azienda crea una pagina di destinazione dedicata per una campagna di marketing, e vuole che l'accesso alla pagina sia riservato esclusivamente alle persone prese di mira dalla promozione. In questi casi l'azienda può inserire un tag "no index" alla pagina di destinazione, che non comparirà nei risultati dei motori di ricerca. Una azienda può anche aggiungere un tag "disallow" nella pagina o nel file robots.txt, e gli spider dei motori di ricerca si asterranno dallo scandagliarla.

Per una serie di altre ragioni, i proprietari di siti web potrebbero non volere che i crawler scandaglino in tutto o in parte i loro siti. Ad esempio, un sito web che offre agli utenti la possibilità di fare ricerche al suo interno potrebbe voler bloccare le pagine di ricerca dei risultati, dal momento che per la maggior parte degli utenti non hanno nessuna utilità. Anche altre pagine generate automaticamente, utili solo a un utente o a un gruppo ristretto di utenti specifici, dovrebbero essere bloccate.

Qual è la differenza tra il crawling e lo scraping del Web?

Si parla di web scraping,data scraping o content scraping quando un bot scarica senza permesso il contenuto di un sito Web, spesso con l'intenzione di usarlo per scopi dannosi.

Solitamente, lo scraping è una attività molto più mirata rispetto al crawling. Gli scraper possono essere alla ricerca solo di pagine o siti specifici, mentre i crawler continuano a seguire collegamenti ipertestuali e a scandagliare continuamente le pagine.

Inoltre, i bot di scraping possono non tenere conto dello stress che provocano ai server, mentre i crawler, specialmente quelli dei principali motori di ricerca, obbediscono al file robots.txt e limitano le proprie richieste per non sovraccaricare il server.

In che modo i crawler impattano sul SEO?

SEO sta per "search engine optimization" (ottimizzazione motore di ricerca), e consiste nella preparazione dei contenuti per l'indicizzazione di ricerca, affinché un dato sito web figuri in una posizione più elevata tra i risultati del motore di ricerca.

Se gli spider non scandagliano un sito, non sarà possibile indicizzarlo e pertanto non verrà mostrato tra i risultati di ricerca. Per questo motivo, se il proprietario di un sito Web desidera ricevere traffico organico dai risultati delle ricerche, è fondamentale che non blocchi i crawler.

Quali sono i bot crawler attivi su Internet?

I bot dei principali motori di ricerca sono:

  • Google: Googlebot (in realtà i crawler sono due, Googlebot Desktop e Googlebot Mobile, per le ricerche su desktop e dispositivi mobili)
  • Bing: Bingbot
  • Yandex (motore di ricerca russo): Yandex Bot
  • Baidu (motore di ricerca cinese): Baidu Spider

Esistono anche molti crawler meno diffusi, alcuni dei quali non sono associati ad alcun motore di ricerca.

Perché nell'ambito della gestione dei bot è importante tenere conto del crawling?

I bot nocivi possono provocare danni considerevoli, che vanno dal peggioramento dell'esperienza dell'utente, al crash del server, fino ad arrivare al furto di dati. Tuttavia, mentre ci si preoccupa di bloccare i bot dannosi, è importante lasciare che i bot benigni, come i crawler, abbiano accesso alle proprietà. Cloudflare Bot Management consente ai bot benigni di accedere ai siti Web, mitigando al contempo il traffico bot dannoso. Il prodotto mantiene una whitelist di bot benigni, come i crawler, che viene aggiornata automaticamente per fare in modo che questi bot non siano bloccati.