Server-Logfile-Analyse

Analysieren Sie Access-Logs von Apache, Nginx und IIS: Welche Bots welche Bereiche crawlen, welche Statuscodes sie erhalten und wie viele ihrer Anfragen in Fehlern enden. Optional prüfen Sie die Identität der Bots per Forward-Confirmed Reverse DNS.

Was es leistet

Ein Log lesen

log-analyze liest eine Access-Logdatei, unkomprimiert oder als gzip, und erkennt das Format anhand der ersten Zeilen. Anfragen gruppiert es nach Bot-Familie und meldet Treffer, Bytes, eindeutige IPs, Statuscodes und besuchte Bereiche. Die Ergebnisse beschreiben den gelesenen Teil des Logs, nicht die ganze Website.

  • Formate: Apache und Nginx im Common- oder Combined-Format sowie IIS im W3C-Extended-Format.
  • --max-lines legt ein explizites Eingabelimit fest.
  • Die Ergebnisse werden seitenweise ausgegeben, --bot und --ip filtern sie.

Bots verifizieren

Der User-Agent allein beweist nichts. Mit --verify-bots prüft SpiderHead, ob eine IP auf einen offiziellen Hostnamen auflöst und ob dieser Name zurück auf dieselbe IP aufgelöst wird. Jede IP erhält ein Urteil: verifiziert, gefälscht oder ungeprüft. Ist DNS auf Ihrem Rechner blockiert, lautet das Ergebnis „nicht verfügbar“, nicht „gefälscht“.

  • --max-dns begrenzt die DNS-Abfragen auf 0 bis 100 pro Seite.
  • Bots ohne offiziellen Host-Suffix bleiben ungeprüft.
  • Nur diese Option stellt Netzwerkanfragen, und zwar DNS-Abfragen.

Fehler und Ihr Crawl

Für jede Bot-Familie vermerkt der Bericht, wenn mehr als 10 % der Anfragen 4xx- oder 5xx-Antworten erhalten. Um Bot-Besuche mit einem Crawl zu vergleichen, importieren Sie das Log mit logs-import in ein Projekt. logs-join listet dann gescannte URLs, die Bots nie angefragt haben, angefragte URLs, die im Scan fehlen, Fehlerantworten und nicht indexierbare URLs, die Bots besuchen.

  • Ansichten: scan_without_bot_visits, bot_urls_absent_scan, status_waste, nonindexable.
  • URLs, die im Scan fehlen, sind Kandidaten für eine Prüfung, keine bewiesenen verwaisten Seiten.
  • logs-summary und logs-bots liefern Übersichten nach Tag, Status und Bereich.

Drei Schritte, ein gespeicherter Scan

  1. Auf ein Access-Log zeigen

    Geben Sie eine Apache-, Nginx- oder IIS-W3C-Logdatei an, unkomprimiert oder gzip-komprimiert. Das Format erkennt das Tool anhand der ersten Zeilen.

  2. Anfragen nach Bot gruppieren

    Treffer, Bytes, eindeutige IPs, Statuscodes und besuchte Bereiche für jede Bot-Familie, von Googlebot und Bingbot bis zu KI-Crawlern und SEO-Tools.

  3. Bot-Identität verifizieren

    Mit --verify-bots erhält jede Bot-IP eine Prüfung per Forward-Confirmed Reverse DNS: verifiziert, gefälscht oder ungeprüft. Der User-Agent allein gilt nie als Beweis.

Ein Befehl

bash
seohead log-analyze --path ./access.log --verify-bots

Zuerst installieren: Installationsanleitung. Jeder Befehl läuft auch als MCP-Tool für KI-Agenten.

Was Sie brauchen

  • Eine Access-Logdatei von Apache, Nginx oder IIS (gzip erlaubt) oder ein Importordner
  • Optional: ein Projekt und ein gespeicherter Scan, um Logs mit einem Crawl zu vergleichen
  • Optional: funktionierendes ausgehendes DNS für --verify-bots

Grenzen

  • Gelesen werden nur die unterstützten Logformate. Eigene Feldaufbauten werden nicht gelesen.
  • Bot-Namen sind Behauptungen aus dem User-Agent, bis sie verifiziert sind.
  • Ein fehlendes oder unvollständiges Log beweist keine null Besuche.
  • Apache-Zeilen ohne Zeitzone und IIS-Zeitstempel werden als UTC gelesen.

Fragen

Sendet das Tool etwas oder verändert es meine Website?
Nein. Das Log wird von Ihrer Festplatte gelesen, die Website wird nie kontaktiert. Nur --verify-bots stellt Netzwerkanfragen, und zwar DNS-Abfragen für Bot-IPs.
Woran erkenne ich, dass ein Googlebot-Treffer echt ist?
Starten Sie mit --verify-bots. Der Reverse-DNS-Name muss auf googlebot.com, google.com oder googleusercontent.com enden und zurück auf dieselbe IP aufgelöst werden. Ist DNS blockiert, meldet das Tool die Verifizierung als nicht verfügbar, statt jeden Bot als gefälscht zu markieren.
Welche Server und Formate werden unterstützt?
Apache und Nginx im Common- oder Combined-Format sowie IIS im W3C-Extended-Format. Die IIS-Spalten werden aus der Zeile #Fields gelesen, daher funktioniert auch eine geänderte Feldreihenfolge. gzip-Dateien werden direkt gelesen.
Wie wird die Verschwendung von Crawl-Budget gemessen?
log-analyze weist je Bot-Familie den Anteil der 4xx- und 5xx-Antworten aus. Liegt er über 10 %, vermerkt das Tool, dass die Familie Crawl-Budget verschwendet. Um Bot-Treffer mit den URLs zu vergleichen, die gecrawlt werden sollen, importieren Sie das Log und nutzen logs-join gegen einen gespeicherten Scan. Ein Abgleich mit einer Sitemap erfolgt nicht.
Was wird auf der Festplatte gespeichert?
log-analyze schreibt keinen Bericht, nur einen temporären Index, den es wieder entfernt. logs-import schreibt eine private SQLite-Datei logs.v1 mit Zählungen nach Bot, IP, URL, Datum und Status. Originalzeilen, User-Agents oder Referrer werden nicht gespeichert. IPs und Pfade können Personen dennoch identifizieren; halten Sie die Datei daher aus öffentlichen Berichten fern.
Was kostet es?
Nichts. Das Tool ist kostenlos und braucht weder Schlüssel noch Konto.

Testen Sie es auf Ihrer eigenen Website