27 settembre 2007  5

Google, indicizzazione e sitemap

L'indicizzazione di un sito web è il processo mediante il quale un motore di ricerca ne acquisisce e cataloga i contenuti all'interno della sua base di conoscenza (comunemente detta banca dati). Questi dati, opportunamente trattati, vengono poi selezionati ed estratti al momento dell'elaborazione di una query di ricerca.

 Questa operazione assume un ruolo fondamentale nel processo di diffusione delle informazioni pubblicate tramite il web. Migliore è l'indicizzazione, maggiore sarà la probabilità che tali informazioni diventino il risultato di una ricerca ad esse inerenti.

In tempi non recenti, il processo di indicizzazione di un sito era relativamente semplice: il web era meno complesso e meno vasto ed era sufficiente segnalare ai motori di ricerca, mediante form dedicati accessibili dalle home page degli stessi, l'indirizzo del sito da analizzare. In tal modo si avviava la procedura di indicizzazione in tempi ragionevolmente accettabili: i motori di ricerca rilasciavano i loro spider sul sito ne analizzavano tutti i file con estensione .htm o .html e ne acquisivano i contenuti.

Allo stato attuale le cose sono decisamente più complesse: la continua creazione di nuovi siti alimentata maggiormente dalla diffusione esponenziale dei blog ha prodotto delle nuove procedure di indicizzazione, più selettive e più mirate. A ciò si deve aggiungere anche il fatto che tutti i motori sono ormai appoggiati a grosse entità economico-finanziarie (multinazionali) e offrono migliori posizionamenti ed indicizzazioni più rapide dietro compenso economico. Esistono inoltre aziende specializzate che si occupano esclusivamente del posizionamento e dell'indicizzazione dei siti web, ovviamente a pagamento.

E' evidente che, in questo scenario, l'operazione di indicizzazione di un blog risulta abbastanza complicata, soprattutto in virtù del fatto che le pagine in esso contenute non sono pagine "statiche", pagine che di fatto esistono all'interno del sito web che le ospita, ma sono tutte generate "on the fly" (al volo) mediante script che si appoggiano ad una banca dati dedicata. Questa tipologia di risorsa non è molto gradita agli spider dei motori di ricerca che sono in grado di rilevare esclusivamente oggetti presenti nei percorsi esaminati. D'altra parte, soprattutto se il blog è di tipo amatoriale e realizzato quindi con poche risorse economiche, l'alternativa all'affidamento ad una società specializzata per l'indicizzazione diventa impraticabile.

La sitemap

Tuttavia l'operazione di indicizzazione anche in tempi brevi di un blog può essere effettuata in maniera agevole con l'aiuto della cosiddetta sitemap XML , ovverosia mediante la creazione di un file di testo in formato XML contenente gli indirizzi assoluti di tutte le pagine in esso contenute, sia quelle statiche che quelle dinamiche. Questo particolare formato di file strutturato è stato introdotto da Google ed adottato poi anche da Yahoo!, MSN e da altri motori di ricerca minori.

A seguire un esempio di file sitemap (non completo) estrapolato dal corrispettivo ospitato da questo sito. (n.b.: i puntini di sospensione indicano sezioni <url>...</url> omesse per motivi di spazio)

<?xml version="1.0" encoding="utf-8" ?>
 <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
  ...
 <url>
   <loc>http://www.cristianofino.net/post/Attimo-di-pausa-.aspx</loc>
   <lastmod>2007-09-15</lastmod>
   <changefreq>monthly</changefreq>
 </url>
 <url>
   <loc>http://www.cristianofino.net/post/Toshiba-Portégé-G900-una-valida-alternativa-al-TyTN-II.aspx</loc>
   <lastmod>2007-09-14</lastmod>
   <changefreq>monthly</changefreq>
 </url>
 <url>
   <loc>http://www.cristianofino.net/post/Pingback-e-codice-malevolo.aspx</loc> 
   <lastmod>2007-09-13</lastmod> 
   <changefreq>monthly</changefreq>
 </url>
...
</urlset> 

La definizione del contenuto di questo file è abbastanza semplice: esiste una sezione iniziale sempre uguale individuata dal tag di intestazione <?xml ... ?> ed dal tag di apertura <urlset ... >. All'interno di quest'ultimo sono nidificate n coppie di tag <url> ... </url> corrispondenti alla descrizione di tutti gli indirizzi (anche generati dinamicamente) relativi alle pagine del sito che andremo a descrivere: con la coppia di tag <loc> ... </loc> si delimita l'indirizzo assoluto della pagina, con la coppia di tag <lastmod> ... </lastmod> la data di ultima modifica, infine con la coppia di tag <changefreq> ... </changefreq> la frequenza con cui viene essa viene aggiornata. Il tutto va naturalmente completato con il tag di chiusura </urlset>.

Una volta confezionata la sitemap, va trasferita nella root dell'host che ospita il sito così descritto. Al tempo stesso è necessario aggiornare il file robot.txt (o crearlo se non presente e quindi trasferire anch'esso) indicando il nome del file relativo alla sitemap. Se ad esempio esso si chiama sitemap.xml si inserirà nel file robot.txt la riga:

sitemap: http://nomedelsito/sitemap.xml

A questo punto gli spider dei motori di ricerca, analizzando il file robot.txt provvederanno, seguendo le indicazioni contenute nella sitemap, ad indicizzare i contenuti di tutte le pagine indicate. Per il caso specifico di Google, è opportuno almeno in prima istanza indicare manualmente il file relativo alla sitemap. Questa operazione è possibile creandosi un account Google se non se ne ha già uno ed utilizzando il pannello di controllo degli strumenti per webmaster. E' consigliabile seguire questa procedura perchè consente a Google di ridurre in maniera sostanziale i tempi necessari alla prima indicizzazione: in caso contrario sarà necessario attendere che i suoi spider analizzino il sito e, di conseguenza, elaborino il file robot.txt, con tutti i tempi dilatati del caso. Naturalmente è necessario segnalare a tutti i principali motori di ricerca l'indirizzo del sito (altrimenti gli spider lo raggiungeranno solo quando si saranno propagati su tutta la rete i riferimenti del suo indirizzo simbolico tramite i DNS dell'hosting di riferimento).

Creare dinamicamente la sitemap

Per siti web di piccole dimensioni (poche pagine) e relativamente statici è possibile creare manualmente la sitemap. I problemi nascono nel momento in cui si vuole creare questo file per siti estremamente dinamici come i blog, soprattutto se vengono aggiornati di frequente e contengono decine o centinaia di post: l'impresa diventa improba. Esistono delle utility su web che, analizzando il sito proposto mediante la segnalazione del suo indirizzo assoluto, creano in maniera automatica il file di sitemap. Personalmente sconsiglio l'utilizzo di queste procedure automatizzate: spesso il file creato non è ottimizzato, contiene ripetizioni e, per siti molto grandi, a volte risulta incompleto con tempi di attesa anche molto lunghi. In ogni modo resta il problema che il file deve essere comunque di volta in volta prodotto e trasferito presso il relativo web hosting: ciò comporta sempre un carico di lavoro aggiuntivo nonchè un ulteriore aggravio di tempo.

Il problema può essere definitivamente superato creando un apposito web service che, una volta chiamato, risponda generando il file xml della sitemap fotografando la situazione all'istante richiesto. Sostanzialmente si tratta di adattare le procedure utilizzate per la creazione di un feed RSS, con la differenza che non si produrrano i contenuti degli ultimi n post pubblicati, ma tutti i link relativi ad essi. In questo modo sarà sufficiente indicare una sola volta all'interno del file robot.txt (utilizzando la procedura già vista) l'indirizzo del web service dedicato, per assicurarsi la corretta indicizzazione del proprio blog senza alcun aggiornamento successivo. Il motore di BlogEngine.NET, ad esempio, è dotato di un web service dedicato proprio allo scopo.

Per WordPress è disponibile un ottimo plugin per la generazione automatica della sitemap: completamente personalizzabile permette anche di escludere alcune categorie di pagine statiche e dinamiche ed il ping automatico a Google dell'aggiornamento del file generato.

Indicizzazione e posizionamento

Finora abbiamo parlato di indicizzazione: questo significa garantire la presenza dei contenuti di un sito nei database dei motori di ricerca. Questo non vuol dire però assicurare che essi siano mostrati per primi nel caso compaiano come risultato di una ricerca: in quel caso è necessario parlare anche di posizionamento.

Il posizionamento è relativo a tutta una serie di fattori anche abbastanza complessi: per Google è da considerare il cosiddetto pagerank attribuito ad ogni pagina. Maggiore è il pagerank, maggiore sarà la probabilità che la pagina compaia tra i primi risultati di una query. Il calcolo del pagerank è un'operazione abbastanza complessa che esula dall'argomento di questa trattazione: molto sinteticamente si può indicare come pagerank il grado di popolarità di una pagina calcolato in base al numero dei suoi link in ingresso (ovvero quanti altri siti hanno linkato quella pagina), al pagerank delle pagine che ospitano tali link nonché dal numero di altri link ospitato da quest'ultime, il tutto pesato da un coefficiente stabilito da Google.

E' opportuno comunque notare che, a pagamento, è sempre possibile aumentare in modo più o meno rilevante il proprio posizionamento nei risultati di una ricerca, indipendentemente dal valore di pagerank.

Conclusioni

L'obiettivo di questo articolo è come accelerare ed ottimizzare il processo di indicizzazione di un blog nei motori di ricerca e come automatizzare, nei limiti del possibile questo processo. Non è stata fornita una procedura scritta da implementare, ma solo la parte teorica: sarebbe stato difficile infatti realizzare uno script che si potesse adattare ai principali sistemi di blogging esistenti. Non è stato volutamente affrontato il discorso dell'indicizzazione relativo ai motori di ricerca dedicati esclusivamente ai blog, perchè già trattato in precedenza: in sintesi la procedura è più semplice e si limita alla segnalazione dei feed ed alla successiva periodica attività di ping, manuale o automatica, ogni qualvolta si inserisce un nuovo post.

Esprimi il tuo giudizio

Commenti (5) -

Traffyk
Traffyk
27 set 2007 alle 18:20  01
la sitemap è diventata uno strumento davvero importante, io in passato ho provato a generarne qualcuna creandomi qualche programmino ma se non si ha una struttura ben definita e strutturata non si riesce a far nulla... Io ne feci una che girava bene all'epoca su una versione di forum phpbb oggi invece con wordpress un plugin ci solleva totalmente dall'incarico facendoci utilizzare tempo prezioso per altri lavori.

Devo dirti che da quando uso la sitemap tempo 24 ore, ma anche 12 dipende dal contenuto e sono gia in google.
Hai fatto bene a citare gli strumenti per webmaster sono da consigliare davvero a tutti, c'è anche la versione yahoo tutti e due insieme è meglio Laughing

Ciao!
cristiano
cristiano
27 set 2007 alle 18:31  02
Non ho citato Yahoo perchè a differenza di Google, loro sono più "gentili" e ti leggono in automatico robot.txt senza una prima segnalazione (e non ci vuole nemmeno molto tempo).
Google invece è più schizzinoso e se aspetti il suo spider può passare un'eternità.
La tua segnalazione  completa senz'altro l'argomento !

Personalmente, utilizzando il riferimento al  webservice per la generazione automatica della sitemap, ho un'indicizzazione giornaliera costante ... si può realizzare qualcosa di analogo in php.
Traffyk
Traffyk
27 set 2007 alle 19:10  03
Non sapevo Yahoo accettasse tutto in automatico Laughing Inoltre Yahoo ti vede anche tutti i backlink con rel="nofollow" e sinceramente mi fa piacere almeno tiene traccia davvero di tutti i link reali e non.

PS: grazie per l'aggiunta in blogroll, anche se in un primo momento non l'ho notata(sta sotto eheh). Io ti ho aggiunto al feedreader fin dal tuo primo commento e automaticamente quindi alla lista io leggo(è dinamica grazie al blogroll).
Per il blogroll in tutte le pagine ho adottato un sistema per far visualizzare chi commenta di più quindi se non trovi giusto un link da tutto il sito tuo contro una sola pagina mia puoi anche cancellare il link o fare una pagina come la mia (ed è giusto che sia così) oppure commenti di più ma qui andiamo in spam poi Laughing ehehe
Traffyk
Traffyk
27 set 2007 alle 19:13  04
Ho un problemino. Quando aggiungo un a capo nei tuoi commenti non mi viene effettuato il parsing per visualizzare il tag <br /> di andata a capo, fosse stato php ti avrei suggerito la funzione nl2br ma in asp non conosco l'equivalente ;)
cristiano
cristiano
27 set 2007 alle 20:11  05
1) la presenza di un mio commento è relativa all'interesse che suscita il post Smile

2) inserisco in blogroll i siti che giudico interessanti e che leggo sempre. Il link rimane  fino a quando si conserva questo "stato di fatto": non è correlato ad uno scambio di cortesie ma ad un reale interesse.

3) BlogEngine.NET ha un sistema di sicurezza che filtra i commenti ed elimina tutti i tag html. Serve per evitare SQl injection. A breve passerò alla versione 1.2 che ha un sistema di gestione più personalizzabile.

Aggiungi Commento

biucitecode
  • Commento
  • Anteprima
Loading


| |   |  

Codice QR

Codice QR - cristianofino.net

Ultimi Commenti