Fehler beim Crawling

Patrick Ugol
Patrick spielt bei SISTRIX den inhouse Erklär-Bär in Webinaren, Seminaren, Tutorials und bei Frag SISTRIX Artikeln. Nebenbei steht er auch gerne knietief in unseren englischen Texten und scheucht unsere Übersetzer durch die Gegend.
Kategorie: Optimizer Modul

Es gibt verschiedene Gründe, wieso der Sistrix Crawler die Inhalte einer Webseite nicht komplett erfassen kann. Auf dieser Seite möchten wir die häufigsten Ursachen vorstellen, Hintergründe erläutern sowie Lösungsmöglichkeiten aufzeigen.

Der SISTRIX Crawler

Alle Zugriffe, die wir im Rahmen der SISTRIX Toolbox machen, werden durch den SISTRIX Crawler durchgeführt. Dieser ist durch zwei Merkmale identifizierbar: zum einen der Useragent welcher bei jedem Zugriff auf eine Webseite automatisch übermittelt wird. Dieser lautet standardmäßig:

Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)

Zum anderen lösen alle IP-Adressen des SISTRIX Crawler auf einen Hostnamen der Domain “sistrix.net” auf. Unser Crawler auf der IP 136.243.92.8, zum Beispiel, besitzt damit den reverse-DNS Eintrag 136-243-92-8.crawler.sistrix.net.

Der SISTRIX Crawler beobachtet die Ladegeschwindigkeit der besuchten Seiten fortlaufend und passt die Geschwindigkeit, mit der neue Seiten angefordert werden dieser Rate an. So können wir sicherstellen, dass der Webserver nicht überfordert wird. Weitere Informationen sind unter crawler.sistrix.net verfügbar.

Im Optimizer habt Ihr zudem die Möglichkeit, den User-Agent des Optimizer Crawlers sowie die Crawl-Intensität zu steuern. Im jeweiligen Projekt findet Ihr unter „Projekt-Management > Crawler“ die Optionen in den Boxen „Crawling Einstellungen“ und „Crawling Geschwindigkeit“.

Robots.txt

Vor dem ersten Zugriff auf eine Webseite fordert unser Crawler eine Datei mit dem Dateinamen “robots.txt” im Rootverzeichnis, sowie auf den einzelnen Hostnamen, der Domain an. Ist diese vorhanden, so werten wir diese aus und halten uns an die dort vorgegebenen Einschränkungen und Regeln. Dabei werden sowohl Regeln, die für “sistrix” gelten akzeptiert, als auch allgemeinverbindliche Regeln mit dem Identifier “*”. Solltest Du eine robots.txt-Datei nutzen, so kontrolliere den Inhalte bitte darauf, ob der SISTRIX Crawler nicht unbeabsichtigt ausgesperrt wurde.

Wenn Ihr in der robots.txt eine Sitemap angegeben habt, wird unser Crawler diese aufrufen und als Crawlgrundlage nutzen.

Cookies

Unser Crawler speichert bei der Überprüfung der Seite keine Cookies. Stellt bitte sicher, dass unser Crawler auf alle Inhalte der Seite zugreifen kann ohne dass ein Cookie gespeichert werden muss. Ihr findet die IP unsere Crawlers im „Projekt-Management“ bei den „Crawler-Einstellungen“.

JavaScript

Unsere Crawler führen kein JavaScript aus. Stellt bitte auch hier sicher, dass alle Seiten als statische HTML Seiten aufrufbar sind, damit unser Crawler diese auswerten kann.

Serverseitige Sperren

Der SISTRIX Crawler kann auch serverseitig ausgesperrt werden. In diesem Fall erhält der Crawler bei seinem ersten Zugriff bereits eine Fehlermeldung mit dem HTTP-Statuscode 403 (Verboten) und kann in Folge keine Seiten auf diesem Server erfassen. Solch eine serverseitige Sperre kann auf verschiedenen Systemebenen eingerichtet sein. Ein guter erster Anhaltspunkt ist die Kontrolle der Datei “.htaccess” des Apache-Webservers. Sollten hier keine Hinweise zu finden sein, so muss der Provider/Hoster kontaktiert werden. Wir haben leider keine Möglichkeit diese serverseitigen Sperren von unserer Seite zu deaktivieren.

Beispiele für häufig auftretende Beschränkungen

Der Crawler wird über die robots.txt gesperrt

Wenn unser Optimizer Crawler über die robots.txt gesperrt wird, bekommst Du einen „Robots.txt verbietet crawling“ Fehler im Projekt angezeigt. Prüfe bitte ob es generelle (User-Agent: *) oder spezielle (User-Agent: sistrix) Beschränkungen in der robotx.txt gibt. Wenn Du einen eigenen User-Agent in den Crawler-Einstellungen des Projekts geändert hast, prüfe bitte auch diesen.

Es konnten nur sehr wenige oder gar keine Seiten gecrawlt werden

Wenn unser Crawler nur wenige oder sogar nur eine oder gar keine Seite crawlen kann, gibt es mehrere mögliche Szenarien. Geh im Optimizer Projekt auf „Analyse > Expertenmodus“. Dort findest Du eine umfangreiche Liste zu allen gecrawlten HTML Dokumenten der Domain. In der Tabelle findest Du den Status Code wenn Du ein wenig nach rechts scrollst. Dieser kann viel darüber aussagen, warum nicht alle Seiten gecrawlt wurden.

  • 200: Wenn der Status Code 200 beträgt und trotzdem keine weitere Seite gecrawlt wurde liegt es häufig an folgendem:

    • Fehlende interne Verlinkungen: Unser Crawler folgt allen internen Verlinkungen die nicht für den Crawler geblockt sind. Prüfe bitte, dass interen Links auf der Startseite vorhanden sind und ob die Zielseiten für unseren Crawler, entweder per robots.txt oder über die Crawler-Einstellungen, gesperrt sind.
    • Geo-IP Einstellungen: Um die Webseite jedem Nutzer in seiner entsprechenden Sprache auszuliefern, wird gerne geschaut aus welchem Land die abfragende IP stammt. All unsere Crawler stehen in Deutschland, wodurch es notwendig wird unsere Crawler IP entsprechend freizuschalten, wenn unser Crawler über eine Geo-IP Schranke auf alle Sprachinhalte zugreifen soll.
  • 301 / 302: Bei einem Status Code 301 und 302 schaue bitte ob die Weiterleitung auf eine andere Domain führt – wie zum Beispiel sistrix.at, welche per 301 Weiterleitung auf sistrix.de gelenkt wird. Der Optimizer Crawler bleibt immer auf der Domain (oder dem Host oder Verzeichnis) welche in den Projekt-Einstellungen eingetragen wurde. Hätte ich also ein Projekt für sistrix.at angelegt, würde unser Crawler die 301 Weiterleitung dort erkennen und im Expertenmodus anzeigen, der Weiterleitung jedoch nicht auf sistrix.de folgen.
  • 403: Wird sofort ein Status Code 403 ausgeliefert oder werden nach wenigen crawlbaren Seiten (Status Code 200) nur noch 403 Codes angezeigt, sollte geklärt werden warum der Server unserem Crawler einen Aufruf der Seite verbietet. Siehe hierzu bitte den Eintrag zu „Serverseitige Sperren„.
  • 5xx: Wenn in der Status Code Zeile ein Status Code 500 oder weitere 5xx Codes anzeigt werden, bedeutet dies, dass der Server die Anfrage aufgrund eines Serverfehlers nicht bearbeiten konnte. In diesem Fall solltest Du einige Minuten warten und den Crawler über den „Crawler neu starten“ Button im „Projekt-Management“ erneut starten. Wenn der Status Code weiterhin auftritt, sollte geprüft werden warum der Server überlastet ist und die Seiten nicht ausliefern kann.

Warum findet Google andere/mehr Inhalte als SISTRIX?

Unser Crawler startet immer auf der Startseite des Projekts, wobei weitere Startseiten in den Crawler-Einstellungen hinzugefügt werden können. Von dort aus folgen wir allen internen Links von denen unser Crawler nicht ausgeschlossen ist. Auf den verlinkten Seiten wiederum folgen wir erneut allen erlaubten internen Links, bis wir keine weiteren internen Links gefunden haben welche wir noch nicht abgefragt haben.

Hier kann es vorkommen dass zum Beispiel AdWords Landingpages, die nicht intern verlinkt sind um das AdWords Tracking nicht zu beeinflussen, nicht in der Auswertung auftauchen, da solche Seiten für unsere Crawler unsichtbar sind. Google sind diese Seiten natürlich bekannt.

Wenn Ihr eine Sitemap Eures Projekts bei Google eingereicht habt, lohnt es sich diese auch in der robotx.txt zu verlinken. Dort kann unser Crawler sie erkennen und als Crawlgrundlage nutzen.

Ein weiterer Grund, warum es zu unterschiedlichen Werten bei den indexierten Seiten der Google-Suche und der Anzahl der gecrawlten Seiten im Optimizer kommt, kann das Vorhandensein von Duplicate Content in der Google Suche sein.