Linee guida per siti ed applicazioni web della Regione Emilia-RomagnaLo spider percorre la "ragnatela" del world wide web seguendo i link contenuti nelle pagine. Ciò avviene a partire dalle pagine già presenti nell'indice. Quando un nuovo sito viene creato e messo online, risulterà irraggiungibile da qualsiasi spider finché in almeno una pagina web presente nell'indice di quel motore di ricerca non verrà inserito un link al nuovo sito. In tale modo lo spider potrà raggiungerlo e leggerne il contenuto per poterlo così indicizzare. Dal punto di vista del sito linkato, questo link è detto "inbound link", vale a dire un link che conduce verso di esso. Dal punto di vista del sito in cui si inserisce il link, questo è detto "outbound link", un link verso l'esterno. E' dunque compito del webmaster assicurarsi che almeno un link di questo tipo esista. La cosa importante è che la pagina in cui viene inserito il link al nostro sito sia già indicizzata in tutti i motori di ricerca principali. Ogni motore di ricerca consente di vedere l'elenco di tutte le pagine di un sito contenute nell'indice, in questo modo:
Se non si conosce personalmente alcun webmaster di un sito già indicizzato disponibile a inserire un link verso il nostro sito, vi sono numerose altre strade perseguibili.
Le directory sono cataloghi di siti suddivisi per categorie, aperti a nuove segnalazioni. Non tutte le directory sono però adeguate allo scopo: alcune sono strutturate in modo dinamico e le loro pagine non sono indicizzate. E' il caso ad esempio della directory di Virgilio.
Le directory migliori da questo unto di vista sono Open Directory (http://dmoz.org) e Yahoo! (http://dir.yahoo.com). Se il sito è in lingua italiana è opportuno invece segnalarlo nelle versioni locali (rispettivamente http://dmoz.org/World/Italiano/Regionale/ e http://dir.yahoo.com/Regional/Countries/Italy/). La segnalazione va fatta dalla pagina della categoria di appartenenza del proprio sito (cliccando sull'apposito link). Va detto che i tempi di attesa possono essere anche molto lunghi, e l'inserimento non è assicurato. Per Open Directory, si deve verificare che la categoria di appartenenza abbia un editor di riferimento (gli editor sono dei volontari e non tutte le categorie sono coperte). Se questo manca ci si deve rivolgere all'editor della categoria superiore e i tempi si allungano. Nel caso di Yahoo!, tutte le categorie sono coperte ma comunque i tempi di attesa sono lunghi. E' previsto peraltro un servizio di inclusione rapida, a pagamento.
Ogni settore di attività ha i suoi portali verticali di riferimento che ospitano link ai siti ritenuti interessanti, sia in forma di semplice elenco, sia di directory specialistica, sia all'interno delle pagine di contenuto. Come nel caso delle directory, ci si deve accertare che la pagina in cui verrà inserito il link sia effettivamente a sua volta indicizzata altrimenti non serve a nulla ottenere un link. N.B: E' possibile che per inserire il link il portale richieda un pagamento.
Ci si può rivolgere al webmaster di un altro sito già indicizzato, chiedendogli di inserire un link reciproco. La cosa ha senso specialmente se i due siti si occupano degli stessi argomenti, in toto o in parte. Lo scambio può essere accettato dal sito già presente nel motore di ricerca perché è sempre meglio aumentare il numero di link, e quindi la link popularity. Inoltre un link in più può portare anche nuovi visitatori. E' dunque probabile che lo scambio venga accettato. Ovviamente, uno scambio di link difficilmente verrà accettato da un diretto concorrente.
Il blog è un tipo di sito generalmente molto ben indicizzato.
Si tratta infatti di siti personali aggiornati quotidianamente e che ricevono molti link. Peraltro, l'autore del blog tende ad inserire attivamente i link che ritiene interessanti integrandoli in modo ipertestuale nel contesto del "diario". E' più probabile quindi che si riceva il link in modo spontaneo che non a seguito di una richiesta. Evidentemente, per ricevere un link del genere devono essere ospitati contenuti interessanti per il blogger. Le pagine che contengono notizie, specialmente se esclusive, tendono ad attirare i blogger.
Sia esso un internet service provider, una web agency, o un altro partner, chi realizza siti spesso prevede un area del proprio sito dedicata alla presentazione dei propri lavori. Qualora il link non venga inserito spontaneamente, si può chiedere che ciò avvenga, eventualmente anche sotto forma di scambio. Se da un lato questo tipo di sito è solitamente ben inserito negli indici dei motori di ricerca, si deve tenere presente anche che i siti delle società che realizzano progetti web tendono ad essere particolarmente sofisticati, e questo generalmente non va di pari passo con la leggibilità per gli spider.
Si deve sempre fare attenzione a che tipo di sito ospiterà il link, in modo da evitare di essere collegati a siti che fanno spamming. Si rimanda al paragrafo per la descrizione dello spamming nei motori di ricerca.
Alcuni webmaster inseriscono un link nei guestbook dei siti personali, nei forum o nei newsgroup. La cosa generalmente non è vista di buon occhio, perché molti frequentatori di questi "luoghi virtuali" la considerano scorretta e contraria alla "netiquette". Nella migliore delle ipotesi la richiesta verrà ignorata con conseguente perdita di tempo. In casi estremi, sono addirittura possibili ritorsioni di vario genere.
Vi sono infine altri tipi di link che sono inutili perché non vengono letti dagli spider, come i link sponsorizzati, i link nei banner, e generalmente tutti i link pubblicitari.
Innanzitutto, una premessa: è ovvio che quando passa lo spider il server web dev'essere pronto, altrimenti non sarà possibile indicizzare il sito e si dovrà attendere un nuovo passaggio. In ogni caso, server troppo lenti a rispondere agli spider (più di 3-4 secondi) per 2-3 volte di fila possono essere ignorati da questi ultimi, fino al successivo passaggio che potrebbe avvenire a distanza di mesi.
Si consiglia di mantenere un design semplice perché non tutte le pagine risultano intelligibili per lo spider. Lo standard consigliato è HTML 4.0.1, e il sito dovrebbe essere visibile con tutti i browser principali. Per avere una validazione certa, si consiglia di utilizzate un browser di testo come Lynx. Se caratteristiche avanzate quali Javascript, cookies, ID di sessione, frame, DHTML o Flash impediscono di visualizzare l'intero sito in un browser di testo, anche gli spider dei motori di ricerca potrebbero incontrare problemi durante la lettura del sito.
Persino alcune funzionalità html, come ad esempio i frames e le image map non sono ben supportate e nel caso che le pagine possiedano queste componenti, il loro contenuto potrebbe essere precluso all'indicizzazione. Solitamente gli spider leggono solo il file html principale e non eventuali altri file integrati nella pagina, come ad esempio le immagini. Attualmente il motore in grado di leggere il maggior numero di tipi di file non-html è Google.
Nel caso poi di pagine web con molto testo, lo spider non archivierà tutto il contenuto ma si limiterà a memorizzarne solo una parte. Si consiglia una dimensione sotto i 15 KB, meglio ancora fra 5 e 10 KB (immagini comprese).
Di fondamentale importanza sono i link interni. Devono essere leggibili per gli spider, altrimenti gli spider non percorrono tutto il sito. A dispetto di quanto dichiarato recentemente da alcuni motori di ricerca, i link non scritti in html (ad esempio all'interno di animazioni in flash o in istruzioni javascript) sono ancora baluardi insormontabili e non vengono seguiti dagli spider. Essi pertanto sono da evitare, o quantomeno vanno inseriti dei link html alternativi. Il classico esempio è il link che consente di saltare la presentazione in flash nella homepage di un sito.
Anche nel caso in cui i link sono html, è necessario seguire alcune regolette: Gli HREF non debbono contenere backslash "\" (usati per errore tipicamente al posto della normale barra "/"), né pipe "|", né spazi. I browser, come Netscape o Explorer, riescono in alcuni casi a seguire link contenenti questi caratteri, ma il funzionamento non è mai garantito anche perché i caratteri vietati potrebbero essere intercettati da dispositivi di rete che li modificano (ad esempio alcuni gateways). In dettaglio i caratteri vietati sono { } | \ ^ [ ] ` (cfr: http://www.ietf.org/rfc/rfc2396.txt (inglese)):
Altri caratteri, pur non essendo vietati, hanno uno specifico significato nei link. Ad esempio i carattere ":" serve a delimitare il protocollo usato (tipicamente "http") dal resto dell'URL. È bene quindi non usare questi caratteri in un URL se non nel loro specifico significato.
I caratteri riservati sono: ; / ? : @ & = + $ , e lo spazio.
Il fatto che tali caratteri non debbono comparire in un URL non significa comunque che essi non possono essere usati nel nome di una risorsa, è infatti possibile usare nell'URL la codifica di tali caratteri. Ad esempio la codifica dello spazio è "%20" e se abbiamo un file di nome "esempio file.htm" sulla root del nostro sito, lo potremo richiamare con l'URL: http://www.miosito.it/esempio%20file.htm. I caratteri non riservati e non vietati, che si possono liberamente usare nei link anche non codificati, sono: tutti i caratteri alfanumerici (lettere e numeri) e - _ . ! ~ * ' ( )
Un discorso a parte meritano i frames. I motori di ricerca indicizzano i singoli frame che costituiscono una pagina a frame, quindi la ricerca potrebbe portare a reperire non già la pagina intera ma una sua parte (ad esempio solo il menù). I singoli frame sono infatti delle vere e proprie pagine html, dunque, come tali, vengono spiderizzate singolarmente e indicizzate a seconda del loro contenuto testuale. Se si utilizzano i frame, per esempio, nella home page del sito, il testo sarà contenuto nei frames e non nella home page che, apparendo "vuota", non avrà un alto valore di ranking e, pertanto, non apparirà nel risultato della ricerca. Per sopperire in parte a questo problema si può replicare nel tag
<NOFRAME> tutto il contenuto della pagina, in modo particolare i link. Si consiglia inoltre di attribuire alla home page un titolo significativo in relazione alla ricerca in cui si vuole comparire e utilizzare la sezione testo alternativa dei tag HTML che la prevedono (object, frameset, script).
Esistono problemi per l'indicizzazione dei siti web dinamici. Com'è noto, alcune tecnologie come l'asp o il php consentono di generare pagine web "on demand" in base a determinati parametri. Benché lo spider sia in grado di leggere le pagine dinamiche, a patto che non vengano generati dinamicamente anche i link, spesso il numero di esse è talmente elevato che non vengono indicizzate tutte. Questo per evitare che lo spider sovraccarichi di richieste il server bloccandolo di fatto. Il numero elevato di pagine può diventare un problema anche nel caso di siti statici, specialmente se il sito è strutturato a vari livelli con cartelle e sottocartelle. Normalmente, tutti i file html presenti nella root, se linkati dalla homepage o fra di essi, vengono presi in considerazione dallo spider. Anche i file contenuti nelle cartelle sono facilmente raggiungibili dagli spider, ma se vi sono sottocartelle cominciano ad esserci difficoltà. Ulteriori livelli, del tipo www.sito.it/cartella/sottocartella/sottosottocartella sono progressivamente sempre meno raggiungibili.
Le pagine dinamiche (asp, php, aspx, ecc...) spesso contengono informazioni nascoste collegate al percorso di navigazione che l'utente ha seguito per raggiungerle. In questo caso se esistono dieci percorsi di navigazione che raggiungono la stessa informazione, il motore di ricerca la indicizzerà dieci volte. Da notare che i percorsi di navigazione possono essere anche infiniti, e ciò provocherebbe diversi problemi allo spider del motore di ricerca. Le pagine dinamiche, quando possibile, non debbono quindi contenere nel codice informazioni nascoste collegate al percorso che è stato seguito per raggiungerle, all'utente che è collegato, all'orario o comunque alla sessione di lavoro all'interno della quale la pagina viene consultata.
Si riporta a questo proposito l'avvertenza contenuta nelle linee guida di Google:
Consentite ai motori di ricerca di eseguire la scansione dei vostri siti senza ID di sessione o argomenti che ne rilevano il percorso in tutto il sito. Queste tecniche sono utili per la rilevazione del comportamento del singolo utente, ma lo schema di accesso dei programmi automatizzati è completamente differente. L'utilizzo di queste tecniche può condurre a un'indicizzazione incompleta, poiché i programmi automatizzati non sono in grado di eliminare gli URL che hanno un aspetto diverso, ma puntano effettivamente alla stessa pagina.
Nel caso che sia assolutamente necessario mantenere all'interno della pagina informazioni di questo tipo, le pagine dinamiche non debbono poter essere raggiungibili dal motore di ricerca più di una volta, in particolare è bene evitare che si formino cicli di pagine che si richiamano a vicenda. Ciò può essere fatto usando correttamente il tag <meta name="robots" content="..."> dell'HTML. Un metodo suggerito è il seguente:
Si è visto che ogni motore di ricerca è dotato di numerosi spider che percorrono incessantemente il web. Tuttavia gli indici dei motori contengono rimandi a miliardi di pagine, ed è possibile che passi diverso tempo fra una visita dello spider e la successiva. Se nel frattempo la pagina viene modificata dal webmaster, tale modifica non sarà registrata finché, appunto, lo spider passa nuovamente dal sito in questione. Lo stesso vale se una pagina viene rimossa da un sito. Rimarrà nell'indice il riferimento a una pagina non più esistente e chi cerca potrebbe cliccare e trovare un errore 404 "page not found". Questo è il motivo per cui, sovente, una ricerca genera determinati risultati ma cliccando sui link restituiti dalla ricerca non si trova quanto si era cercato: la pagina nel frattempo può avere cambiato contenuto, o addirittura non esistere più.
Sebbene vi siano motori di ricerca generalmente più veloci nel "refresh" dell'indice, vi è una certa irregolarità nel passaggio degli spider, per cui non è detto che un motore abbia necessariamente un indice più vecchio in toto. Alcuni possono essere già passati da una porzione del web, altri da una diversa. Generalmente, maggiore il numero degli "inbound link" che conducono a una pagina, maggiore sarà la frequenza di passaggio dello spider. Questo perché gli spider lo possono trovare seguendo tante via possibili. Viceversa, un sito collegato al resto del web da un solo link, dovrà attendere che uno spider passi proprio da lì, e questo può richiedere un attesa fino a 6 mesi e più. Nel frattempo, nell'indice rimarranno le informazioni indicizzate al momento dell'ultimo passaggio.
Questo problema viene in parte risolto da alcuni motori, come Google, che individuano i siti che variano più velocemente e a questi riservano una frequenza di aggiornamento più elevata, cioè lo spider li visita più spesso. Questo spider veloce, detto "freshbot", è in grado di visitare quotidianamente i siti "privilegiati". Non vi sono metodi per assicurarsi il passaggio del freshbot, ma vi sono ottime probabilità se un sito viene aggiornato quotidianamente ed ha un PageRank di minimo 5 (vedi il paragrafo per la spiegazione del PageRank). Inoltre vi sono, come detto, le pagine indicizzate con il "pay per inclusion" che ricevono quotidiana visita dagli spider.
Talvolta risulta importante evitare che un sito, o parti di esso, vengano indicizzate, per esempio se si vuole escludere dall'indicizzazione una versione in costruzione o un'area riservata. Ciò può avvenire in due modi:
· attraverso l'uso del file "robots.txt" nella root del sito;
· attraverso l'uso del meta tag ROBOTS nell'intestazione delle singole pagine HTML:
<META name="robots" content="[index/noindex] [, follow/nofollow]>
Nel file "robots.txt" contenuto nella root del sito web è possibile specificare quali spider (agent) si vogliono escludere e cosa non deve essere indicizzato tramite la regola "Disallow: "cartella da non indicizzare".
Ad esempio nel file "www.regione.emilia-romagna.it/robots.txt" ci potrebbe essere scritto:
User-Agent: *
Disallow: /images
Attraverso il meta tag ROBOTS è invece possibile specificare per ogni singola pagina HTML se la pagina stessa deve essere indicizzata o meno e se i link in partenza da essa debbono essere seguiti o meno. Ad esempio se si vuole che una pagina sia indicizzata ma non ne siano seguiti i link in partenza si potrà scrivere:
META name="robots" content="index, nofollow"
Se invece si vuole che una pagina non sia indicizzata ma lo siano quelle raggiungibili da essa (tranne diversa indicazione) si potrà scrivere:
META name="robots" content="noindex, follow"
Il default è "index, follow", cioè di default un robot indicizza le pagine e ne segue i link.
Se si vuole invece solo limitare le visite degli spider per non sovraccaricare di richieste il server web, si consiglia di accertarsi che il server web che ospita il nostro sito supporti l'intestazione HTTP If-Modified-Since. Questa funzione consente al server web di comunicare ai motori di ricerca se il contenuto è stato modificato dall'ultima volta che è stato indicizzato. L'implementazione di questa funzione consentirà di limitare l'uso di larghezza di banda e di ridurre il sovraccarico. I passaggi degli spider dei vari motori di ricerca sono registrati nei file di log. Per individuarli è necessario conoscere il nome che li identifica a livello di richiesta al server. I più noti sono Googlebot e Yahoo! ma ne esistono molti altri.