Schema semplificato del funzionamento dei motori di ricerca: dal crawler all'indicizzazione, fino alla ricerca finale su Internet.

Per quelli di noi che fanno SEO (o aspirano a farlo) sono molti i piccoli dettagli che riempiono le nostre giornate.
L’architettura del server, i reindirizzamenti “301”, gli errori “404”, i title tag e molte altri fattori.

A volte,  ci dimentichiamo di riflettere su cosa significhi tutto questo. Bisogna aggiungere il fatto che la maggior parte di coloro che fanno  SEO non ha mai frequentato un corso teorico o similari, ma ha imparato le regole “sul campo”. Non deve sorprenderci quindi che molti specialisti SEO non sappiano davvero come funzionano i motori di ricerca.

Quand’è l’ultima volta che ti sei seduto ed hai riflettuto su come funzionano realmente i motori di ricerca, come Google ?

Nel mio caso, è stato lo scorso mese, stavo scrivendo un post riguardo il recente raduno dei webmaster di Google, e le discussioni sul rifiuto dei link che ne è conseguito.

Ma prima di quel momento, in tutta onestà, credo che siano passati 8 o 10 anni da quando avevo seriamente pensato a tutto questo.

Perciò,  cerchiamo di rimediare. Quella che segue è una spiegazione approfondita su come lavora un motore di ricerca (Google).
Bing e Yahoo! utilizzano un protocollo simile, tuttavia differiscono leggermente da Google riguardo alla sequenza di alcune operazioni.

Scansione vs Indicizzazione

Cosa significa quando diciamo che Google ha “indicizzato” un sito? Per chi fa SEO, detto in parole semplici, si intende quando un sito appare in una ricerca su Google.
La ricerca ci mostra che le pagine aggiunte al database di Google – tecnicamente – non sono state necessariamente anche scansionate. Questo è il motivo per cui, di volta in volta, è possibile leggere questo messaggio:

Non è disponibile una descrizione per questo risultato a causa del file robots.txt del sito. Leggi ulteriori informazioni.

L’indicizzazione è qualcosa di completamente diverso. Se vogliamo semplificare, basta vederla in questo modo: gli URL devono essere scoperti (crawling) prima di poter essere sottoposti a scansione, e devono essere scansionati (parsing) prima di poter essere “indicizzati” (indexing).  Più precisamente, gli URL devono contenere alcune parole connesse con quelle presenti all’indice di Google.

Il contributo di Enrico Altavilla

Il mio nuovo amico Enrico Altavilla ha descritto tutto ciò in modo talmente esauriente che non penso ci sia altro da aggiungere, perciò mi limiterò a riportare tutto parola per parola:

Un indice (invertito) non contiene documenti, ma un elenco di parole o frasi e,  per ciascuno di essi,  un riferimento a tutti i documenti correlati a quella parola o frase.

Noi abitualmente diciamo “i documenti che sono stati indicizzati”, in realtà questa frase significa “alcune delle parole correlate al documento, ora puntano al documento”. I documenti infatti, nel loro formato .raw, sono archiviati altrove.

Vanessa Fox, mia vecchia amica ed esperta di Google da molto tempo, su questo argomento afferma:

Google impara a riconoscere gli URL… e aggiunge questi URL al suo sistema di registro scansioni. Duplica l’elenco e riordina la lista di URL in ordine di priorità, scansionando poi in quell’ordine. 

La priorità è basata su tanti tipi di fattori… Una volta che una pagina è scansionata,  Google utilizza un altro processo algoritmico per determinare se memorizzare la pagina nel suo indice.

Ciò significa che Google non scansiona ogni pagina che conosce, e non indicizza ogni pagina che scansiona.

Di seguito, una versione semplificata della pipeline che è stata condivisa da Google:

Un altro paio di cose importanti da notare:

– Il file Robots.txt si limita solo a bloccare una pagina dall’essere scansionata. Ecco perché Google talvolta mostra le pagine, nei suoi risultati di ricerca, del tutto simili a quella dell’esempio precedente. Ciò avviene perché anche se Google è stato in grado di associare la pagina con le parole sulla base dei link interni, non è in grado effettivamente di scansionare il contenuto della pagina.

– I comandi “Noindex” (non indicizzare) sul livello della pagina, non sono definitivi. Anche se Google può comunque scansionare la pagina ed associarvi parole della pagina stessa con l’indice, non è ipotizzabile che includa quella pagina nei risultati di ricerca.

Tuttavia,  ho visto casi in cui Google ha incluso una pagina non indicizzata nei propri registri accessibili al pubblico, e Google stessa ha affermato che può ignorare il comando se altri segnali indicano abbastanza fortemente che la pagina deve essere indicizzata. Si tratta di un fattore importante in cui Google si differenzia dal resto.
Yahoo! e Bing infatti rispetteranno i comandi Noindex e non indicizzeranno la pagina, né la includeranno nei risultati di ricerca.

Un’altra cosa importante da notare, è che gli URL canonici, i parametri di esclusione, e vari altri elementi vengono valutati solo nel momento in cui Google impara a conoscere la pagina e, di conseguenza, la scansiona e/o la indicizza.

I link e il grafico dei link

Ulteriore fattore importante da capire per gli operatori SEO, sono i collegamenti (i link) e come vengono elaborati. La cosa più importante da sapere a riguardo è che i link (e, per estensione, il PageRank, ossia il rango che viene attribuito alla pagina dopo essere stata analizzata) non vengono elaborati durante la scansione. In altre parole Google procede con la scansione come sopra indicato, ma il PageRank non viene considerato durante la scansione, viene viceversa  considerato separatamente.

Cosa significa?

  • Il PageRank, nonostante quello che molti potrebbero pensare, non è altro che una misura della qualità e della quantità dei link. Non ha alcuna connessione con le parole riportate sulla pagina.
  • Molti operatori SEO credono che ci siano due elementi del PageRank: a livello di dominio e a livello di pagina. La convinzione è che il PageRank, a livello di dominio, sia ciò che ne determina l’autorità. Un fattore che molti credono venga usato nel decidere come siano classificati i siti. Io ritengo invece che Google probabilmente utilizzi qualche elemento di autorità del dominio, ma questo non è mai stato confermato da Google.
  • Poiché il PageRank viene elaborato separatamente dalla scansione, attributi come “Noindex”, “Disallow” (Non consentire), e blocchi basati sul referer-link (il cosiddetto “link referente” o semplicemente “referente”) non sono utili per fermare lo scorrere del PageRank da una pagina all’altra.
  • Non è possibile controllare il PageRank con nessun tipo di tracciamento basato sul referer-link. In altre parole non si può bloccare un referer con .htaccess (ad esempio) ed aspettarsi che esso si comporti – attraverso Googlebot – come un link nofollow (in altre parole, con attributo Non seguire questo link)
  • Contrariamente alla credenza popolare, un redirect “302” passerà il PageRank senza problemi.

    Le uniche quattro azioni che possono bloccare il movimento del PageRank sono:

  • Una direttiva “nofollow” sul link sorgente.
  • Una direttiva “disallow” nel file robots.txt, sulla pagina dove ha origine il link. Questo funziona perché il comando del file robots.txt blocca la ricerca dall’eseguire la scansione sul contenuto della pagina, pertanto il link non viene mai visualizzato.
  • Un errore “404” sulla pagina originaria.
  • Un errore “404” sulla pagina di destinazione. L’unica ragione per cui i “404” funzionano è che entrambe queste direttive si verificano dalla parte del server. Quando il grafico dei link viene elaborato, quelle pagine sono di nuovo inaccessibili al motore di ricerca. Al contrario, una pagina bloccata per mezzo del file robots.txt può continuare ad accumulare PageRank perché essa – di fatto – esiste, ma non è stata aggiunta all’indice.

Qui c’è lo screenshot della slide condivisa da Google in un meeting di webmaster datato 20 agosto 2012 e descrive questo:

L’unico altro modo di gestire i link difettosi è di rifiutare il link-sorgente. Tecnicamente questa azione ha lo stesso impatto dell’aggiungere un comando “nofollow” al link-sorgente, se Google lo accetta.

Ecco come funziona

Presumibilmente, alcuni passaggi ancora non vi saranno chiarissimi. Ecco un sunto delle cose principali da ricordare:

  • La scansione non è uguale all’indicizzazione
  • Il PageRank è separato dalla scansione
  • Ci sono solo quattro modi per bloccare il movimento del PageRank, e l’unica altra operazione è il comando “Disavow”, ossia rifiutare il link.

 

Cosa ti ha sorpreso di più, in tutto il discorso? Comincio io: stavo lavorando (seguendo un’ipotesi sbagliata) basandomi sul fatto che avrei potuto bloccare un referer-link in .htaccess, al fine di interrompere il movimento del PageRank. Secondo quale presupposto errato avete lavorato voi?

Tante tante grazie ad Enrico Altavilla per il suo prezioso aiuto di supervisione a questo articolo.

Tradotto dall’articolo originale: http://searchengineland.com/how-search-engines-work-really-171556

Open chat
Ciao, come possiamo aiutarti ?