Partiamo come sempre dalle cose semplici: cos’è un motore di ricerca? È un sistema automatico che analizza un insieme di dati (spesso da lui stesso raccolti) e che restituisce un indice dei contenuti disponibili, classificandoli in base a formule matematiche che ne indichino il grado di rilevanza rispetto a una determinata chiave di ricerca.
In pratica io cerco qualcosa e lui mi dice dove sta questo qualcosa.
Google è un sistema davvero enorme. Conta 23 data center nel mondo e viene bombardato con circa 90.000 query ogni secondo. Ci pensate? Ogni singolo secondo che Iddio mette in Terra ci sono novantamila ricerche su Google.
E non è tutto: circa il 17% delle ricerche quotidiane sono nuove (Google non le ha mai viste) e quindi deve fare molto lavoro in più per soddisfarle. Ed è un dato interessante anche il fatto che il 60% (ma sono in vertiginosa ascesa) di queste ricerche siano effettuate da smartphone: ci siamo già capiti, il mobile è determinante.
Il famoso “algoritmo” ovvero il macello di parametri secondo i quali Google riordina i risultati e li presenta all’utente non è scritto nella pietra ma cambia continuamente, subisce anche cinque o sei modifiche al giorno.
Ma come siamo arrivati a queste cifre da capogiro? Beh, è stata una crescita graduale con qualche momento miliare di cambiamento.
Per esempio, nel maggio del 2007 fu il turno della Universal Search e la SERP principale di Google iniziò a mostrare, oltre ai risultati standard, anche immagini, prodotti, news, video etc.
Nel 2012 arriva invece Knowledge Graph e Google, invece di basarsi solo sulle keyword, inizia a lavorare sulle entità. Il Knowledge Panel (l’abbiamo già citato) è il riquadro a destra che dà le informazioni su un luogo, una cosa o una persona. Prendi per esempio la data di nascita o di morte di un pittore etc.
Fra il 2018 e il 2019 sono poi nati Google Discover (talvolta definito come un social senza amici, con proposte basate sui tuoi interessi) e Google Shopping (per trovare il prezzo migliore di qualcosa sia online sia offline).
Nel dicembre 2020, Google Maps diventa in pratica un social media aggiungendo alle proprie già ricche funzioni anche le recensioni, gli articoli, i prodotti, i post etc. Si dice infatti che dal 2020 Google sia diventato sempre meno un motore di ricerca e sempre più un ecosistema dato che comprende anche un gran numero di altre risorse come Android, Google Home con gli Assistant, la domotica etc.
Ovviamente le pubblicità, introito da circa 55 miliardi di dollari all’anno per Google, seguono questo trend di espansione e di ramificazione e si adattano per i vari settori di questo ecosistema, gli short video ne sono un ottimo esempio.
Come si usa Google
Prima di passare al funzionamento di Google “lato Google” vorrei ricordare il funzionamento di Google “lato utente” che non è così scontato. Mi fa ridere vedere gente che sragiona di SEO senza conoscere gli operatori base, ecco per voi un fantastico ripassino non richiesto.
- Puoi usare le virgolette per fare in modo che i termini che stai cercando siano presenti nei risultati esattamente nell’ordine desiderato: cercare “alighieri dante” o “dante alighieri” non è affatto la stessa cosa, provate a cercare il vostro nome e cognome e vedrete le differenze.
- Puoi usare un OR logico nelle tue ricerche. Per esempio, cercando “alighieri dante” | “divina commedia” (oppure separandoli con “or”) troverai risultati che contengono uno dei due termini o entrambi i termini).
- L’operatore AND non si usa più, è diventato implicito. Se cerchi “dante alighieri” “divina commedia” otterrai automaticamente i risultati che contengono entrambe le espressioni.
- Per l’operatore NOT, ovvero per escludere uno o più termini dai risultati, si usa il trattino. Per esempio, cercando “divina commedia” -alighieri troveremo risultati che contengono “divina commedia” ma che non contengono il termine alighieri. Si possono usare anche per più termini insieme come per esempio -“dante alighieri”.
- Si può usare un asterisco come wildcard, per esempio quando sappiamo che fra due termini ce n’è un altro ma non ci ricordiamo quale. Cercando “andrew * webber” trovo risultati per Andrew Lloyd Webber e nella SERP viene visualizzato in grassetto, sintomo che lo zio Google ha capito cosa ho cercato e come l’ho cercato.
- Per cercare all’interno di un solo dominio si può usare site, un operatore molto utile. Per esempio site:rebusmultimedia.net web cerca il termine web solo nel mio sito. Provate anche roba tipo iphone site:.edu in modo da cercare un termine (iphone) solo in siti con un certo TLD (.edu). È importante ricordarsi che l’operatore “site:” non serve solo a vedere quante pagine di un certo dominio sono state indicizzate ma anche quali: talvolta sono rimasto stupito di come alcune pagine di un vecchio WordPress (che era stato bucato anni prima) fossero ancora presenti nell’indice di Google, magari influenzando in modo negativo la rispettabilità del sito.
- Si può fare una ricerca con l’operatore related in modo da vedere siti simili a quello cercato, provate per esempio related:amazon.it
- È possibile visualizzare la copia cache di una certa pagina per sapere quando è stata visitata l’ultima volta dal bot di Google, potete per esempio provare cache:amazon.it
- Si possono cercare anche gli hashtag. Un esempio potrebbe essere #shotoniphone site:twitter.com
- Per trovare solo le pagine che contengono determinate keyword nel titolo si può usare l’operatore intitle come nell’esempio intitle:iphone -apple (per cercare singoli termini) oppure l’operatore allintitle come nell’esempio allintitle:iphone market -contatti (per cercare intere frasi).
- Esistono anche gli operatori inurl e allinurl che consentono di cercare le keyword nell’URL della pagina. Provate ad esempio allinurl:nuovo documento di testo. Oppure site:rebusmultimedia.net inurl:http (per cercare pagine non sotto HTTPS in un certo dominio)
- Particolarmente utile risulta per me l’operatore filetype che permette di cercare solo determinati tipi di file come risultato. Provate per esempio iphone manual filetype:pdf
Ora che abbiamo ripassato gli operatori, passiamo al motore.
Per capire come funziona Google, è opportuno suddividere la questione in tre fasi distinte: crawling, indicizzazione e SERP.
Google Crawling 1/3
Iniziamo dalla fase di crawling, la scansione ovvero cercare nuovi URL.
Esistono molti tipi di crawler: per i motori di ricerca, per analytics, per trovare malware, per trovare violazioni di diritto d’autore etc. ed esiste un Googlebot per le immagini, uno per i video, uno per news etc…
Il sistema di crawling non si limita a trovare i contenuti ma ha diverse capacità come ad esempio individuare i duplicati, distributed crawling, crawling priority, politeness etc.
Ricordiamoci che esistono circa 2 miliardi di siti (almeno nel 2022) e che circa il 60% di questi è davvero attivo quindi siamo nell’ordine dei 200 PB di dati da dover stoccare, anzi oltre.
Dovete sapere che “anticamente” (cioè intorno al 2000) Google faceva crawling per un mese, poi indicizzava per una settimana e alla fine creava i dati di output per un’altra settimana. Era decisamente un processo lunghissimo e la famosa “Google Dance” avveniva perché a seconda del data center che ti dava la risposta poteva essere aggiornato o no e quindi i risultati cambiavano continuamente.
Dal 2003 Google è passato a fare crawling delle parti più importanti del web ogni giorno, continuamente, in modo incrementale. Gli spider portano il contenuto, trovato/scoperto seguendo anche i link e il loro comportamento (come ben sapete) è regolato dai file robots.txt
Spieghiamo un po’ di robaccia tecnica, giusto perché abbiate un’idea di massima di ciò che succede per fare il crawling del web. Esiste una cosa di nome Url Frontier che è una struttura il cui lavoro è fornire gli URL al fetcher, in pratica gestisce la coda degli indirizzi da visitare.
Crawling 2/3
Che cosa fa per vivere un fetcher? Passa gli URL al proprio DNS Resolver (vedi il relativo capitolo e stupisciti: sì, ce l’hanno in casa) che gli fornisce l’indirizzo IP e così può ottenere la risorsa richiesta. La pagina viene salvata in archivi (non db relazionali ma NoSQL o meglio ancora Amazon S3 o Google Bigtable) e in db cache tipo Redis.
Generalmente la Url Frontier è suddivisa in front queue (dove gli URL possono arrivare senza un ordine preciso) e back queue (dove ogni coda si occupa di un solo dominio).
L’Url Frontier è responsabile di molte cose fra cui:
- Priority = È un URL importante? Ogni quanto tempo viene analizzato quell’URL? I siti statici o che non vengono aggiornati spesso, hanno in genere una Priority bassa. Se ne occupa la front queue.
- Politeness = Quanto tempo deve passare fra il fetching di un URL e un altro? Questo serve per non mettere a dura prova i server e per consumare meno risorse possibile. Di questo aspetto se ne occupa la back queue.
Altri aspetti da tenere presente sono:
- Updates = Come decidere se una pagina è da prendere o no? A volte baste fare una richiesta head e confrontare il “last modified”.
- Duplicates = Come capire se è un duplicato? Confrontare parola per parola è praticamente impossibile. Invece si possono confrontare gli hash (ma funziona solo con copie identiche) o usare appositi algoritmi come Simhash dopo aver ripulito da termini inutili come le stopword per rilevare i possibili sospetti duplicati.
Crawling 3/3
In seguito, si estraggono gli URL dalla risorsa per continuare il crawling: l’URL trovato porta a un’altra parte della stessa pagina? O porta a un’altra pagina dello stesso sito? Oppure di un sottodominio? O a un altro sito? Questo altro sito è già stato preso in considerazione in passato?
Tecnicamente non segue proprio i link come faremmo noi ma li aggiunge a quelli da visitare. E diciamo che per il crawling abbiamo detto (male e in modo un po’ confusionario) le cose fondamentali.
Google Indicizzazione 1/2
Passiamo adesso alla fase di indicizzazione vera e propria ovvero aggiungere le pagine all’indice di parole.
Come può Google restituire tutti quei risultati in così poco tempo? Beh, tanto per cominciare perché tecnicamente non cerca nel web e nemmeno nel proprio contenuto ma nel proprio indice.
In realtà quando un utente effettua una ricerca, si invia tale query a centinaia di diversi server che cercano all’interno del proprio indice, che riguarda una parte del web.
Va poi creato un reverse index: in pratica non indicizza i documenti ma le parole e dice in quali documenti si trovano.
Per arrivare alle singole parole, si procede a “ripulire” il contenuto dalle stopword che non servono (alcuni esempi in inglese possono essere I, me, my, you, the etc.), si toglie la punteggiatura, si tolgono i link, gli hashtag. Poi si passa alla fase stemming/lemmatization (per esempio in inglese le parole trouble, troubling, troubled diventano trouble).
Il risultato viene messo nell’indice e poi si marcano i file/pagine dove è presente per restituire un risultato alla ricerca.
Se la query è con “and” risulta ovviamente rilevante anche la posizione nella quale si trovano le parole (per esempio se cerco ‘quick brown fox’, se le trovo in quell’ordine il risultato sarà più rilevante rispetto a quando le trovo nell’ordine ‘fox quick brown’.
Per trovare rapidamente i termini si usa la binary search che, semplificando molto, in pratica arriva a metà dei dati e poi cerca andando a metà dei dati rimanenti e così via.
Indicizzazione 2/2
Per essere precisi, la fase di indicizzazione è composta da due “ondate”: la prima (first wave of indexing) avviene prima della renderizzazione mentre la seconda (second wave) avviene anche dopo giorni, con il contenuto già renderizzato, per riconsiderarlo completo di Javascript etc.
È importante anche capire come Google analizza le ricerche, classificandole in quattro macrocategorie:
- Visit In Person: stai cercando un bar, un ristorante, un gommista? Probabilmente pensi di andarci fisicamente e quindi Google mostrerà per esempio risultati mobile.
- Website Query: cerchi un login online, una diretta di un evento da un sito etc? Allora vuoi trovare un sito e quindi Google ti mostrerà risorse online.
- Do Query: cerchi un hotel o un oggetto da comprare? Vuoi compiere un’azione e quindi Google ti mostrerà prodotti e servizi.
- Know Query: vuoi sapere quando è nato Dante o la definizione di un certo termine? Google allora ti mostrerà le risposte. Di questo tipo ci sono due tipi di query: Know Simple Query che sono ricerche con risposte semplici e concise (esplicita “quanti anni ha Steven Wilson?” o implicita “età Steven Wilson”) e la Know Query che sono ricerche con risposte più complesse (per esempio una ricerca come “romanticismo” oppure “America”).
Ovviamente verranno considerate anche secondo i need met (ovvero quanto soddisfa la ricerca) e si può andare dall’ottimo “fully meets” fino al pessimo “fails to meet”, per esempio se la pagina non è mobile friendly, se il suo contenuto non risponde pienamente alla ricerca, se il titolo o il corpo dell’articolo non contengono la keyword cercata, se si tratta di un articolo particolarmente vecchio o superato, se il testo è stato scritto senza una particolare competenza etc.
Google Risultati
E adesso basta con l’indicizzazione, passiamo ai risultati. L’ultimo aspetto da conoscere è infatti quello della SERP (Search Engine Results Page) ovvero della restituzione dei risultati per la query eseguita dall’utente.
Normalmente dovrebbe rispondere il data center più vicino a chi ha fatto la query. I risultati vengono restituiti in un ordine che viene stabilito tenendo conto di oltre 200 diversi parametri. Questi parametri rientrano in diverse categorie: dominio, pagina, sito, backlink etc.
Tutte le pagine inizialmente pertinenti (ovvero che contengono ciò che è stato cercato) vengono filtrate per lasciare solo quelle realmente pertinenti (ovvero quelle che contengono la keyword nel titolo, negli H1, H2, nel corpo della pagina), che magari hanno anche elementi multimediali e che sono scritte nella stessa lingua della query.
Voglio concludere ricordando che sentiamo spesso parlare di intelligenza artificiale, machine learning e di come quel famigerato algoritmo “ragioni” da solo ma ci sono alcune cose da tenere a mente:
- Gli esseri umani insegnano alla macchina quali sono i fattori da considerare importanti.
- Gli esseri umani danno in pasto un’enorme mole di dati per insegnare cos’è un risultato “buono” e cos’è un risultato “meno buono”.
- Gli esseri umani creano e amministrano queste piattaforme.
Queste considerazioni sono valide per qualunque cosa, motori di ricerca compresi; i risultati delle analisi effettuate dai rater umani vengono costantemente reinseriti in modo che la macchina adatti le proprie valutazioni e possa migliorare nel tempo. Vale per Google ma vale anche per Bing, mi raccomando: non pensiamo che dietro ci sia il “cervellone elettronico che fa tutto da solo”.
Altre fonti
Ultima cosa e poi smetto: lascio qui una serie di siti che riuniscono fonti interessanti. È vecchiotta, non ricordo a chi l’ho rubata e qualche URL è ancora in HTTP (vedi prossimo capitolo) ma magari vi fa comodo.
- RefSeek – Un motore di ricerca per risorse accademiche. più di un miliardo di fonti: enciclopedie, monografie, riviste.
- WorldCat – Una ricerca del contenuto di 20.000 biblioteche mondiali. Scoprirai dove si trova il libro raro più vicino di cui hai bisogno.
- Springer Link – Accesso a oltre 10 milioni di documenti scientifici: libri, articoli, registri di ricerca.
- Bioline International – È una biblioteca di riviste scientifiche sulla bioscienza pubblicata nei Paesi in via di sviluppo.
- RePEc – Volontari provenienti da 102 Paesi hanno raccolto quasi 4 milioni di pubblicazioni su economia e scienze correlate.
- Science.gov – È un motore di ricerca statunitense per oltre 2200 siti scientifici, più di 200 milioni di articoli sono indicizzati.
- BASE (Bielefeld Academic Search Engine) – È uno dei potenti siti di ricerca di testi accademici: oltre 100 milioni di documenti scientifici, il 70% è gratis.
Tratto da “Prontuario semiserio di Digital Marketing” di Lamberto Salucco
Link per l’acquisto (e-book o cartaceo) su Amazon





