Post recenti
Commenti recenti
- I Principali Test per un Sito Web in Ottica SEO - Ingegnerealbano.com on Come calcolare la distribuzione del “PageRank” tra le pagine di un sito
- SEO e keywords: esistono strategie e tecniche efficaci? | SERIAL EYE on Benedetta SEO, maledetta SEO
- LowLevel on Continuare a smontare Google: un’altra scoperta SEO
Tutti i post
-
Questa opera di Enrico Altavilla è concessa in licenza sotto la Licenza Creative Commons Attribuzione - Non commerciale - Non opere derivate 3.0 Unported.
Gli spider non “seguono” davvero i link: un equivoco su follow e nofollow
Pur non avendo svolto alcuna valutazione dei lettori abituali di questo blog, sono indotto a credere che una loro buona percentuale sia composta da professionisti del settore con una certa esperienza sulle spalle.
Le precisazioni pubblicate nel presente articolo riguardo il concetto di “following” dei link risulterà forse un po’ banale a coloro che hanno ben chiaro come funzioni il crawling del web da parte di un motore di ricerca.
Ciononostante più di una volta mi è capitato di imbattermi in malintesi di fondo su che cosa significhi “following” e, di conseguenza, quale sia il significato e la funzione delle direttive “follow” e “nofollow”.
In un paio di occasioni il malinteso ha prodotto anche effetti negativi concreti e quindi ho pensato che ci stesse bene un breve articolo di chiarimento su questo tema.
La genesi
La motivazione a scrivere questo post è stata prevalentemente quella di aver osservato diversi episodi in cui a qualcuno è venuta l’idea di “impedire a Google di seguire backlink provenienti da siti web sgraditi al sito di destinazione”.
La logica dietro tale idea è che lo spider sia indotto ad ignorare un backlink sgradito nel momento in cui, seguendo quel backlink, si trovi di fronte ad uno status HTTP “forbidden” erogato dal sito di destinazione.
L’intero ragionamento avrebbe delle pecche logiche anche nel caso in cui gli spider dei motori seguissero effettivamente i link sul web, un po’ come fanno gli utenti che cliccano i link sui siti.
Il punto centrale della questione è che gli spider non “seguono” affatto i link e che l’intero processo di crawling del web avviene attraverso un metodo del tutto diverso. E’ dunque necessario sfatare il mito del “following”.
La cultura SEO tra cavoli e cicogne
Una critica che mi è capitato di muovere ai responsabili dei motori di ricerca che si occupano di comunicazione nei confronti di webmaster e SEO è quella che le spiegazioni sul funzionamento del motore vengono date facendo spesso uso di eccessive semplificazioni.
La scelta di semplificare molto i concetti e di allontanarsi dalle spiegazioni tecniche permette di allargare la base di utenti in grado di comprendere le nozioni principali ma purtroppo crea uno sgradito effetto collaterale: i professionisti che sono destinati a crescere nel settore della SEO partono con un identikit del motore di ricerca composto da allegorie, metafore ed esemplificazioni che nulla dicono di ciò che un motore realmente fa.
E’ un po’ come se dei trentenni fossero ancora convinti che i bambini vengano portati dalle cicogne o crescano sotto i cavoli. Non voletemene, ma è purtroppo evidente che molte persone interessate ad avere informazioni sul funzionamento dei motori vengano trattati dai responsabili dei motori stessi come dei fanciulli un po’ tardi e innocenti, da proteggere a tutti i costi dallo stress mentale che accuserebbero se venissero messi di fronte alla fredda realtà tecnica delle cose.
Insomma, oggi ci sono persone che credono che gli spider “seguano” i link perché per veicolare più facilmente il concetto di “spider” è stato deciso di umanizzare un software di crawling attribuendogli metodi di perlustrazione del web analoghi a quelli seguiti dagli esseri umani. Non c’è quindi da stupirsi se in giro c’è un po’ di confusione.
La cruda realtà
Tenetevi forte: i bambini vengono a questo mondo a seguito di un processo chiamato “riproduzione sessuata”. I dettagli non li do, perché sono un po’ scabrosi.
Come se questa prima dirompente rivelazione non fosse già di per sé sufficiente a sradicare violentemente ogni vostra convinzione sul genere umano, aggiungo anche che gli spider dei motori si limitano in realtà a richiedere le risorse sul web estraendole da un gigantesco elenco di URL da scaricare.
Quando uno spider visita una pagina web, estrae da essa gli URL delle risorse linkata dai link nella pagina e li aggiunge (se non li conosceva prima di quel momento) ad un elenco di URL condiviso con altri spider.
Un primo punto da chiarire è che, a differenza di un umano, uno spider non ha un’esigenza immediata a richiedere un URL appena scoperto. Se una persona clicca un link è perché desidera visitare subito la risorsa linkata ma uno spider ha obiettivi diversi nei confronti delle risorse e quindi la richiesta di una risorsa può avvenire anche dopo diverso tempo dalla scoperta del link in cui veniva citata.
Un secondo ed essenziale punto da smarcare è che non sempre è conveniente che una risorsa appena scoperta attraverso un link venga richiesta dallo stesso spider che l’ha individuata. Al contrario, nella logica di crawling distribuito che tutti i motori di ricerca impiegano, l’esercito di spider che si dividono il compito di scaricare risorse dal web viene organizzato in modo che il lavoro sia suddiviso per ridurre il più possibile i tempi ed i costi.
Per esempio, i software di crawling possono essere installati su computer dislocati in punti diversi del pianeta e le richieste di URL possono essere smistate cercando di minimizzare la distanza geografica tra uno spider e la presunta localizzazione geografica del server che ospita la risorsa da scaricare.
Di conseguenza se uno spider dislocato geograficamente in Europa trova un link ad una risorsa presumibilmente ospitata su un server dall’altro capo del pianeta, invece di effettuarne esso stesso la richiesta può limitarsi ad aggiungere l’URL ad un elenco condiviso di richieste da effettuare, che potranno poi essere prese in carico da spider geograficamente più vicini alle risorse da scaricare.
Non tutti i motori di ricerca si comportano in questo modo e la progettazione di un sistema di crawling distribuito è una delle attività più complesse studiate e portate avanti dalla disciplina dell’information retrieval. Anche se le implementazioni sono svariate, tuttavia, la filosofia di distribuzione di carichi e compiti sta alla base di tutti i più sofisticati sistemi di crawling e questo implica che per gli spider non è conveniente “seguire” il link ad una risorsa appena scoperta. Quindi, il fenomeno del “seguire un link” non esiste.
I danni dell’equivoco
La precisazione sul modo in cui gli spider perlustrano il web potrebbe terminare qua se non fosse che nel corso del tempo ho osservato diverse persone implementare regole sui propri server sulla base dell’equivoco.
Questi episodi mi permettono di illustrare una inevitabile conseguenza del fatto che gli spider in realtà non seguono affatto i link, ovvero che non dichiarano (quasi) mai un Referer, cioè l’intestazione di richiesta HTTP adibita a contenere l’URL di una eventuale risorsa di provenienza.
Chi credeva erroneamente che gli spider dei motori seguissero effettivamente specifici link, da una risorsa all’altra, era per conseguenza indotto anche a credere che gli spider presentassero un’intestazione Referer, dichiarando esplicitamente la pagina su cui era presente il link seguito.
Con questa convinzione in animo, ho visto casi in cui alcuni web server erano stati configurati per erogare uno statust HTTP di tipo Forbidden (codice 403) agli spider che dichiaravano la provenienza da specifici URL o siti, con l’obiettivo di far ignorare al motore di ricerca degli specifici backlink.
E’ difficile enumerare con lucidità la quantità di motivi per i quali la suddetta logica è, purtroppo, fallata. Quand’anche gli spider dei motori fossero progettati per seguire i link e quand’anche essi dichiarassero la risorsa di provenienza attraverso l’intestazione Referer, non ci sarebbe ragione di credere che vietando (Forbidden) agli spider di accedere alla risorsa si otterrebbe un effetto positivo.
Presentare agli spider uno status Forbidden su una specifica risorsa, indurrebbe semplicemente il motore di ricerca e de-indicizzare la risorsa stessa, visto che nessun motore vorrebbe includere nelle SERP una risorsa di cui è proibito l’accesso.
Non sarebbe logica nemmeno un’eventuale obiezione che lo status Forbidden sarebbe stato erogato allo spider solo condizionalmente, ovvero solo se lo spider avesse presentato come Referer l’URL di una risorsa linkante indesiderata. Il problema con questo ragionamento è che non tiene conto di una delle caratteristiche principali del protocollo HTTP, ovvero che è un protocollo stateless.
Stateless significa che il protocollo HTTP non possiede il concetto di sessione (un meccanismo per portarsi dietro un contesto comune durante richieste differenti) e che ogni richiesta fa dunque storia a sé.
Come conseguenza, un eventuale status Forbidden erogato da un server dichiarerebbe allo spider una caratteristica della risorsa richiesta (cioè che non è possibile accedervi), non una caratteristica della relazione tra la risorsa ed un’altra che la linka!
Tornando alle conseguenze negative dell’implementazione di un filtro lato server come quello sopra descritto, si può concludere che per fortuna esso si limita ad appesantire un minimo il server, visto che lo status Forbidden verrebbe erogato solo nel caso in cui gli spider presentino un Referer, cosa che non avviene (quasi) mai.
Intermezzo videoludico
Tempo fa avevo creato una breve presentazione proprio sul tema discusso in questo articolo. Era in inglese e l’ho tradotta in italiano, mi è parsa un buon riassunto. Buona visione.
Ma allora che significa follow/nofollow?
Stabilito che gli spider non seguono realmente i link è legittimo chiedersi allora che cosa cavolo significhi l’espressione “following” e, nel dettaglio delle due direttive previste dal Robots Exclusion Standard, quale sia il vero significato di “follow” e “nofollow”.
Vado subito al sodo. La direttiva “follow“, che rappresenta il comportamento di default degli spider e che pertanto è del tutto superflua quando viene inserita esplicitamente in un meta tag ROBOTS, chiede allo spider: “aggiungi tutti i link presenti in questa pagina al link graph”.
Di contro, la direttiva “nofollow” chiede allo spider: “non aggiungere questo/i link al link graph”.
Il link graph è semplicemente la mastodontica mappa di link tra le risorse del web che il motore di ricerca si è costruito durante le proprie perlustrazioni. Quando uno spider individua un nuovo link tra due risorse, fa in modo che nel link graph venga memorizzata l’esistenza di quel collegamento da una risorsa all’altra. Se il webmaster ha dichiarato quello specifico link come “nofollow” allora la memorizzazione di quel collegamento non avviene ed il link graph non viene modificato.
Tutto ciò, come vedete, non è poi così difficile da spiegare o da comprendere. Avrei fatto più fatica a spiegare la riproduzione sessuata.
Link di approfondimento
Distributed web crawling
On the Feasibility of Geographically Distributed Web Crawling [PDF]
Stateless protocol
Riproduzione sessuata
P.S.
Pensavo che sarebbe interessante parlare di argomenti simili in qualche evento. Giusto per dire.
11 Responses to Gli spider non “seguono” davvero i link: un equivoco su follow e nofollow