← Alle Tipps

Crawl kommt nicht durch: 403, Zeitlimit, Login-Bereich

Der Crawl läuft an, und nach vierzig Adressen steht in der Spalte Status dreimal eine 403, zweimal eine Zeitüberschreitung, und der halbe Shop taucht nicht auf, weil er hinter einem Login liegt, von dem niemand gesprochen hat. Der Schaden entsteht nicht durch die Sperre, sondern dadurch, dass ein unvollständiger Crawl nicht unvollständig aussieht: Er sieht aus wie eine Website mit 180 Seiten, die Kennzahlen darüber wirken plausibel, und der Bericht daraus beschreibt eine Website, die es so nicht gibt. Die Lücke fällt zunächst niemandem auf.

So gehen Sie mit JMX vor

  1. Lesen, was der Lauf gemeldet hat. Im Reiter Ergebnisse sagen die Spalten Status, Indexierbarkeit und Grund, was zurückkam; der Unterreiter robots.txt führt die Adressen, die die Datei gesperrt hat.
  2. Tempo drosseln, bevor Sie sonst etwas ändern. Unter Einstellungen → Crawl stehen Parallele Anfragen und Parallele Anfragen pro Host ab Werk auf 5, Pause zwischen Anfragen (ms) auf 0. Bei 429 gehen Sie auf 1 bis 2 Anfragen und 500 bis 2000 ms; daneben stehen Zeitüberschreitung (s) auf 30 und Wiederholungsversuche auf 2.
  3. Crawl-delay ernst nehmen. Crawl-delay beachten übernimmt die Angabe aus der robots.txt, und es gilt der größere der beiden Werte — Ihre Pause ist eine Untergrenze. Der Reiter Technik nennt die Sekundenzahl: 10 Sekunden bedeuten für 5.000 Seiten rechnerisch mehr als 13 Stunden.
  4. Die Kennung prüfen. Unter User-Agent und Vorlage crawlt JMX ab Werk als JMXBot/1.0 mit Kontaktadresse. Die Kennung entscheidet mit, welche Gruppe der robots.txt greift: Mit der Vorlage Googlebot gelten die Googlebot-Regeln — auf fremden Servern eine Falschangabe.
  5. Basic Auth hinterlegen. HTTP-Basisauthentifizierung mit Benutzername und Passwort, ohne Fenster über jmx-cli --user … --password ….
  6. Hinter dem Login crawlen. Formularbasierte Anmeldung einschalten, Adresse der Login-Seite eintragen, bei Bedarf Feldname Benutzername (optional) und Feldname Passwort (optional). JMX ruft die Seite ab, füllt das Formular aus und schickt versteckte Felder wie CSRF-Token unverändert mit; zeigt die Antwortseite wieder ein Passwortfeld, bricht der Lauf ab.
  7. Selbstsigniertes Zertifikat. Das steht im Reiter Umgebungen: Ungültige Zertifikate akzeptieren gilt nur für die Testumgebung, die Live-Seite wird unverändert gecrawlt. In der Kommandozeile --insecure.

Worauf Sie achten müssen

Der häufigste Fehlschluss hat mit dem Server nichts zu tun. Ohne Lizenz wertet JMX höchstens 25 Seiten je Auswertung aus, und die Grenze meldet sich jedes Mal. Ein Lauf, der bei 25 Adressen endet, ist kein Bot-Schutz.

Gegen einen Bot-Schutz hilft an den Einstellungen ohnehin nichts. Wiederholt wird nur, was vorübergehend ist — Zeitüberschreitungen, 429 und 5xx —, bei 429 wartet JMX die vom Server genannte Zeit ab; eine 403 steht nach dem ersten Versuch fest. JMX wechselt keine IP-Adresse und löst kein CAPTCHA. Der Reiter Rendern ist kein Ausweg: Er arbeitet auf dem geladenen Crawl, und an einer Seite mit 403 gibt es nichts zu rendern. Was hilft, liegt auf der anderen Seite: eine Ausnahme in der Firewall für Ihre IP-Adresse oder Ihre Kennung.

Zwei Sonderfälle bleiben. Ein Entwurf unter Eigene robots.txt (Entwurf) gilt nur für die Hosts der Startadresse; ein Testsystem unter eigenem Hostnamen behält seine Live-Datei. Und robots.txt beachten abzuschalten — --ignore-robots in der Kommandozeile — ist eine Entscheidung für eigene Systeme.

Halten Sie deshalb in jedem Bericht fest, wie viele Adressen der Lauf erreicht und wie viele der Server verweigert hat: Sonst vergleichen Sie beim nächsten Crawl gegen einen Bestand, dessen Lücke niemand mehr erklärt.

TippsCrawlingrobots.txtTechnisches SEO