Nel technical seo di livello avanzato, l’analisi delle metriche stimate o dei dati di terze parti non è sufficiente. Per comprendere esattamente come i motori di ricerca scansionano un sito, è necessario esaminare i dati reali registrati dal server web. Lo strumento definitivo per fare questo è l’analisi dei log, e il linguaggio ideale per elaborare questi grandi volumi di dati è python.
Indice contenuti:
Ogni volta che googlebot o un qualsiasi crawler visita il tuo sito, lascia un record indelebile nel file di log del server. Analizzare questi record permette di identificare dove viene sprecato il crawl budget, rilevare anomalie di risposta del server e scoprire errori che i normali crawler SEO non riescono a individuare. In questa guida tecnica vedremo come configurare uno script Python per analizzare i log del server.
Cosa sono i log del server e perché analizzarli?
Il log del server è un file di testo in cui il web server (es. Nginx o Apache) registra ogni singola richiesta HTTP ricevuta. A differenza dei software di tracciamento JavaScript (come Google Analytics), che registrano solo le visite degli utenti che eseguono script nel browser, i log registrano il 100% delle connessioni, incluse quelle di tutti i bot di ricerca.
Un tipico record in formato Nginx (Combined Log Format) si presenta così:
66.249.66.1 - - [02/Jun/2026:14:32:10 +0200] "GET /it/seo/consulente-seo HTTP/1.1" 200 4521 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
Da questo singolo rigo possiamo estrarre:
- L’indirizzo ip del client.
- La data e l’ora della richiesta.
- L’URL richiesto.
- Il codice di risposta HTTP (es. 200, 301, 404, 500).
- La dimensione della pagina in byte.
- Il nome del bot (User-Agent).
Perché usare Python per l’analisi dei log?
I file di log dei siti medio-grandi possono pesare diversi gigabyte e contenere milioni di righe di testo. Programmi come Excel o fogli di calcolo tradizionali vanno in crash con file così pesanti. Python, grazie a librerie altamente ottimizzate come **Pandas**, consente di caricare, filtrare ed analizzare milioni di righe in pochi secondi.
Con Python è possibile automatizzare operazioni ripetitive quali:
- Filtrare gli accessi escludendo gli utenti reali e isolando solo il traffico dei bot (Googlebot, Bingbot, ecc.).
- Effettuare una verifica DNS inversa (Reverse DNS Lookup) per validare che l’indirizzo IP appartenga realmente a Google, eliminando i bot malevoli che si mascherano da Googlebot.
- Calcolare la distribuzione dei codici di stato per assicurarsi che il crawler non perda tempo su redirect infiniti o pagine non trovate.
Esempio pratico: Script Python per analizzare un file di log
Ecco uno script Python di base che utilizza espressioni regolari (regex) e Pandas per analizzare un file di log in formato Nginx e generare un piccolo report sulle richieste di Googlebot:
import re
import pandas as pd
log_pattern = re.compile(
r'(?P\S+)\s+\S+\s+\S+\s+\[(?P.*?)\]\s+"(?P.*?)"\s+(?P\d{3})\s+(?P\S+)'
)
def parse_log_file(file_path):
parsed_lines = []
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
match = log_pattern.match(line)
if match:
data = match.groupdict()
# Considera solo Googlebot
if 'googlebot' in line.lower():
parsed_lines.append(data)
df = pd.DataFrame(parsed_lines)
df['status'] = df['status'].astype(int)
print("=== STATISTICHE DI RISPOSTA GOOGLEBOT ===")
print(df['status'].value_counts())
print("\n=== TOP 5 URL SCANSIONATI ===")
# Estrae solo l'URL dalla stringa della richiesta (es. "GET /url HTTP/1.1")
df['url'] = df['request'].apply(lambda x: x.split()[1] if len(x.split()) > 1 else x)
print(df['url'].value_counts().head(5))
# Esempio di utilizzo:
# parse_log_file('access.log')
FAQ — Domande Frequenti sull’Analisi dei Log
Qual è il ruolo di Python nell’analisi dei big data applicata alla SEO?
Python agisce come un elaboratore estremamente potente e scalabile in grado di ripulire, manipolare e aggregare insiemi di dati enormi provenienti da diverse fonti (log del server, dati API di Google Search Console, scansioni di Screaming Frog) per produrre report visivi pronti all’uso.
Cos’è l’analisi dei log ed in cosa differisce dai dati di Google Analytics?
L’analisi dei log legge direttamente i dati scritti dal server web per ogni singola transazione HTTP, senza l’ausilio di script client-side. Google Analytics mostra solo il comportamento degli utenti umani con JavaScript attivo, ignorando completamente i crawler e le connessioni andate a buon fine ma non renderizzate dal browser.
Come posso identificare un attacco o uno spreco di crawl budget dai log?
Nei log noterai subito la frequenza di scansione su URL non canonici o pieni di parametri inutili. Se noti che Googlebot spende il 40% del tempo a richiedere risorse con parametri di filtraggio, significa che devi intervenire sul robots.txt per non sprecare il tuo budget su pagine non rilevanti.
