Ciò che realmente Google vede

Per anni i SEO hanno ottimizzato le pagine web sapendo che certi elementi, che fossero testi o link, era valutati maggiormente dai motori di ricerca se inseriti in cima alla pagina.

In realtà, tuttavia, piuttosto che “in cima alla pagina” si è sempre detto “in cima al codice HTML”, perché si è sempre creduto che la comprensione dei motori di ricerca fosse basilare e che per un algoritmo il concetto di “posizione di un elemento all’interno della pagina” dovesse essere necessariamente semplificato in “posizione all’interno del codice”.

Però adesso siamo nel 2011 (beh, per essere precisi sto scrivendo questo post nel 2011) ed è opportuno rivedere le convinzioni che ci siamo portati dietro per anni. Forse c’è una sorpresa.

Instant Preview

Instant Preview è il nome che Google ha scelto per il proprio servizio di miniature (thumbnail) che affiancano i risultati delle ricerche.

Cliccando su una icona a forma di lente di ingrandimento posta a fianco di ciascun risultato, appare uno screenshot della pagina a cui il risultato fa riferimento. La cosa più interessante, però, è che Google riesce ad evidenziare in tempo reale all’interno dello screenshot la zona della pagina web che contiene le parole cercate dall’utente, usando un rettangolo arancione.

Come fa Google a conoscere la posizione del testo cercato dall’utente all’interno della miniatura? E come fa ad evidenziare questa informazione in tempo reale?

Va escluso a priori che venga usato in tempo reale un sistema di riconoscimento dei caratteri (OCR) all’interno dell’immagine, in quanto eccessivamente lento e poco adattabile alla mole di ricerche operate dal motore.

E’ invece molto più probabile che solo in fase di creazione dello screenshot Google provveda ad usare un algoritmo di OCR, per poi conservare in archivio la posizione (X e Y) delle parole visibili sulla pagina.

Ricordate questo punto: la reale posizione delle parole potrebbe essere archiviata.

In fase di visualizzazione all’utente Google mostra l’immagine e, partendo dalle posizioni delle parole all’interno dello screenshot (che deve conoscere già), calcola la posizione e la dimensione che il rettangolo dovrà avere e lo sovraimpone all’immagine attraverso una funzione JavaScript.

La precisione del calcolo delle posizioni

Da qualche evidenza, ho l’impressione che le posizioni memorizzate non facciano riferimento alle singole parole ma ad intere frasi o paragrafi. Avrebbe anche un senso in termini di ottimizzazione delle risorse a disposizione del motore di ricerca.

Vi invito a dare un’occhiata all’immagine che segue. Nel mio articolo sul funzionamento dell’algoritmo Panda, è presente in cima l’immagine di un Panda accompagnata da una didascalia che recita “Never say no to Panda!”. Questo testo è in cima al codice HTML (sopra il primo paragrafo di testo del post) ma visivamente mostrato sotto l’immagine, ovvero più in basso e a destra rispetto all’inizio del testo dell’articolo.

Screenshot di Instant Preview

Si noti il perimetro corretto del rettangolo arancione

Cercando su Google [site:www.lowlevel.it “never say no to panda”], il rettangolo che evidenzia la posizione del testo all’interno della pagina racchiude correttamente la frase cercata e anche i primi paragrafi di testo che, nel codice, la seguono.

La precisione con la quale il rettangolo racchiude i testi cercati è notevole e la differenza di posizione (fisica e visuale) viene gestita bene.

La gestione dei testi nascosti

Il prossimo passo per comprendere dove possa arrivare la bontà del sistema di riconoscimento di Google è quello di tentare di capire come si comporta nei confronti dei testi invisibili, anche quelli semplicemente “a comparsa” che popolano il web (si pensi a menu di navigazione o a testi mostrati attraverso effetti AJAX).

La ricerca [site:www.plus2net.com/javascript_tutorial/hide-layer2.php “message box”] mostra un Instant Preview di una pagina nella quale il testo “Message Box” è presente ma invisibile di default.

La miniatura prodotta da Instant Preview è ritagliata in modo tale da indurre a credere che il testo invisibile non concorra a definire il perimetro dello screenshot da effettuare. Altre ricerche hanno mostrato che la zona in cui risiede un testo invisibile di default non viene mai evidenziata col rettangolo arancione, a far intendere che il riconoscimento dei testi avviene tenendo conto di eventuali layer non visibili.

Una riprova della bontà del sistema giunge dall’analisi della ricerca [site:www.easywayserver.com/blog/javascript-show-hide-layers-in-html/ “demo” “layer 1” “layer 2” “layer 3”], che mostra il testo cercato in quanto visualizzato di default sulla pagina, benché teoricamente nascondibile dall’utente cliccando su alcuni pulsanti.

Congetture finali

A quanto pare Google possiede la tecnologia per sapere in tempo reale (durante una ricerca) se i testi cercati dall’utente sono visivamente presenti sulla pagina, facendo uso di un algoritmo di riconoscimento e, con tutta probabilità, di un sistema che prevede l’immagazzinamento di informazioni sulla reale visibilità e posizione dei testi.

Quanto diffusamente potrebbe essere applicato questa analisi ai miliardi di pagine web perlustrate dal motore di ricerca? A questa domanda risponde Google stesso su questa pagina dedicata ad Instant Preview:

In general, Google updates the Instant Preview snapshot as part of our web crawling process. When we don’t have a cached preview image (which primarily happens when we can’t fetch the contents of important resources), we may choose to create a preview image on-the-fly based on a user’s request.

Per quanto non si possano trarre conclusioni certe, a mio parere si rafforza l’idea che la tecnologia per dare peso a ciò che realmente viene mostrato agli utenti esista e possa essere già applicata in maniera estesa.

3 Responses to Ciò che realmente Google vede

  1. Filippo Toso scrive il 12 April 2011 at 09:28

    Piuttosto che l’utilizzo di un OCR ritengo più probabile che Google utilizzi un motore di rendering (es. “a Safari / Webkit-based browser”) e si affidi al DOM per estrarre le coordinate del “rect” relativo al tag al cui interno ci sono le stringhe ricercate.

    Analizzando un limitato numero di preview ho notato come i rettangoli siano sempre relativi allo spazio occupato dal div, p o altro tag che racchiude la stringa e non sono relativi alla sola frase (es. che terminerebbe al primo “punto”).

    Tutto questo IMHO ovviamente.

    • LowLevel scrive il 12 April 2011 at 09:36

      Ciao Filippo, credo che tu abbia proprio ragione. Oltre a semplificare di molto l’individuazione della posizione dei testi, affidarsi al DOM permetterebbe di bypassare in un sol colpo tutte le difficoltà tipiche dell’OCR. Anche certi “ritagli di fino” del rettangolo, compreso l’esempio nello screenshot nell’articolo, si spiegherebbero in questo modo. Grazie del contributo! 🙂

  2. Andrea moro scrive il 13 April 2011 at 09:57

    E questo spiegherebbe perché ultimamente google si fa una bella GET di tutta la pagina per sempre più pagine del sito.

    Deve tenere traccia di cosa proporre.

Leave a Reply

Your email address will not be published. Required fields are marked *

More in Just SEO
Come funzionano Panda e Google: gli aspetti tecnici

Per chi ha seguito l'evolversi degli algoritmi di Google nel corso degli anni, Panda rappresenta una rivoluzione sotto molti aspetti....

Close