Linux per SEO: gli strumenti di base per analizzare i log

Nel lontano 1996, prima di diventare SEO, ero un appassionato sistemista che si divertiva ad installare Linux un dischetto dopo l’altro (avete capito bene, le distro in cd sono arrivate un po’ dopo).

Non esistevano ancora nè KDEGnome e solo riuscire a far partire X Windows era un’impresa ma anche una grande soddisfazione. Volente o nolente ho dovuto iniziare da zero con la shell (la mitica Bash) per imparare ad interagire col sistema operativo e non c’è stata migliore palestra di quella.

Linux Shell Screenshot

Cosa c'è di più bello della shell di Linux?

Di anni ne sono passati parecchi ma ancora oggi tutte le configurazioni di Apache e Qmail le faccio rigorosamente a linea di comando col vi risparmiando tempo e ma mantenendo il totale controllo delle operazioni svolte.

Ho voluto quindi creare questa guida per i SEO che non conoscono Linux e vogliono divertirsi e smanettare con i numerosi tool a disposizione.

La cassetta degli attrezzi

Non serve essere dei maghi della tastiera per operare velocemente con la shell ma alcuni comandi devono essere memorizzati e padroneggiati alla perfezione.

Nella mia libreria ci sono molti manuali ma ve ne voglio consigliare uno in italiano che sicuramente è un’ottima guida di riferimento:

Unix. Manuale per l’amministratore di sistema

E’ in italiano, non è recente ma è molto completo. Io preferisco sempre avere un manuale cartaceo ma devo dire che online c’è tutto quello che serve per imparare da zero l’uso anche avanzato della shell.

 

L’importanza di poter accedere ai log

Prima di addentrarci nella sintassi dei comandi e negli esempi concreti credo sia doveroso fare una premessa. La possibilità di accedere ai log del server web per i SEO che gestiscono siti di una certa importanza è davvero utile. E’ vero che il Google Webmaster Tools consente operazioni diagnostiche e di monitoraggio consultando il report delle Statistiche di scansione ma i dati raccolti da questo report sono aggiornati con un certo ritardo a volte eccessivo per siti di importanza strategica ed economica. Poter accedere istantaneamente ai log, estrapolare dati più volte al giorno, controllare costantemente l’attività del bot è quindi un valore aggiunto anche per il SEO.

 

 Anatomia di un web log

Visto che operiamo in ambiente Linux, il server web per eccellenza è Apache e quindi ho voluto riportare di seguito un estratto del file di configurazione e di un vero e proprio log di un sito che gestisco.

Estratto dell’httpd.conf:

LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” combined
LogFormat “%h %l %u %t \”%r\” %>s %b” common

La direttiva LogFormat, come si intuisce facilmente dal nome, consente all’amministratore di sistema di specificare il formato del log. E’ possibile quindi aumentare o diminuire i dati tracciati a seconda dello scopo. Ovviamente più dati si conservano maggiori sono le possibilità di analisi ed elaborazione. Da notare la presenza della direttiva %{Referer}i\ un campo molto caro a noi SEO :).

Estratto del log di questo blog:

222.122.190.106 – – [30/Jan/2012:17:06:24 +0100] “GET /feed/ HTTP/1.1” 200 11891 “-” “ZumB
ot/1.0 (ZUM Search; http://help.zum.com/inquiry)”

Vediamo di interpretare sinteticamente quanto riportato nella riga di sopra. Partendo da sinistra abbiamo l’indirizzo IP che ha fatto la richiesta al mio sito, la data in cui è stata effettuata, il tipo di metodo usato (in questo caso GET), la risorsa richiesta (il Feed del mio blog), il protocollo con la relativa versione (HTTP 1.1) , il codice restituito dal server 200 e i byte inviati, il referrer e i dati relativi a referrer.
Ovviamente queste informazioni variano nel caso la riga del log si riferita ad un “accesso umano” che, se non camuffato, riporterà il sistema operativo e il browser del visitatore.
I campi sono separati da spazi quindi una importazione in Excel è molto agevole e consente di separare in colonne i dati ed elaborarli come meglio si crede.

 

GREP (general regular expression print)

Grep – Il comando grep attraverso le regular expression effettua delle ricerche all’interno dei file.

grep [OPTION]… PATTERN [FILE]…

Iniziamo con l’estrapolare dai log l’attività dello spider di Google. Per fare questo è sufficiente avere la firma che Google lascia nei log di Apache e lanciare il comando grep nel seguente modo:

grep “Googlebot/2.1” logfile.log

Per memorizzare in un file alternativo il risultato del nostro comando bisogna effettuare una redirezione che nella shell si effettua con l’operatore > o >>.

grep “Googlebot/2.1” logfile.log >> googlebot.log

Alcune opzioni utili per ottenere eseguire comandi più sofisticati in grep:

–count (o -c): conta il numero di righe che rispettano il pattern e restituisce a video il numero stesso. E’ utile ad esempio se vogliamo confrontare il numero di volte che Googlebot visita il sito da un giorno all’altro.

-v: inverte il criterio inserito nel pattern.

Potete usare il grep per cercare all’interno dei log i codici di errore (ad esempio 404) oppure per monitorare l’attività di particolari bot che vi interessano. Ovviamente il file che ottenete dal comando grep è facilmente importabile in Excel altro strumento imprescindibile nel lavoro quotidiano di un SEO professionista.

Altri esempi:

grep “msnbot | slurp | googlebot” 1.log > bot.log

 

AWK

Iniziamo con un esempio di quello che si può fare con Awk sui nostri file di log filtrati tramite il Grep.

grep “www.google.com/bot.html” 1.log |awk ‘{print $4 “\t” $7}’ >googlebot.log

Presto seguiranno nuovi aggiornamenti di questo post….