Pigafetta, il bot di Visual SEO Studio
Introduzione a Pigafetta, un crawler bene educato a potenziare il software SEO "Visual SEO Studio"
Cos'è il bot Pigafetta, e per cosa nasce
Pigafetta è il crawler usato da Visual SEO Studio, uno strumento software per l'Ottimizzazione per i Motori di Ricerca.
Esamina struttura di siti e pagine html per valutarne la robustezza in ottica SEO.
Pigafetta è un buon cittadino del web:
- Usa un nome esplicito come user-agent, "Pigafetta"
- Controlla sempre il file robots.txt prima di entrare in un dominio o sottodominio
- Aderisce al Robots Exclusion Protocol, obbedendo alla sintassi del robots.txt e alle sue estensioni
- La sua interpretazione del Robots Exclusion Protocol è conservativa (ossia: sceglie sempre l'interpretazione più restrittiva).
- Obbedisce al Meta Tag Robots
- Obbedisce all'header HTTP X-Robots-Tag
- Rispetta il parametro crawl-delay (max 2.0)
- Non eccede mai la capacità di risposta di un web server: si adatta ad essa ed attende sempre il completamento di una risposta prima di chiedere una nuova risorsa.
- Esplicita l'header HTTP "From": "pigafetta-bot(at)visual-seo.com"
- Esplicita una pagina di riferimento nel nome del suo user agent name ("http://visual-seo.com/Pigafetta-Bot", questa pagina in versione Inglese)
- Esplicita l'header HTTP "Referral", così da agevolare i proprietari dei siti nel localizzare eventuali link rotti
- Accetta come impostazione predefinita i cookie di sessione così da non impegnare inutili risorse dei server
- Obbedisce all'attributo rel="nofollow" dei link
- Controlla l'attributo 'type' dei link, per evitare di richiedere risorse che non processerà
- Scarica solo contenuti (x)html
- Non fa "spoofing" dello user agent, ossia dichiarare nomi user agent non suoi (a meno che non sia richiesto e autorizzato da un amministratore verificato del sito)
Qual è la "user-agent string" di Pigafetta?
Pigafetta dichiara la propria identità con il nome "Pigafetta"; un esempio dello user agent completo utilizzato (il numero di versione può cambiare) è:
Mozilla 5.0 (compatible; Pigafetta/0.5; +http://visual-seo.com/Pigafetta-Bot)
robots.txt - Come posso impedire a Pigafetta di visitare il mio sito?
Pigafetta aderisce alla sintassi standard del file robots.txt; in particulare supporta la direttiva Disallow. Se vuoi impedire a Pigafetta di visitare il tuo sito, basta tu aggiunga queste righe nel tuo file robots.txt:
User-agent: Pigafetta Disallow: /
Pigafetta obbedirà alle direttive relative al primo record trovato con User-Agent uguale a "Pigafetta". Se non vi è alcun record con tale nome, obbedirà alle direttive relative al primo record trovato con User-Agent uguale a "*".
Pigafetta non richiederà alcun documento il cui URL è contenuto in un percorso vietato, es.:
User-agent: *
Disallow: /private
vieterà l'accesso a tutti gli URL che inizino con "/private". Per esempio nessuno dei seguenti potrà essere richiesto:
/private/
/private_www/
/private.html
Pigafetta controlla sempre il file robots.txt prima di accedere a un sito o a un sottodominio; il caso di file robots.txt mancante (HTTP 404), sarà interpretato secondo lo standard: accesso consentito.
Qualsiasi valore di ritorno nel responso HTTP diverso da "200 OK" o da "404 Not Found" impedirà a Pigafetta di esplorare il sito per la sessione corrente, perché non può leggere cosa gli è consentito fare.
Meta Tag Robots
Pigafetta riconosce le direttive noindex e nofollow nei meta tag. Se inserisci questa linea nella sezione head della tua pagina:
<meta name="robots" content="noindex, nofollow" />
o
<meta name="Pigafetta" content="noindex, nofollow" />
Pigafetta marcherà la pagina come non indicizzabile, e non seguirà i suoi link.
HTTP header X-Robots-Tag
Il bot riconosce anche le direttive noindex e nofollow impostate con degli header HTTP. Se il tuo server restituisce uno dei seguenti valori negli header del responso HTTP:
X-Robots-Tag: noindex, nofollow
o
X-Robots-Tag: Pigafetta: noindex, nofollow
Pigafetta marcherà la pagina come non indicizzabile, e non seguirà i suoi link.
Crawl-Delay
Ci sono già fin troppi web crawler maleducati là fuori, e una delle peggiori cose un bot possa fare è bombardare un sito web con centinaia di richieste http al secondo. È come tentare un attacco DOS, e può velocemente esaurire la banda passante concessa a proprietario di un piccolo sito dal suo host provider.
Pigafetta è differente. Obbedisce strettamente alla direttiva Crawl-Delay, se presente (Crawl-Delay è un'estensione alla sintassi standard del robots.txt, permette al proprietario di un sito web di indicare il minimo intervallo in secondi richiede sia rispettato da un bot tra una richiesta HTTP e l'altra).
Basta tu aggiunga al tuo file robots.txt file la seguente linea:
Crawl-delay: 2
e Pigafetta la rispetterà.
Puoi anche esprimere decimi di secondo, usanto il punto come separatore di decimali; il valore massimo è 2.0 (valori più alti saranno interpretati come 2 secondi).
Se il tempo di risposta del tuo sito è maggiore del crawl delay, Pigafetta attenderà più a lungo per dare al tuo sito tempo per rispondere, senza sovraccaricarlo.
Direttiva Allow
La direttiva Allow è un'estensione alla sintassi originale del robots.txt. Permette di concedere il permesso di visitare un sottoinsieme di percorsi bloccati da una direttiva Disallow.
Purtroppo vi sono due politiche comunemente adottate per interpretare l'ordine di precedenza di due direttive: secondo il loro ordine di apparizione nel contenuto del robots.txt, e secondo la loro lunghezza. Pigafetta adotta la stessa strategia usata da Googlebot, e il valore di direttiva più lungo è quello che vince.
wildcard "*" e "$"
Pigafetta supporta appieno il "pattern matching tramite wildcard" di valori di percorsi, altra estensione alla sintassi originale del robots.txt:
"*" indica 0 o più occorrenze di un qualsiasi carattere valido;
"$" indica la fine di un URL
Altri comportamenti degni di nota
- Pigafetta supporta l'header HTTP rel="canonical".
- Pigafetta permette opzionalmente (comportamento non predefinito) di accettare codici HTTP 30x di redirezione per il file robots.txt, comportamento che potrebbe meglio soddisfare il desiderio del proprietario del sito.
Ulteriori considerazioni
Non abbiamo mai lasciato Pigafetta correre libero nelle praterie del web senza prima essere sicuro tutte queste funzioni fossero presenti e correttamente funzionanti.
Usiamo batterie di "unit test" per evitare errori e regressioni. Tuttavia, a differenza del robot, siamo tutti umani e possiamo fare errori di programmazione, così se noti lo spider comportarsi in modo non corretto, come visitare una pagina o cartella che non dovrebbe visitare, o usare una frequenza di crawl troppo alta, o hai semplicemente domande da porre, sentiti libero di contattarci all'indirizzo dichiarato dal bot. Apprezzeremo il feedback.
Siccome Pigafetta gira all'interno di Visual SEO Studio, un software SEO per il desktop scaricabile da ovunque, non ci è possibile fornire un intervallo di indirizzi IP da cui le chiamate di Pigafetta possano originare.
Esiste anche la possibilità teorica che più di un utente decida di esplorare lo stesso sito allo stesso tempo, con il risultato di una apparente frequenza di crawl più alta, ma è una possibilità probabilmente abbastanza remota.
Miglioramenti futuri
- Supporto alle direttive meta e HTTP noarchive, sia nelle forme generica e specifica per il singolo user-agent.
- Supporto alle direttive meta e HTTP unavailable_after, sia nelle forme generica e specifica per il singolo user-agent.
Da dove viene fuori il nome Pigafetta?
È pratica comune dare ai web crawler nomi di esploratori famosi.
Antonio Pigafetta era uno studioso Italiano che accompagnò Magellano nel primo viaggio attorno al mondo, tra il 1519 e il 1522.
Magellano morì prima di completare l'impresa, e il suo ruolo fu rilevato da Elcano.
Pigafetta fu uno dei pochi sopravissuti giunti a destinazione; ci lasciò un completo e affascinante diario a racconto dell'impresa, e una descrizione di tutti i posti visitati.
Il suo diario di viaggio è una piacevole lettura che consiglio caldamente. Apprezzerai l'avventura e scoprirai un fine narratore, libero da pregiudizi razzisti, sinceramente affezionato al suo comandante e appassionato di scienza (prendendo in considerazione l'epoca in cui visse), ricerca, e del suo lavoro.
Nessuna registrazione richiesta