Google Hilltop

Hilltop è un algoritmo di ordinamento che permette di assegnare ai documenti un punteggio di “autorevolezza” relativo a specifici argomenti, e migliorare in molti casi gli ordinamenti basati sull’analisi del contenuto e, per esempio, sul PageRank.

Quando gli utenti interrogano i motori di ricerca su argomenti molto popolari i motori restituiscono generalmente un grande numero di documenti. Ordinare questi documenti può essere un grosso problema per degli algoritmi che si limitano ad analizzarne il contenuto, perché, diversamente da quanto accade nel campo dell’information retrieval classica, dove si suppone che tutti i documenti provengano da fonti autorevoli, nel web esiste una grossa percentuale di SPAM, ovvero documenti che sono scritti appositamente per avere un buon posizionamento nei motori di ricerca ma che presentano un contenuto di bassa utilità per l’utente finale. Anche quando non c’è un tentativo deliberato di ingannare i motori di ricerca, i loro indici sono affollati da un grande numero di documenti di qualità estremamente variabile e difficili da ordinare.

Quello che ho appena scritto non è un opinione personale, ma il riassunto dell’introduzione di una pubblicazione del 2002 di Krishna Bharat, un ingegnere di Google, noto fra le altre cose per essere il creatore di Google News.

In response to a query, a search engine returns a ranked list of documents. If the query is about a popular topic (i.e., it matches many documents), then the returned list is usually too long to view fully. Studies show that users usually look at only the top 10 to 20 results. However, we can exploit the fact that the best targets for popular topics are usually linked to by enthusiasts in the same domain. In this paper, we propose a novel ranking scheme for popular topics that places the most authoritative pages on the query topic at the top of the ranking. Our algorithm operates on a special index of “expert documents.” These are a subset of the pages on the WWW identified as directories of links to non-affiliated sources on specific topics. Results are ranked based on the match between the query and relevant descriptive text for hyperlinks on expert pages pointing to a given result page. We present a prototype search engine that implements our ranking scheme and discuss its performance. With a relatively small (2.5 million page) expert index, our algorithm was able to perform comparably on popular queries with the best of the mainstream search engines.

Khrisna Barat aveva già pubblicato interessanti studi, per esempio riguardo alla distillazione del topic di un documento (Improved algorithms for topic distillation in a hyperlinked environment.) ed alla realizzazione di vettori di termini (The Term Vector Database: fast access to indexing terms for Web pages).

Nel 2002, insieme a George A. Mihaila (altro “geniaccio” di cui riparlerò) pubblica “When experts agree: using non-affiliated experts to rank popular topics”. Questa pubblicazione analizza il problema sopra indicato e tenta di trovare una soluzione efficiente.

Per prima cosa vengono analizzati gli approcci usati precedentemente per tentare di risolvere il problema, fra questi vi è un accenno specifico al PageRank, del quale individua un limite specifico nel “non poter distinguere fra pagine autorevoli in generale e pagine autorevoli relativamente all’argomento della ricerca. In particolare un sito autorevole in generale può contenere una pagina che soddisfa una certa query ma che non è autorevole rispetto all’argomento”.

In altre parole un sito che tratta, per esempio, di animali domestici può essere molto popolare ed avere un alto PR. Molto probabilmente questo PR proviene da link di altri siti che trattano lo stesso argomento e lo consigliano come approfondimento ai propri utenti, un consiglio valido e fondato quindi. Ma se in quello stesso sito ci fosse una sola pagina che trattasse di auto da corsa, non significherebbe che i siti che lo consigliano intendano raccomandare anche la lettura di quella pagina. Eppure in virtù del PR del sito, se ben inserita nella struttura dei link, questa pagina avrebbe buone possibilità di posizionarsi per ricerche riguardanti le auto da corsa.

L’approccio “Hilltop” si basa, come quello del PageRank, sull’assunto che la qualità e la quantità dei link che puntano ad un documento è un buon indice della qualità del documento, la differenza è che Hilltop considera solo i link provenienti da specifici documenti ritenuti “esperti” relativamente alla ricerca effettuata dall’utente, “documenti creati con lo specifico scopo di dirigere le persone verso le risorse”. Quando viene eseguita una query, l’algoritmo Hilltop per prima cosa individua una lista dei documenti “esperti” più rilevanti per l’argomento, poi all’interno di questi seleziona i link più rilevanti rispetto alla query e seguendo questi individua le pagine da posizionare. Queste pagine sono poi “ordinate secondo il numero e la rilevanza di esperti non affiliati che puntano ad esse. Così il punteggio di una pagina riflette l’opinione collettiva dei migliori esperti indipendenti dell’argomento della query”.

E’molto importante capire che questo tipo di algoritmo funziona solo in presenza di un numero sufficiente di “documenti esperti”, cosa che in generale capita per argomenti molto popolari, dove esistono molti siti web che compilano liste di risorse a tema. D’altra parte i webmaster dei siti, in generale, cercano di pubblicare liste di link aggiornate e complete per aumentare la loro popolarità e la loro influenza nella comunità web interessata ad un certo argomento.

Per interrogazioni che non permettano di individuare una lista di documenti esperti ritenuta sufficiente l’algoritmo Hilltop semplicemente non viene utilizzato, ma questo non è un grosso limite, perché viene specificato chiaramente che l’algoritmo serve a migliorare l’accuratezza delle query sulle quali viene applicato e non è assolutamente necessario che venga utilizzato per tutte quelle eseguite dagli utenti. D’altronde Hilltop ha maggiori possibilità di funzionare bene in presenza di un elevato numero di siti attinenti alla ricerca effettuata, proprio la situazione in cui l’analisi del contenuto si rivela insufficiente.

E’ molto probabile che questo algoritmo sia già utilizzato da Google fin dall’update Florida, del 2004, quello in cui ci fu un vero e proprio terremoto nelle serp (pagine dei risultati). Il fatto che venga applicato soltanto alle ricerche più “popolari” spiegherebbe anche un certo comportamento di Google, che per le ricerche con un basso numero di risultati sembra tendere a dare maggior peso all’analisi dei contenuti. Nei prossimi due articoli vedremo in dettaglio come Hilltop seleziona i documenti esperti e come assegna il punteggio di “Autorevolezza” ai documenti che restituisce come risultato.

Hilltop: la selezione dei documenti esperti

L’algotitmo Hilltop di Google ordina i risultati delle ricerche in base al numero ed alla qualità di link provenienti da documenti esperti. Vediamo come vengono selezionati questi documenti.

Il requisito fondamentale di un “documento esperto” è che esso deve contenere numerosi link che puntino a pagine correlate alla ricerca eseguita dall’utente e che non siano affiliate fra loro. Quindi per prima cosa l’algoritmo Hilltop deve saper distinguere quando due siti diversi appartengono alla stessa organizzazione. Hilltop giudica due siti affiliati fra loro quando si verifichi almeno una delle due seguenti circostanze:

– I due siti dividono gli ultimi tre ottetti di un indirizzo IP (stessa classe C)
– La sezione più a destra e non generica del nome del dominio è la stessa.

In generale le aziende, e specialmente le grandi aziende possiedono i server sui quali risiedono i loro siti. Quindi se esse posseggono più siti questi condivideranno lo stesso indirizzo, oppure avranno indirizzi vicini, dal momento che gli indirizzi vengono assegnati in tranche alle varie organizzazioni che ne fanno richiesta.

Le tranche in cui vengono assegnati gli indirizzi IP possono però essere anche molto più piccole di quelle considerate da Hilltop come soglia di affiliazione, infatti le ultime tre cifre contengono effettivamente 256 indirizzi IP, ma attraverso un artificio tecnico chiamato Subnet Mask, ad una organizzazione ne possono venire assegnati anche molti meno, per esempio 16, ed in questo caso Hilltop potrebbe considerare affiliate 16 organizzazioni che in realtà non lo sono.

Addirittura molti servizi di hosting economici usano lo stesso server ed un solo indirizzo IP per ospitare decine e decine di siti e domini diversi.

Di conseguenza, durante la selezione dei documenti esperti Hilltop potrebbe scartarne alcuni perché contengono link che puntano a pagine che vengono rilevate come affiliate. Tuttavia questo è ritenuto accettabile, perché se viene comunque individuato un numero sufficiente di documenti esperti ci sarà in questo caso la certezza o quasi che siano realmente imparziali e che contengano link a pagine ritenute sinceramente valide.

La condizione di affiliazione che riguarda il nome del dominio, invece, adotta la convenzione di considerare “sezioni” di questo le parti delimitate dai punti e di considerare come generiche, e quindi ignorare, le parti che si ripetono identiche in un grande numero di siti, come per esempio “.it”, “.co.uk”, “.com” ecc.

Per esempio comparando “www.ibm.com” e “www.ibm.co.mx” vengono ignorati i suffissi “.com” e “.co.mx”, per cui le sezioni più a destra, delimitate da un punto risulteranno essere “ibm” in entrambi i casi e i due siti saranno considerati affiliati.

La relazione di affiliazione è inoltre transitiva, per cui se i siti A e B sono rilevati come affiliati ed i siti B e C sono rilevati come affiliati, allora i siti A e C saranno considerati affiliati anche senza ulteriori “prove a carico” del fatto.

Prima ancora di selezionare i documenti esperti viene costruito uno specifico indice di affiliazioni fra i vari siti, dove a tutti quelli che vengono ritenuti affiliati, in base ai criteri già specificati, viene assegnato uno stesso codice identificativo. Questo indice viene usato per verificare velocemente l’affiliazione fra due siti: se hanno lo stesso codice sono affiliati, altrimenti non lo sono.

Dopo aver creato l’indice delle affiliazioni viene creato un nuovo indice, quello dei documenti esperti. Questo indice viene ricavato analizzando il database principale del motore ed estraendone i documenti che vengono considerati buone sorgenti di link tematizzati.

Per prima cosa vengono considerati i documenti che hanno un numero di link in uscita superiore ad una determinata soglia, diciamo, per esempio, 5 link in uscita. Dopodichè i link in uscita di tutti i documenti vengono confrontati con l’indice delle affiliazioni. Se risulta che i 5 link puntano a 5 siti non affiliati il documento è considerato un documento esperto. Anche un certo tipo di formattazione “regolare del documento”, stile directory per intenderci, può avere del peso nell’aiutare l’algoritmo a capire che il documento è una vera lista di risorse.

Infine se nell’indice di partenza del motore è memorizzata una classificazione di massima dell’argomento trattato dai documenti indicizzati (come per esempio arte, sport, scienza ecc.) può essere anche posta la condizione che la maggior parte o tutti i link in uscita del documento esperto debbano puntare a documenti che condividano la stessa classificazione di argomento.

Vedremo ora come vengono indicizzati i documenti esperti e come vengono assegnati i punteggi ai documenti restituiti agli utenti.

Hilltop: ordinamento dei risultati

Quando viene eseguita una ricerca, Hilltop estrae dal suo indice dei documenti esperti quelli rilevanti e li utilizza per individuare ed ordinare i documenti che restituisce all’utente finale.

Nella fase d’analisi dei documenti esperti, l’algoritmo Hilltop esamina solo alcune parti di essi, parti che nel gergo specifico di questo algoritmo sono chiamate “frasi chiave”. Le “frasi chiave” di Hilltop non hanno niente a che vedere con le parole o le frasi digitate dagli utenti per effettuare una ricerca. La definizione di “frase chiave” nell’ambito di Hilltop è “una parte di testo che qualifica uno o più link in uscita”.

I documenti esperti contengono, come abbiamo visto nel precedente articolo, numerosi link in uscita: Hilltop associa ad ognuno di essi alcune “frasi chiave” presenti in specifiche parti della struttura del documento.

I documenti esperti sono inseriti in uno speciale indice inverso organizzato per keyword, nel quale esiste un record per ogni associazione fra una keyword ed una “frase chiave” di un documento esperto. Per ognuno di questi record è memorizzato anche il tipo di “frase chiave” (tag title, intestazione, ecc.) e la prominenza della keyword all’interno della frase.

Quando l’utente esegue una ricerca, l’algoritmo seleziona una lista di documenti esperti rilevanti rispetto ad essa (nell’esperimento relativo alla pubblicazione in esame la lista era composta di 200 documenti esperti). Per essere considerato rilevante rispetto ad una ricerca, il documento esperto deve contenere almeno un link che abbia tutte le parole della ricerca nelle “frasi chiave” che lo qualificano.

Ai documenti esperti viene assegnato un punteggio basato sul numero e sul tipo di “frasi chiave” (tag title, intestazione, ecc.) contenenti le keywords della ricerca. Nell’assegnamento del punteggio sono considerate soltanto le “frasi chiave” che contengono quasi tutte le keyword e viene tenuto conto anche della percentuale di testo che le keyword rappresentano all’interno di ogni frase. I duecento documenti con punteggi più alti vengono scelti come documenti esperti per la ricerca in questione.

A questo punto l’algoritmo Hilltop esamina tutti i documenti a cui puntano i link contenuti negli esperti selezionati ed estrae tutti quelli che ricevono un link da almeno due esperti non affiliati fra loro (ed ovviamente neppure con il documento in esame). Questi documenti sono definiti “bersagli”, e sono quelli che saranno ordinati nei risultati che verranno forniti agli utenti.

Ogni associazione fra una “frase chiave” contenuta in un esperto e un documento “bersaglio” trasmette a quest’ultimo un punteggio proporzionale a quello del documento esperto ed al tipo di “frase chiave” (tag title, intestazione, ecc.). Se due documenti esperti affiliati puntano allo stesso “documento bersaglio” il punteggio di uno dei due, per la precisione di quello più basso, non viene conteggiato.

Ai “documenti bersaglio” viene assegnato un punteggio uguale alla sommatoria dei punteggi ricevuti dai documenti esperti. I risultati vengono infine ordinati combinando i punteggi dell’algoritmo Hilltop e quelli ottenuti dall’analisi dei contenuti dei “documenti bersaglio“.

Sono state eseguite prove di confronto fra i risultati forniti dall’algoritmo Hilltop e quelli forniti da tre motori di ricerca commerciali: Altavista, Direct Hit e Google (prima che assumessero Khrisna Barat, l’inventore dell’algoritmo). I risultati sono stati esaminati da giudici esterni che non sapevano quale lista appartenesse a quale motore. I test hanno evidenziato una capacità di Hilltop pari o migliore degli altri motori di ricerca nel generare una prima pagina di risultati contenente siti molto rilevanti. E’ anche probabile che le prestazioni di Hilltop siano estremamente migliorate al momento della sua integrazione in Google, grazie all’’ampio indice di documenti ed ai sofisticati algoritmi di analisi del contentuto che ha potuto sfruttare.

Se vuoi leggere tutto il paper su Hilltop lo trovi qui: http://ftp.cs.toronto.edu/pub/reports/csrg/405/hilltop.html

Guida posizionamento sui motori di ricerca 2005

Una breve guida al posizionamento sui motori di ricerca, rivolta a programmatori o webmaster, neofiti di motori di ricerca, che intendono apprendere le linee guida per il posizionamento di un sito internet sui motori di ricerca.

l posizionamento sui motori di ricerca di un sito internet nasce dall’esigenza di “dare visibilità” al tuo sito attraverso i motori di ricerca e incrementarne traffico e visitatori.

Il posizionamento sui motori di ricerca si persegue cercando di associare alcune “parole chiave”, che l’utente digita sul motore, alle pagine del tuo sito internet, ottimizzando tutti i fattori che concorrono al posizionamento sui motori e cercando la ripetizione della parola chiave in particolari punti strategici pensando sempre alla soddisfazione dell’utente, alla navigabilità e usabilità del sito.

Lo scopo di questa guida è analizzare quei fattori che ritengo siano, o saranno, utili, per un corretto posizionamento sui motori di ricerca ; non parlerò di”tecniche”, lecite o no, di posizionamento, ma vorrei cercare solo di esprimere il concetto che chiamo “posizionamento etico”: un posizionamento raggiunto pensando alla soddisfazione dell’utente, accessibile, usabile e basato su contenuti di qualità, un posizionamento senza alcun uso di tecniche considerate illecite dai motori di ricerca e raggiunto solamente grazie alla forza intrinseca dei contenuti e della struttura del sito.

Una guida al posizionamento sui motori di ricerca è difficile da realizzare: quando si pubblica, di solito, contiene informazioni già vecchie!

Per questo motivo ho cercato di impostare la guida in modo da perseguire un fine diverso dal solito esame delle tecniche di posizionamento: la guida, rivolta in particolar agli utenti alle prime armi, contiene sì informazioni “variabili” nel tempo, come l’analisi di alcuni fattori che attualmente influiscono sul posizionamento, ma cerca, soprattutto, di affrontare l’argomento posizionamento in modo da perseguire in primis la soddisfazione dell’utente e una efficace “comunicazione” con il motore di ricerca.

Secondo me i motori di ricerca tenderanno sempre più a considerare ed utilizzare le preferenze dell’utente per il posizionamento.

Il perseguimento della soddisfazione dell’utente, con risultati di qualità per l’utente stesso, sarà sempre più efficiente se i motori di ricerca cominciassero a considerare le preferenze dell’utente: l’utente avrebbe la possibilità di usare un motore di ricerca “personalizzato” alle proprie esigenze e con a disposizione la più grande base dati di qualità al mondo.

Il problema è come reperire informazioni di questo tipo? Come costruire un “profilo” per ogni utente? Google, per esempio, ci ha già pensato: e questo è solo quello che sappiamo noi!

Se il futuro saranno ricerche personalizzate su misura all’utenza, il successo di un sito internet sarà sempre più decretato dalla soddisfazione della sua utenza e il posizionamento sarà raggiungibile solo con siti e contenuti di qualità per l’utente.

Principali Fattori di ottimizzazione per raggiungere il posizionamento sui motori

  • Fattori interni ( Struttura , Codice , Contenuti )
  • Fattori Esterni ( Popolarità , Valore )
  • Fattori Tecnici (dati storici, tematizzazione, ordinamento )

Con ottimizzazione di un sito internet si intendono tutte quelle tecniche di progettazione di realizzazione della struttura del sito (variabile a seconda del settore) e tutti quegli accorgimenti al fine di realizzare dei contenuti di qualità facilmente comprensibili dai motori di ricerca e ottimizzati seguendo i diversi criteri di accessibilità e usabilità del sito da parte dell’utente.

Le parole chiave

La scelta delle parole chiave per cui ottimizzare il sito internet è una fase molto delicata da cui dipenderà gran parte del successo del tuosito.

Innanzitutto cerchiamo di chiarire il concetto di chiave :

  • Chiave : elemento, dato o persona di vitale importanza per comprendere, interpretare e risolvere qualcosa per conseguire determinati fini
  • Chiave : numero, parola o serie di numeri o parole , indispensabile per decifrare uno scritto in codice.

Quindi un corretto uso delle parole chiave nell’url, nel titolo di una pagina web, nelle categorie e nei testi, non solo serve per aiutare il motore di ricerca ad interpretare ed archiviare le informazioni contenute nel sito o in un documento ma aiuta l’utente nella navigazione permettendogli di capire immediatamente dove si trova e aiutandolo nella ricerca di quello che gli serve.

La scelta delle parole chiave

Scegliere le parole chiave più adatte per il posizionamento del sito sui motori di ricerca è un’operazione che richiede un’attenta analisi del settore di appartenenza: dallo studio delle parole chiave più ricercate dagli utenti sui motori di ricerca in grado di aumentare notevolmente il traffico verso un sito, all’analisi delle stesse e delle parole collegate per migliorareil posizionamento.

Non tutte le parole chiave hanno la stessa importanza. Analizziamo quella che viene chiamata Competitività della parola chiave:

  • Parole chiave competitive
  • Parole chiave non competitive
  • Parole chiave ad alta competitività

Parole chiave competitive

Le parole chiave Competitive sono quelle parole chiave che possono generare diversi milioni di risultati nella ricerca sul motore e presentare una certa quantità di competitors, riconoscibile dal numero dei collegamenti sponsorizzati dal motore di ricerca.

Ad esempio, Parole chiave come “ Studio Grafico ” “ Creazione Siti ” , “ Servizi Web ” , “ Comunicazione Integrata ”, anche se non generano milioni di risultati, sono parole chiave Competitive, perchè vengono coinvolte diverse figure per il posizionamento del
sito internet a causa della concorrenza e della saturazione del settore.

Per valutare l’esatta competitività di una parola chiave bisogna analizzare a fondo quanto questa viene cercata sui motori, il tipo di mercato e la concorrenza, la particolarità con cui descrive la promozione, in relazione a riferimenti geografici e di settore.

Posizionare la parola chiave “ Agenzia Pubblicitaria ”, ad esempio, è certamente molto più difficile e competitivo di posizionare la parola chiave “ Agenzia Pubblicitaria Roma ”; si può vedere la stessa relazione tra “ Agenzia Pubblicitaria Roma ” e “ Agenzia Pubblicitaria Viterbo ”.

Parole chiave NON Competitive

Le parole chiave non competitive sono quelle parole che generano pochi risultati nelle ricerche e usate in un settore senza alcun collegamento sponsorizzatodal motore.

Le parole chiave non competitive non vengono cercate molto sui motori di ricercae quindi non generano un grande flusso di traffico per il tuo sito.

Sono considerate parole chiave non competitive tutte le parole chiave che rappresentano un servizio o prodotto particolare in un settore non competitivo, parole chiave associate a contenuti originali e unici, o parole chiave con l’esatto riferimento geografico del servizio ( es. “ nomeservizio+nomecittà+nomezona )

Parole chiave ad alta competitività

Le parole chiave ad alta competitività sono quelle parole chiave competitive in grado di generare un alto traffico al sito internet e hanno la potenzialità di aumentare significativamente i risultati di una campagna di posizionamento sui motori di ricerca: sono le parole chiave più ricercate sui motori di ricerca e rappresentano l’utenza più qualificata di Internet.

I settori coinvolti: turismo, e-commerce, commercio e pubblicità, mercato immobiliare, risorse gratuite, servizi hosting e tutti l’indotto generato da questi settori sono da considerarsi ad alto rendimento.

Le parole chiave ad alta competitività operano in un settore altamente competitivo nel quale l’aggiunta di alcune parole come VENDITA, AFFITTO, SCARICA, GRATIS, (scarica suonerie cellulari, suonerie cellulari gratis, affitto appartamento, vendita cellulari, vendita hardware) oppure l’aggiunta della variabile CITTA’ alla parola chiave scelta (alberghi Roma, affitto appartamento Roma, vendita cellulari Roma), genera una quantità di risultati sui motori di ricerca tale da qualificare al meglio l’utenza e rendere il settore ad alta competitività .

Fattori interni

Cosa sono i Fattori Interni e come si ottimizzano per il Posizionamento sui motori di ricerca

I “fattori interni ” di un sito internet (tra cui è compresa la struttura del sito) sono tutti quegli elementi e variabili che influiscono sul posizionamento di un sito internet sui motori di ricerca e che possono essere “controllate” e ottimizzate in fase di progettazione e sviluppo del sito, come l’ url o i tag html .

Ottimizzare i fattori interni significa ottimizzare diversi parametri di web design per l’utente e per i motori di ricerca.

Progettare una buona struttura, con cartelle diverse e nomi dei file che chiariscano all’utente il contenuto della pagina, strutturare un buon sistema di navigazione, garantendo all’utente la massima accessibilità e navigabilità possibile, studiare un buon sistema di linking delle pagine, sono tutte operazioni di ottimizzazione dei fattori interni, gradite dall’utente quanto dal motore.

Definiamo esattamente cosa si intende con fattori interni :

  • Struttura(sistema di programmazione , cartelle e nomi dei file )
  • Codice( ottimizzazione linguaggio, w3c standard di qualità ,HTML )
  • Contenuti( ottimizzazione pagina , tematizzazione e formattazione contenuti )

Ora vediamo come si ottimizzano a seconda delle esigenze di realizzazione del sito.

  • Ottimizzazione della struttura del sito
  • Ottimizzazione del codice
  • Ottimizzazione dei contenuti

Ottimizzazione della struttura del sito

Ottimizzazione e scelta del tipo di struttura più adatta al posizionamento sui motori di ricerca

Sistema di programmazione

  • statica

Una struttura statica permette al sito di essere indicizzato nel più breve tempo possibile e permette il controllo dei nomi dei file delle pagine in maniera semplice e veloce.

Le pagine sono create in maniera statica e depositate sul server in apposite cartelle e richiamate ad ogni richiesta dell’utente.

  • semidinamica

Il giusto compromesso tra la gestione statica e dinamica di un sito internet: diverse pagine create staticamente e ben categorizzate, compilate in maniera dinamica e facilmente aggiornabili, e pagine di approfondimenti generate e collegate dinamicamente in modo da passare pochi parametri nell’url e quindi nel nome della pagina.

  • dinamica

La gestione dinamica di un sito ha il vantaggio di poter facilmente aggiornare i contenuti del sito e creare nuove sezioni o pagine in automatico, grazie al passaggio di diversi parametri nell’url del sito. Le pagine sono compilate dinamicamente su richiesta dell’utente e non risiedono fisicamente sul server, ottimizzando così al meglio la gestione dello spazio su hard disk messo a disposizione dall’hosting.

Cartelle e nomi dei file

Uno degli elementi fondamentali considerati dai motori di ricerca per il posizionamento di un sito è la struttura : il nome del file e il suo contenuto, la cartella o la sotto-cartella in cui si trova, il sistema di linking con cui si è organizzato il sito, sono tutti parametri da considerare per realizzare una buona struttura.

Pensa sempre all’utente : concepire e realizzare una buona struttura, accessibile e navigabile per l’utente, corrisponde, nella maggior parte dei casi, a realizzare una buona struttura per il posizionamento sui motori di ricerca.

Ottimizzazione del codice

Ottimizzazione della gestione del linguaggio lato server e lato client, validazioni W3C e tag HTML

Ottimizzazione linguaggio lato server (asp, php, aspx) e lato client (javascript, vbscript)

L’ottimizzazione rappresenta la scelta dei vari linguaggi di programmazione più adatti allo sviluppo delle caratteristiche del vostro sito: dalla gestione dei contenuti e degli aggiornamenti ai redirect permanenti usati per spostare i contenuti di un sito all’uso di programmi di statistiche per il monitoraggio della navigazione degli utenti.

Si tratta di scegliere in che linguaggio sia più adatto realizzare una certa applicazione: applicazioni come la convalida dei campi di un form per il corretto inserimento delle informazioni o la gestione del layout del sito a seconda del browser e della risoluzione usati dall’utente, sono applicativiche generalmente vengono gestiti lato client.

Ottimizzazione del codice secondo validazione W3C (XHTML, CSS, WAI)

I motori di ricerca sono delle macchine che leggono codice ed estrapolano da esso le informazioni per la corretta archiviazione dei contenuti e il posizionamento del sito sul motore.

L’esattezza e la linearità di un buon codice facilitano il motore nella comprensione delle informazioni rispetto ad un codice non valido, ma non solo. La validazione della WAI accessibility , per esempio, o di un corretto codice XHTML , permette anche ad utenti con browser datati o di solo testo, od utenti con handicap, il corretto uso del tuo sito, senza risentire disagi di accessibilità usabilità .

Attualmente, l’unico sistema internazionale per il corretto uso dei linguaggi di programmazione nel web-design è il Word Wide Web Consortium (W3C), organo che si occupa del problema della definizione di STANDARD di navigazione nel Web.

Così come l’UNI o l’ISO nel mercato tradizionale, il W3C cerca di definire i requisiti e i criteri di certificazione di qualità per gli sviluppatori e i programmatori di siti e applicazioni web.

HTML per ottimizzazione pagina e testi

Usare dei <title> di pagina che più rispecchiano le parole chiave del tuo sito, ripetere le stesse nella descrizione <meta name=”description”content=””>, facendo attenzione a scrivere sintatticamente un buon testo che rispecchi il <title> di pagina, formattare i testi usando i tag da <h1> a <h6> per titoli e sottotitoli, evidenziare le parole chiave con grassetti e sottolineature, scrivere in maniera corretta gli <href>, definendone il title <a href=”” title=””>, dotare tutte le immagini di differenti alt <img=”” alt=””>, a definizione del contenuto dell’immagine.

Tutto questo pensando sempre alle parole che dovrebbero essere visualizzate nel particolare attributo per facilitare la navigazione dell’utente , e non semplicemente riempiendo di parole chiave l’attributo: i title dei link e gli alt delle immagini sono utili ai browser che permettono la navigazione solo testuale del sito.

Meta-tag e Meta-Informazioni

I meta-tag

Un motore di ricerca è un robot in grado di reperire, acquisire, archiviare, catalogare e restituire informazioni in seguito ad una query di ricerca. Per comunicare correttamente con un motore di ricerca occore conoscere in maniera approfondita il linguaggio usato per la comunicazione delle informazioni: questo linguaggio è rapprensetato dall’HTML.

I meta-tag rappresentano delle informazioni di natura generale che possono essere fornite al motore di ricerca in ogni pagina web e indicano al motore di ricerca diverse tipi di informazioni: da una breve descrizione del contenuto della pagina, all’autore, alle coordinate geografiche del documento.

Di tutti i metatag mi limito ad analizzare quelli che influiscono sul posizionamento nei motori di ricerca, e cioè il meta description.

Alcuni pensano ancora che il meta keywords sia importante e tendono riempire il meta di parole chiavi: Google, per esempio, non considera il meta keywords come un parametro utile per il posizionamento dei risultati di una ricerca.

Il meta-tag description

Il meta description rappresenta una breve descrizione del contenuto della pagina web e viene molto considerata dai motori di ricerca ai fini del posizionamento.

Il meta description è utilizzato dal motore di ricerca per acquisire informazioni sul contenuto di una pagina e rappresenta la breve descrizione fornita dal motore, insieme al collegamento al documento, come risultato di una ricerca.

Infatti il meta description è il primo testo che il motore di ricerca incontra dopo il titolo durante l’acquisizione della pagina web ed è importante per far capire subito l’argomento e i temi trattati dal documento.

Scrivere correttamente un meta description significa scrivere una breve descrizione della pagina, 10-20 parole, che rispecchi il titolo della pagina web e fornisca, sia al motore che all’utente, delle informazioni chiare e concise dei contenuti che troveranno nella pagina web.

Ottimizzazione dei contenuti

L’ottimizzazione dei contenuti riguarda sia la gestione del codice, sia la gestione tematica e categorica delle informazioni che la formattazione e la presentazione dei contenuti.

Ottimizzazione delle aree di una pagina

I motori di ricerca riconoscono, o saranno presto in grado di farlo, le aree che il web-designer imposta come menu di navigazione, come header, footer o corpo del testo, e potrebbero attribuire ad ogni parte un peso diverso, al fine di valorizzare l’intera pagina.

Bisogna cercare di strutturare la pagina, attraverso l’uso di tabelle o layer, pensando a quello che un utente vorrebbe da quella pagina e cercare di posizionarlo più in alto possibile nel codice: con l’uso dei div e dei CSS che controllano la loro posizione, per esempio, è possibile strutturare un codice più chiaro ed ottimizzarlo a seconda di quello che ti serve.

Tematizzazione e categorizzazione dei contenuti

Ottimizzare i contenuti di un sito internet significa principalmente categorizzare e tematizzare in sotto categorie le diverse sezioni che ospitano i contenuti del sito.

Uno dei parametri che i motori di ricerca considerano ai fini del posizionamento risulta essere infatti la tematizzazione del sito e dei suoi contenuti: fornire all’utente contenuti a tema in tutto il sito, affrontando e sviluppando il tema nelle diverse categorie e sotto categorie di cui necessita, organizzando nella maniera migliore la navigazione e l’accessibilità.

Formattazione dei contenuti

La gestione dell’header, del corpo, dei menu e sottomenu di navigazione, del footer di un pagina è importante come è importante la formattazione del testo contenuto : un testo lungo ma ben formattato con titoli, sottotitoli, categorie, elenchi puntati, parole in evidenza, uso del grassetto e sottolineato risulta molto più leggibile di un testo molto lungo, senza struttura o enfasi alcuna.

Incrementare i contenuti per migliorare posizionamento e traffico.

I contenuti sono il vero punto di forza: lo leggiamo dappertutto ormai ma vediamo perché.

I contenuti di un sito web sono la vera forza intrinseca del sito: aggiornare il sito con nuovi contenuti frequentemente è sicuramente il modo migliore per ottimizzare il posizionamento

Innanzitutto perché incrementando contenuti e pagine aumentano le possibilità di essere trovati sui motori.

Scrivere nuovi contenuti in tema con gli argomenti principali del sito significa anche approfondire tutte gli argomenti trattati: produrre nuovi articoli e testi a tema con una determinata categoria può essere utile non solo per spingere la categoria, ma anche, e soprattutto aggiungo, fornendo così all’utente tutte le informazioni utili e correlate all’argomento che lo interessa.

In secondo luogo, perché un incremento costante dei contenuti permette al tuo sito di essere riconosciuto come un sito che viene aggiornato spesso dai motori e quindi essere visitato spesso anche dagli spider.

I fattori esterni

Cosa sono e come si ottimizzano per il Posizionamento sui motori di ricerca

fattori esterni sono tutti quegli elementi che concorrono al posizionamento sui motori di ricerca che NON sono direttamente controllabili nella progettazione e realizzazione del sito internet e si riferiscono a variabili molto importanti per il posizionamento, come il PageRank o la popolarità del sito.

Innanzitutto definiamo cosa si intende con fattori esterni :

  • Popolarità ( backlink, inbound e outbound link , aumentare la popolarità )
  • Valore del sito ( PageRank e TrustRank )

Ora vediamo come si ottimizzano a seconda delle esigenze di realizzazione del sito.

  • Popolarità nella rete
  • Valore del sito

Popolarità nella rete

Backlink, inbound link e outbound link

I link sono l’essenza della rete: per capire a fondo l’importanza di questo concetto, facciamo un’analogia: come il sistema sanguigno usa vene e arterie per ossigenare ogni cellula del nostro corpo, così la rete usa i link per veicolare il traffico attraverso ogni sito internet. I link possono essere:

  • in entrata: inbound link backlink (link in entrata)
  • in uscita: outbound link (link in uscita)
  • i link reciproci

Link in entrata

Ottenere dei buoni inbound link backlink (link in entrata al tuo sito da un altro sito) spontanei dovrebbe essere lo scopo di un corretto posizionamento: fornire cioè contenuti interessanti e servizi di qualità all’utente in modo da soddisfarne le esigenze e ottenere un sorta di promozione gratuita.

Link in uscita

Anche gli outbound link (link in uscita dal tuo sito verso un altro) sono importanti nel posizionamento di un sito: bisogna pensare sempre all’utente. Cosa penserebbe un utente se visitando il tuo sito, clikkasse su un link e quel link lo portasse in un evidente circuito di dialer o spam? E se invece trovasse dei collegamenti interessanti e di qualità che lo aiutassero ad approfondire o espandere il tema trattato dal tuo sito?

Link reciproci

Una breve citazione ai link reciproci : premesso che nulla è ancora verificato lo scambio link è una soluzione ritenuta artificiosa dai motori e adottata da molti con il solo scopo di aumentare il ranking del proprio sito e come tale potrebbe essere penalizzata dai futuri aggiornamenti degli algoritmi dei motori di ricerca .

Aumentare la popolarità

Un link viene considerato come parte integrante del documento a cui punta. Per questo bisogna cercare di scrivere e ottenere buoni link, cercando di evitare un accrescimento artificiale (link factory).

Un buon link è un link tanto per l’utente quanto per il motore di ricerca. Scrivere un buon link per l’utente significa pensare alle parole chiavi che possono descrivere in maniera più appropriata il contenuto della pagina a cui punta, dotare il link di un buon <title>, magari ripetendo la parola chiave e approfondendo il significato della stessa o il contenuto della pagina che promuove il link.

ESEMPIO: <a href=”http://www.motoriericerca.com/” title=”Analisi e studi sul posizionamento per webmaster e SEO”>il progetto Motori e Ricerca </a>

Un sito acquista popolarità con i link. Molti SEO pensano che non ci siano buoni o cattivi link: è indubbio però il valore di un link da un sito popolare o da un sito a tema. Un link da un sito con un alto valore di popolarità e riguardante argomenti in tema col tuo sito avrà un peso maggiore di un altro link che non abbia queste caratteristiche.

Link dalle directory

Uno dei modi per accrescere la popolarità di un sito è quella di iscrivere il sito nelle directory . Esistono nel web migliaia di directory, ma solo alcune sono veramente popolari ed usate dal grande pubblico di internet: sono le directory dei più grandi e famosi motori di ricerca: Yahoo e Google . Yahoo ha una sua directory molto famosa ed usata anche dagli altri motori di ricerca associati alla famiglia Yahoo. Google ha fatto della sua directory Dmoz , il progetto ODP, Open Directory Project, nato anni fa e diventato ormai uno dei punti di riferimento nel Web. L’inserimento del sito in una di queste due directory accresce notevolmente la popolarità del tuo sito: bisogna stare attenti però a segnalare il sito nella giusta categoria e scegliere un titolo e una descrizione adatti e in linea con le politiche della directory.

Link dai Forum

Esistono nel Web una quantità enorme di Forum; l’utente di Internet ama discutere degli argomenti che più cointeressano sul Web, scambiando le proprie opinioni con gli altri naviganti: i Forum forniscono all’utente questa possibilità.

Esistono Forum di ogni genere: dai Forum in cui si discute di cinema a quelli in cui si parla di musica, dai forum sportivi ai forum dedicati alla cucina, dedicati al tempo libero o alla cultura, forum tecnici e forum professionali. Praticamente ne esistono di infinite categorie ed argomenti; per non parlare poi delle Comunità che si creano intorno ai Forum più frequentati dei più grandi portali del Web.

I Forum sono gestiti dinamicamente; un link da una pagina non indicizzata nel database dei motori, non conta per questi ultimi: contano comunque le visite che si riescono a ricevere dai frequentatori che, se si forniscono contenuti interessanti e di qualità, potrebbero divenire utenti del tuo sito e promuoverlo in maniera indiretta.

Ogni Forum ha il suo regolamento; alcuni di questi permettono di promuovere i propri siti nella firma del messaggio.

Link dai Blog

I Blog, come i Forum, sono diventati ormai un vero standard nel web; i Blog sono a tutti gli effetti un nuovo modo di concepire la comunicazione nel Web: chiunque può aprire un proprio diario personale e parlare di quello che vuole con il grande popolo di internet.

Concepiti proprio per essere costantemente aggiornati, i blog hanno conquistato i navigatori e si sono ritagliati un loro spazio nel Web: sempre più provider forniscono piattaforme e spazio web gratuito per gestire il proprio Blog.

nche se alcune piattaforme di sviluppo per Blog non sono ottimizzate per i motori di ricerca, i link dai Blog possono essere un altro modo per incrementare la popolarità del sito e generare comunque interesse e traffico

Valore del sito

Google PageRank

Il concetto di attribuire un valore ad un documento ed usarlo per meglio restituire i risultati delle ricerche è alla base delle diverse tecnologie che usano i motori di ricerca: alcuni attribuiscono maggior valore ai fattori di ottimizzazione interna del sito, altri, come Google, hanno sviluppato il proprio algoritmo sulla popolarità di un sito internet.

Il PageRank, detto anche indice di popolarità, è una delle tecnologie centrali di Google: la sua origine risale a un articolo tecnico scritto dai fondatori di Google, Lawrence (Larry) Page e Sergey Brin, quando studiavano ancora all’Università di Stanford intitolato ” The Anatomy of a Large-Scale Hypertextual Web Search Engine “. PageRank non conosce siti ma singoli documenti.

Il funzionamento del PageRank, fondamentalmente, è piuttosto semplice e si basa sul numero di link effettuati a una determinata pagina da altre pagine Web, più link esistono a una determinata pagina e più questa diventerà “importante”.

Ogni link viene considerato come un voto espresso dalla pagina che integra il collegamento ipertestuale alla pagina correlata. PageRank si basa sul concetto che la qualità di un documento possa essere riconoscibile dalla quantità e dalla qualità dei link che riceve da altri documenti esterni.

Tempo fa lessi una guida a Google, in cui si diceva che PageRank risentisse della attinenza dei contenuti a quella delle pagine correlate: ma nella formula originale del PageRank non ci sono fattori che indicano la tematizzazione dei contenuti.

La formula per il calcolo del PageRank potrebbe essere stata aggiornata, ma, come testimoniano l’algoritmo di ordinamento dei risultati Hilltop e il database dei vettori di termini per riconoscere il tema trattato nei documenti, sarebbe più facile che siano stati implementati nuovi sistemi per la modifica dei punteggi generati da PageRank

Google TrustRank

Ultimamente Google, ha registrato un’altra tecnologia di nome TrustRank, che secondo molti affiancherà il PageRank nell’algoritmo del motore di ricerca.

Zoltàn Gyongyi e Hector Garcia-Molina del Computer Science Department dell’Università di Stanford insieme a Jan Pedersen di Yahoo! Inc. sono gli autori di una pubblicazione dal titolo Combating Web Spam with TrustRank.

TrustRank nasce quindi per combattere lo SPAM: nell’introduzione della pubblicazione si legge:

“Mentre un utente esperto può facilmente identificare lo SPAM, è troppo dispendioso valutare manualmente un grande numero di pagine web. Proponiamo, quindi, delle tecniche semi-automatiche per separare le pagine buone dallo SPAM. Prima si sceglie un piccolo insieme di pagine, da valutare da un esperto, considerate come “semi”: una volta che abbiamo identificato manualmente i “semi”, usiamo i link contenuti per scoprire altre pagine che potrebbero essere buone. Basando il nostro esperimento sugli indici di Altavista, i risultati che proponiamo mostrano come una lista di circa 200 buoni “semi” possano effettivamente combattere e filtrare lo SPAM dai risultati delle ricerche.”

La grossa e sostanziale novità quindi risulta essere l’impiego di risorse umane nei sistemi di ordinamento dei risultati: saranno tecnici esperti a selezionare la lista di partenza di siti “fidati” da cui partire nella ricerca di documenti e contenuti di qualità grazie ai sistemi di linking di internet.

Uno degli aspetti interessanti è che sicuramente non saranno più utili molti di quei trucchi e stratagemmi usati per aumentare il ranking: per avere un buon posizionamento su Google sarà sempre più necessario realizzare delle pagine di buona qualità, interessanti, ricche di contenuti e con relazioni con altri siti web correlati.

In sintesi, realizzare siti di qualità .

I fattori tecnici

Con fattori tecnici vorrei definire tutti quegli elementi utili per il posizionamento sui motori, la cui definizione e utilizzo viene dettata dalla ricerca e studio di applicativi e algoritmi di documenti ufficiali.

Nel posizionamento sui motori, più che in altri settori, è indispensabile una continua ricerca e studio di informazioni e aggiornamenti sul funzionamento degli algoritmi dei motori di ricerca: questi ultimi, infatti, tendono a variare spesso e risulta fondamentale quindi, non solo seguire l’evoluzione dei motori,
ma cercare di prevedere i possibili miglioramenti.

In questa sezione vengono affrontati in particolar modo alcuni algoritmi di funzionamento del motore di ricerca Google: uno spazio particolare è dedicato ai Dati Storici in un’altra sezione di Motori e Ricerca.

Algoritmi analizzati

  • PageRank
  • Database Vettore dei Termini
  • Hilltop
  • TrustRank
  • Dati Storici

Il Pagerank

Il PageRank è un valore calcolato da Google per ogni documento presente nel suo database. Tale valore rappresenta la qualità del documento e a parità di altri fattori, ne influenza il posizionamento.

Negli ultimi anni Google è diventato indiscutibilmente il motore di ricerca più utilizzato del mondo come riportano tutte le statistiche eseguite negli ultimi anni dagli istituti di ricerca più diversi.

La popolarità di cui gode Google è in parte dovuta alla semplicità di utilizzo della sua interfaccia, che è spartana e non affollata dalle miriadi di lucette e finestrelle che riempiono le pagine di molti altri motori di ricerca. Un altro fattore che però ha sicuramente influito nell’accrescere la preferenza degli utenti verso Google è stata la qualità dei risultati ottenuti dalle ricerche, che sono sempre stati molto più rilevanti rispetto a quelli degli altri motori.

La qualità dei risultati di Google è dovuta principalmente all’utilizzo del PageRank, un metodo per assegnare alle pagine web un punteggio di qualità indipendente dal contenuto e dalla ricerche, messo a punto dai due fondatori di Google: Sergey Brin e Lawrence Page, appunto.

Quando il PageRank fu concepito i motori di ricerca utilizzavano già la link-popularity come parametro di correzione dell’ordinamento nei loro algoritmi ed anche i webmaster avevano iniziato a capire come aumentarla artificialmente, creando centinaia o anche migliaia pagine web che contenessero link ai siti da “spingere”.

Il concetto migliorativo della link-popularity e che sta alla base del PageRank originale è il seguente:

A ogni documento presente nel database di Google viene assegnato un punteggio (PageRank ) basato sul numero di link che riceve dagli altri documenti, ma non tutti i link che il documento riceve hanno la stessa forza, infatti quelli ricevuti da documenti importanti, cioè da documenti che a loro volta ricevano molti link, contano di più.

Quindi il PageRank di un documento dipende dal PageRank dei documenti che lo linkano, ma anche il PageRank di questi ultimi dipende da quello dei siti che linkano loro e così via. Risulta quindi abbastanza chiaro che il calcolo del PageRank è un calcolo ricorsivo, che deve essere ripetuto un certo numero di volte per avere un risultato che possa essere considerato stabile.

Alla fine dei calcoli ogni documento indicizzato da Google avrà il suo valore di PageRank che servirà come fattore correttivo nella fase di ordinamento dei risultati delle ricerche degli utenti, per cui a parità di altri fattori il documento con PageRank più alto avrà un posizionamento migliore.

Sono ormai passati molti anni dalla prima formulazione del concetto di PageRank messa a punto da Sergey Brin e Lawrence Page alla Stanford University ed è probabile che la formula originale, basata esclusivamente sul computo dei link che le pagine web si scambiano fra loro, sia stata implementata con altri fattori di diversa natura adatti a correggere le distorsioni dovute a nuovi tipi di approcci dei webmaster che, ormai da tempo maneggiano vendite e scambi di link ad alto PR con troppa disinvoltura per non aver dato nell’occhio.

Sicuramente gli ingegneri di Google stanno cercando nuovi sistemi per calcolare il valore di PageRank di un documento e su questi possiamo fare solo ipotesi, anche se, come vedremo, alcune di esse sono molto fondate.

Tematizzazione dei contenuti

Il database dei vettori dei termini

Sicuramente, come si può notare dalle serp, la tematizzazione dei contenuti è un fattore molto importante da prendere in considerazione nell’analisi dei link: un link da una pagina a tema, su un sito ben categorizzato e tematizzato su quel tema, ha un’influenza maggiore di un link da una pagina di un sito non in tema.

Ma un motore di ricerca come riconosce il tema trattato da un documento?

“Lo studio ” The Term Vector Database: fast access to indexing terms for Web pages ” risale al 2000 ed è opera di tre studenti della Stanford University: Raymie Stata, Krishna Bharat e Farzin Maghoul. Bharat è stato assunto nel 2003 da Google ed è a lui che è stata affidata la progettazione Google News , una applicazione che probabilmente ha molto a che spartire con l’oggetto di questa pubblicazione. “

Nel documento viene illustrata la realizzazione di uno speciale database chiamato” database dei vettori di termini “, che permette, partendo dall’URL di un documento presente nel database principale del motore di ricerca, di accedere velocemente ad una struttura di dati contenente la lista dei termini presenti nel documento, il peso e le posizioni di ciascun termine nel documento ed il peso del termine nell’intera collezione dei documenti indicizzati dal motore.

Questo rispecchia sempre il fine del motore di ricerca che è quello di fornire all’utente dei risultati di qualità: individuare il tema trattato da un documento può essere utile nella valorizzazione dei link: Google riconosce se il link fornito possa essere più o meno utile all’utente, e, da questo, pesare in maniera differente link e valore della pagina.

Pensiamo alla soddisfazione all’utente: nella sua navigazione e nella lettura di un documento, l’utente preferirà sicuramente visitare dei siti di approfondimento, o comunque che trattino argomenti correlati al documento che sta leggendo, piuttosto di visitare dei siti non a tema con l’argomento che lo interessano.

ESEMPIO: un sito che parla di musica, con diverse sezioni e categorizzazioni del tema musica, in una sua pagina in cui si parla della discografia di un autore, propone dei link ad un sito di cucina. Quanto peso pensi possa avere quel link rispetto ad un link, per esempio, al sito dell’autore, oppure ad un’altra pagina di un altro sito che approfondisce album per album la discografia?

Il database dei vettori di termini permette al motore di ricerca di controllare in maniera estremamente veloce quali termini rilevanti contenga ogni documento e quale sia il loro peso.

Un vettore di termini consiste in linea di massima in una serie di coppie “termine-peso” di lunghezza variabile, dipendente dal numero di termini che compongono il documento di cui si costruisce il vettore.

Dal documento in esame vengono estratte tutte le sequenze di caratteri non separate da spazi, trovate fuori dai tag HTML o dentro i metatag, senza considerare le sequenze contenute fra l’inizio e la fine di una sezione <script>. I termini così estratti dal documento vengono chiamati “termini candidati”.

I termini candidati vengono filtrati mantenendo solo quelli presenti nel “terzo di mezzo” dell’indice globale dei termini di tutta la collezione indicizzata. In parole povere, dopo aver redatto l’elenco completo dei termini contenuti in tutti i documenti dell’indice ed averli ordinati per numero di occorrenze, l’elenco viene diviso in tre parti di identica ampiezza ed al momento del filtraggio dei termini candidati, per ogni documento vengono scartati sia i termini appartenenti alla sezione di indice contenente i termini usati più raramente sia quelli appartenenti alla sezione contenente i termini utilizzati più frequentemente.

Questo è utile perché i termini usati più frequentemente sono poco indicativi, apparendo spesso nella maggior parte dei documenti a prescindere dalla loro similitudine, e tendono così a rendere più difficoltosa la discriminazione fra i vettori, mentre quelli usati meno frequentemente generano “interferenze” che peggiorano l’analisi della similarità dei vettori. Pensate per esempio ad un termine digitato in modo sbagliato: esso verosimilmente apparirà su poche pagine, che però potranno trattare anche temi completamente diversi. Se questo termine venisse considerato avrebbe molto peso, in virtù della sua scarsità all’interno della collezione dei documenti, e indurrebbe a calcolare fra le pagine una forte relazione in realtà inesistente.

Dopo il filtraggio, i termini vengono “pesati”, dividendo il numero di volte in cui appaiono nel documento per il numero di volte in cui appaiono nell’intera collezione dei documenti indicizzati. Questo metodo per calcolare il peso dei termini è denominato TF-IDF (term frequency-inverse document frequency) e nelle sue molteplici variazioni è uno standard fin dai primi anni 70, quando fu ideato da Sparck-Jones.

Con l’etichetta generica TDF-IDF vengono spesso indicati metodi di calcolo molto diversi, alcuni molto semplici ed altri estremamente sofisticati. Quelli semplici consistono praticamente nella sola divisione fra il numero di occorrenze del termine nel documento e nella collezione, seguita da una normalizzazione allo scopo di compensare la lunghezza variabile dei documenti. Tutti i metodi TDF-IDF però si basano sugli stessi due concetti principali.

Termini che appaiono molte volte in un documento sono considerati rilevanti.

Termini che appaiono spesso nell’intera collezione dei documenti sono considerati poco rilevanti.

Quando è stato stabilito un peso per ogni termine presente nel documento che ha passato il primo filtraggio, vengono memorizzati nel vettore i 50 termini con peso maggiore.

Nonostante il filtraggio dei termini sia stato eseguito con un metodo TF-IDF, in questo esperimento nel database non viene memorizzato tale peso bensì la semplice frequenza del termine, ovvero il numero di volte nel quale il termine compare all’interno del documento, oltre alla lunghezza della pagina espressa sia in byte, sia in numero di termini. Questo viene fatto per mettere a diposizione i dati “grezzi” di partenza e lasciare alle applicazioni la maggior libertà possibile di pesare i termini con i metodi che vengono considerati di volta in volta più adatti.

Il database così costruito permette con due semplici chiamate di funzione di confrontare fra loro i vettori di termini di due documenti e stabilirne il grado di similarità. Per pura curiosità il database dell’esperimento ha sfruttato l’indice di Altavista (quello dell’anno 2000 ovviamente) e conteneva 272 milioni di vettori occupando uno spazio di 33Gb.

Alcune applicazioni del database dei vettori di termini

Vediamo due prime applicazioni pratiche che utilizzano il database dei vettori di termini sperimentate dai suoi stessi ideatori: la distillazione del tema e la classificazione delle pagine web per argomento.

Il database dei vettori di termini può essere utilizzato per velocizzare enormemente molte applicazioni interessanti nel campo dell’information retrieval (recupero delle informazioni), in calce allo studio esaminato negli articoli precedenti sono state realizzate applicazioni di prova riguardanti la distillazione del tema e la classificazione dei documenti per aree tematiche.

La distillazione del tema è una tecnica che utilizza la struttura dei link fra i documenti del web per eseguire l’ordinamento rispetto alle query (interrogazioni) e si basa sul seguente assunto: considerando il web come un grafo i cui nodi siano le pagine collegate ed i lati i collegamenti fra queste , le migliori pagine che trattano un certo argomento sono fortemente interconnesse fra loro in un “sotto-grafo”, una sorta di comunità virtuale specializzata nell’argomento.

L’algoritmo di distillazione del tema costruisce questo “sotto-grafo” del web estraendo le pagine più rilevanti per una data query fra i normali risultati di un motore di ricerca, poi espande questo primo insieme di pagine includendo quelle più vicine nel grafo, vale a dire quelle che contengono un link che punta ad una delle pagine estratte o quelle che ricevono un link da una di esse.

Un difetto di questo algoritmo è che nel sotto-grafo così costruito esistono pagine fortemente interconnesse ma che non sono rilevanti rispetto all’argomento della query. Questo difetto può essere eliminato usando i vettori di argomenti.

Un vettore di argomento è un particolare vettore di termini costruito utilizzando termini contenuti in tutte le pagine del primo insieme estratto. Il vettore di termini di ciascuna delle pagine dell’insieme “allargato” viene poi confrontato con il vettore di argomento della query e se il prodotto fra i due supera un certo valore di soglia (più il prodotto fra due vettori di termini è alto più le pagine sono simili) la pagina è ammessa a far parte del “sotto-grafo” relativo alla query.

Questo tipo di calcolo può essere eseguito, teoricamente, anche senza disporre di un database dei vettori di termini ma il tempo necessario per calcolare i vettori di termini delle pagine interessate a “query time” (cioè nel momento in cui l’utente esgue l’interrogazione) sarebbe proibitivo ed impedirebbe l’utilizzo pratico di questo algoritmo.

Ma l’applicazione più interessante del database di vettori di termini è probabilmente la classificazione delle pagine web. Questo algoritmo assegna a ciascun documento contenuto nell’indice del motore di ricerca un argomento selezionato da una lista di argomenti già definita. Nell’esperimento effettuato, la lista degli argomenti corrispondeva alle 12 categorie di primo livello della directory Yahoo!. Per ciascuna di queste categorie è stato precalcolato un vettore composto da 10.000 termini estratti fra quelli contenuti in circa 30.000 pagine appartenenti alla categoria stessa.

I documenti appartenenti all’indice del motore di ricerca sono poi classificati confrontando il loro vettore di termini, restituito dal database, con i vettori delle categorie. La categoria che nel confronto dei vettori ottiene il punteggio più alto viene selezionata come categoria del documento. Nell’esperimento è sempre stata scelta una sola categoria per ogni documento, e nei casi in cui la classificazione è risultata ambigua il documento non è stato classificato.

L’applicazione di esempio progettata nel 2000 da Bharat aggiungeva ai risultati dell’indice di Altavista l’indicazione dell’argomento trattato dai documenti ed un link “More on this topic”, che permetteva di raffinare la ricerca considerando solo i documenti dell’indice che condividessero la stessa classificazione di argomento.

Il database dei vettori di termini può essere però utilizzato anche per raffinare i risultati di un algoritmo come Hilltop, ideato in seguito dallo stesso Khrisna Bharat. Barat dice esplicitamente che la selezione di documenti esperti i cui link puntano a pagine che condividono la stessa classificazione di argomento è un miglioramento dell’algoritmo.

Inoltre è facile ipotizzare che, se nel database di un motore di ricerca è già presente una classificazione di massima dell’argomento trattato dai documenti indicizzati, diventi semplice calcolare in modo diverso i punteggi relativi ai link fra i documenti a seconda che questi condividano o meno la stessa classificazione di argomento.

Già al tempo della trattazione sono stati evidenziati molti campi di miglioramento per la struttura e la costruzione del database dei vettori di termini, per esempio l’inclusione dei termini presenti nei tag <alt> e di quelli presenti nel testo delle ancore dei link provenenti da altri documenti, la diversa considerazione dei termini contenuti in tag particolarmente importanti, come per esempio il tag <title>, il supporto di termini composti da più parole e l’utilizzo di sistemi più sofisticati di di stemming allo scopo di permettere un supporto multilingua.

Inoltre anche l’utilizzo di Yahoo! Come base per la selezione delle categorie e la costruzione dei vettori di argomento potrebbe oggi trovare un miglior candidato in ODP, una directory open source molto ampia e che, per la natura collaborativa e volontaria del team di editori (migliaia in tutto il mondo) può dare migliori garanzie di completezza ed imparzialità.

Almeno così pensava Taher Haveliwala, un altro studente universitario che in seguito sarebbe stato assunto da Google e che ha elaborato un sistema per rendere l’attribuzione del valore di PageRank sensibile al tema trattato dai documenti: il “topic sensitive PageRank”.

L’algoritmo Hilltop

Hilltop è un algoritmo di ordinamento che permette di assegnare ai documenti un punteggio di “autorevolezza” relativo a specifici argomenti, e migliorare in molti casi gli ordinamenti basati sull’analisi del contenuto e, per esempio, sul PageRank.

Quando gli utenti interrogano i motori di ricerca su argomenti molto popolari i motori restituiscono generalmente un grande numero di documenti. Ordinare questi documenti può essere un grosso problema per degli algoritmi che si limitano ad analizzarne il contenuto, perché, diversamente da quanto accade nel campo dell’information retrieval classica, dove si suppone che tutti i documenti provengano da fonti autorevoli, nel web esiste una grossa percentuale di SPAM, ovvero documenti che sono scritti appositamente per avere un buon posizionamento nei motori di ricerca ma che presentano un contenuto di bassa utilità per l’utente finale. Anche quando non c’è un tentativo deliberato di ingannare i motori di ricerca, i loro indici sono affollati da un grande numero di documenti di qualità estremamente variabile e difficili da ordinare.

Quello che ho appena scritto non è un opinione personale, ma il riassunto dell’introduzione di una pubblicazione del 2002 di Krishna Bharat, un ingegnere di Google, noto fra le altre cose per essere il creatore di Google News .

Khrisna Barat aveva già pubblicato interessanti studi, per esempio riguardo alla distillazione del topic di un documento (Improved algorithms for topic distillation in a hyperlinked environment.) ed alla realizzazione di vettori di termini (The Term Vector Database: fast access to indexing terms for Web pages).

Nel 2002, insieme a George A. Mihaila (altro “geniaccio” di cui riparlerò) pubblica “When experts agree: using non-affiliated experts to rank popular topics”. Questa pubblicazione analizza il problema sopra indicato e tenta di trovare una soluzione efficiente.

Per prima cosa vengono analizzati gli approcci usati precedentemente per tentare di risolvere il problema, fra questi vi è un accenno specifico al pageRank, del quale individua un limite specifico nel “non poter distinguere fra pagine autorevoli in generale e pagine autorevoli relativamente all’argomento della ricerca. In particolare un sito autorevole in generale può contenere una pagina che soddisfa una certa query ma che non è autorevole rispetto all’argomento”.

In altre parole un sito che tratta, per esempio, di animali domestici può essere molto popolare ed avere un alto PR. Molto probabilmente questo PR proviene da link di altri siti che trattano lo stesso argomento e lo consigliano come approfondimento ai propri utenti, un consiglio valido e fondato quindi. Ma se in quello stesso sito ci fosse una sola pagina che trattasse di auto da corsa, non significherebbe che i siti che lo consigliano intendano raccomandare anche la lettura di quella pagina. Eppure in virtù del PR del sito, se ben inserita nella struttura dei link, questa pagina avrebbe buone possibilità di posizionarsi per ricerche riguardanti le auto da corsa.

L’approccio “Hilltop” si basa, come quello del PageRank, sull’assunto che la qualità e la quantità dei link che puntano ad un documento è un buon indice della qualità del documento, la differenza è che Hilltop considera solo i link provenienti da specifici documenti ritenuti “esperti” relativamente alla ricerca effettuata dall’utente, “documenti creati con lo specifico scopo di dirigere le persone verso le risorse”. Quando viene eseguita una query, l’algoritmo Hilltop per prima cosa individua una lista dei documenti “esperti” più rilevanti per l’argomento, poi all’interno di questi seleziona i link più rilevanti rispetto alla query e seguendo questi individua le pagine da posizionare. Queste pagine sono poi “ordinate secondo il numero e la rilevanza di esperti non affiliati che puntano ad esse. Così il punteggio di una pagina riflette l’opinione collettiva dei migliori esperti indipendenti dell’argomento della query”.

E’molto importante capire che questo tipo di algoritmo funziona solo in presenza di un numero sufficiente di “documenti esperti”, cosa che in generale capita per argomenti molto popolari, dove esistono molti siti web che compilano liste di risorse a tema. D’altra parte i webmaster dei siti, in generale, cercano di pubblicare liste di link aggiornate e complete per aumentare la loro popolarità e la loro influenza nella comunità web interessata ad un certo argomento.

Per interrogazioni che non permettano di individuare una lista di documenti esperti ritenuta sufficiente l’algoritmo Hilltop semplicemente non viene utilizzato, ma questo non è un grosso limite, perché viene specificato chiaramente che l’algoritmo serve a migliorare l’accuratezza delle query sulle quali viene applicato e non è assolutamente necessario che venga utilizzato per tutte quelle eseguite dagli utenti. D’altronde Hilltop ha maggiori possibilità di funzionare bene in presenza di un elevato numero di siti attinenti alla ricerca effettuata, proprio la situazione in cui l’analisi del contenuto si rivela insufficiente.

E’ molto probabile che questo algoritmo sia già utilizzato da Google fin dall’update Florida, del 2004, quello in cui ci fu un vero e proprio terremoto nelle serp (pagine dei risultati). Il fatto che venga applicato soltanto alle ricerche più “popolari” spiegherebbe anche un certo comportamento di Google, che per le ricerche con un basso numero di risultati sembra tendere a dare maggior peso all’analisi dei contenuti.

Il TrustRank

Il TrustRank è un algoritmo brevettato da Google, in parte basato sulla valutazione dei siti effettuata da esseri umani, progettato per risolvere il grosso problema dello spam presente negli indici dei motori di ricerca.

Uno dei problemi più grandi che i motori di ricerca si sono trovati a combattere negli ultimi anni è la crescita del fenomeno denominato spam. Lo spam, in questo contesto può essere a grandi linee definito come la pubblicazione di pagine web create con il solo scopo di ingannare gli algoritmi dei motori di ricerca.

Uno dei primi metodi utilizzati per fare spam è stato quello di inserire nelle pagine web del testo nascosto agli esseri umani ma visibile ai motori di ricerca (per esempio impostando il testo con lo stesso colore dello sfondo della pagina oppure usando alcune proprietà dei fogli di stile), così da ottenere buoni posizionamenti relativamente ad argomenti che effettivamente non avevano niente a che fare con il contenuto visibile delle pagine.

Un altro metodo molto popolare per fare spam è quello di creare decine, o anche centinaia, di pagine sostanzialmente inutili per gli utenti, ma tutte contenenti uno o più link verso una specifica pagina, la quale la quale vedrà migliorato il suo posizionamento nei motori di ricerca a causa dell’aumento di fattori come la link-popularity o il PageRank.

In effetti, quando un motore di ricerca si trova davanti ad un circuito di siti web fortemente linkati fra loro, deve effettuare la difficile scelta di stabilire se essi siano davvero siti che si citano per approfondimenti reciproci dell’argomento trattato oppure semplicemente un circuito di spam. Per un essere umano che “conosca il mestiere” è relativamente semplice capire se un sito effettua spam, osservando per esempio in che percentuale esista nelle pagine contenuto utile e testo invisibile, controllando la visibilità e l’effettiva natura dei link, i nomi assegnati a domini, file e cartelle, confrontando gli indirizzi IP dei documenti a cui i collegamenti puntano ed altri fattori ancora. Per un computer, al contrario, riconoscere lo spam è un compito decisamente difficile, tanto è vero che l’approccio finora utilizzato da parte dei motori di ricerca è quello di far eseguire ad un apposito staff di persone il monitoraggio dei risultati per individuare pagine che effettuano spam ed eliminarle dall’indice del motore. Molti motori di ricerca possiedono apposite interfacce pubbliche che permettono la segnalazione di spam direttamente allo staff del motore che, appena possibile, verifica la correttezza della segnalazione ed eventualmente prende i provvedimenti del caso. Il problema dell’eliminazione dello spam dai propri indici è così importante per i motori di ricerca che, in mancanza di meglio sono disposti ad utilizzare questo tipo di approccio, assai lento, costoso, e in definitiva molto poco efficiente.

Nel 2004 alcuni ricercatori del dipartimento di Computer Science della Stanford University hanno pubblicato uno studio dal titolo “Combating web spam with TrustRank” (Combattere lo spam con il TrustRank) ed il 16 marzo 2005 la tecnologia TrustRank è stata ufficialmente brevettata da Google.

L’algoritmo di TrustRank può essere utilizzato sia per suggerire automaticamente allo staff di esseri umani quali sono le pagine del web da controllare più attentamente perché “a rischio spam,” sia per generare un punteggio da usare in fase di ordinamento delle pagine allo scopo di compensare gli effetti negativi che lo spam ha avuto sull’efficacia di altri algoritmi, come quelli per l’analisi del contenuto o quello del PageRank.

Dal momento che identificare lo spam è molto difficile per un computer il TrustRank utilizza in parte l’intervento umano per addestrare l’algoritmo a riconoscerlo. A grandi linee il funzionamento de TrustRank è questo.

1)L’algoritmo seleziona un insieme di pagine relativamente piccolo (“seed pages”, pagine seme) secondo criteri che spiegheremo in seguito, delle quali non si sa ancora se effettuino spam o meno.

2)Un essere umano esamina ad una ad una tutte le pagine dell’insieme e le divide in “buone” (pagine che non effettuano spam) e “cattive” (pagine che effettuano spam).

3)L’algoritmo processa l’intero indice del motore di ricerca ed assegna a ciascuna pagina che vi è contenuta un punteggio di “trust” (fiducia) basato sul grado di vicinanza alle pagine seme “buone” nel grafo del web.

I Dati Storici

Dati Storici rappresentano tutti quei dati relativi ad analisi di tipo storico che i motori di ricerca possono analizzare per attribuire al sito la posizione più indicata tra i risultati delle ricerche: dall’ anzianità del dominio alla variabilità nel trend degli aggiornamenti.

Questo ” sistema di valorizzazione ” consiste nell’esaminare diversi aspetti nell’archiviazione di dati di tipo ” storico “, relativi cioè ai cambiamenti e gli aggiornamenti nel tempo di un documento.

L’analisi dei dati storici potrebbe essere uno dei tanti criteri su cui si baseranno i motori di ricerca: tra questi, Google, il 31 Marzo 2005 ha registrato un brevetto dal titolo Information retrieval based on historical data ( Reperimento di informazioni basato su dati storici ) presso la US Patent & Trademark Office, in cui nella sezione principale del documento intitolata Exemplary history data, ci sono 99 paragrafi, suddivisi in 14 sub-categorie, in cui vengono descritti molteplici algoritmi eventualmente usati per l’archiviazione e la restituzione di dati e informazioni.

Fattori come l’ aggiornamento dei contenuti di un documento, le ricerche effettuate dagli utenti nel motore di ricerca e le loro scelte nella pagina dei risultati, i criteri basati sui link , come peso e freschezza di un link o di un anchor, sono soltanto alcuni dei fattori che possono essere presi in considerazione dal motore di ricerca nella sua analisi dei Dati Storici.

Motori e Ricerca, in collaborazione con Posizionamento Web, ha tradotto l’intero documento sui Dati Storici di Google e commentato i suoi algoritmi. L’idea di questo progetto nasce sul forum sul posizionamento nei motori di ricerca di Giorgio Taverniti, uno dei più grandi forum professionali sul posizionamento sui motori di ricerca e sul web marketing in Italia.