« Zurück zum Magazine

Der Beweis, dass Noindex in der robots.txt funktioniert und Google dieses auch im September noch nutzen sollte

Eines der Themen, die seit einigen Monaten eine erhöhte Aufmerksamkeit im Bereich SEO erhalten hat, ist die Frage nach dem Umgang mit der Noindex-Direktive in der robots.txt. Was für viele SEOs sicher eher ein Geheimtipp für die Crawling- und Indexsteuerung ist, soll bald der Vergangenheit angehören.

Auf ihrem Webmaster Central Blog hat Google am 02. Juli 2019 angekündigt, dass sie ab September nicht mehr auf das Noindex in der robots.txt setzen werden.

Auf Basis dieser Meldung haben einige Websites bereits damit begonnen, ihre robots.txt zu bereinigen und die Noindex-Angaben zu entfernen. Wie sich anhand eines Cases jedoch zeigt, ist eine zu vorzeitige Entfernung des Noindex in der robots.txt direkte Konsequenzen haben kann. Vielmehr muss man sich auf Basis dieser Erkenntnisse daher eher die Frage stellen, ob es von Google überhaupt eine gute Idee ist, zukünftig auf diese Lösung zu verzichten.

Der Nutzen von Noindex in der robots.txt

Innerhalb der SEO-Szene gab es sicherlich über die Jahre immer unterschiedliche Meinungen und Erfahrungswerte zu dieser robots.txt-Angabe. Während die einen auf die bereits 2008 durch Matt Cutts vorgestellte Lösungsoption setzten, waren die anderen eher skeptisch, was den tatsächlichen Nutzen dieser Direktive betrifft.

Prinzipiell funktioniert die Noindex-Angabe in der robots.txt (nicht zu verwechseln mit dem Robots-Tag im HTML-Head (Meta Robots) oder HTTP Response Header (X-Robots)) quasi analog wie die Disallow-Direktive, nur mit der Erweiterung, dass über das Noindex besser verhindert werden kann, dass vom Crawling gesperrte URLs in den Google-Index gelangen können. Prinzipiell könnte man meinen, dass es unmöglich ist, dass eine Seite nicht gecrawlte Seite indexiert wird. Doch sowohl die Praxis der letzten Jahre als letztlich auch die Dokumentation von Google belegt, dass ein Disallow die Indexierung von URLs nicht verhindern kann. Der Hintergrund: Um eine Adresse crawlen zu können, muss die Adresse bekannt sein. Dazu sind Verweise von einer bekannten Adresse notwendig. Entsprechend liegen Daten zu einer URL vor, bevor diese (erstmalig) aufgerufen wird.

google-serp-no-information

Abbildung 1: Exemplarisches Google-Suchergebnis ohne Seiteninformationen aufgrund einer robots.txt-Sperre

Diejenigen, die in der Vergangenheit mit der Noindex-Angabe in der robots.txt gearbeitet haben, konnten die Erfahrung machen, dass man darüber solche ungewollten Indexierungen verhindern kann. Zum Teil wurde die Erfahrung gemacht, dass über diese Direktive bereits indexierte URLs aus dem Suchmaschinenindex entfernt wurden. Damit konnte man jedoch nicht sicher planen.

Warum die von Google offerierten Alternativen keine Optionen sind

Nichtsdestotrotz war das Noindex in der robots.txt eine der bisher effizientesten Quickwin-Optionen, um gleichzeitig das Crawling und die Indexierung einer Website für bestimmte Anwendungsfälle zu optimieren. Sicherlich liegt der Schlüssel für eine optimale Crawling- und Indexsteuerung eher in einer sauberen technischen Umsetzung, in der ich z.B. keinerlei URL-Signale auf nicht relevante Seiten in meinem Quellcode verankere, aber erfahrungsgemäß kann bei Websiteprojekten selten innerhalb kürzester Zeit den gewünschten Zustand umsetzen.

Daher ist es umso bedauerlicher, dass uns Google ab September die Noindex-Direktive in der robots.txt entzieht. Interessant wiederum ist es, welche Alternativen Google uns nunmehr vorstellt:

alternativen-noindex-robots-txt

Abbildung 2: Alternativen zum Noindex in der robots.txt laut Google

Nach meiner Einschätzung sind die obigen Optionen, die Google in seinem Webmaster Central Blog Beitrag angegeben hat, zum Großteil nicht nachvollziehbar oder mindestens einmal sehr unglücklich kommuniziert:

  • Meta-Robots-Tag „noindex“: Hiermit stelle ich zwar sicher, dass die URLs nicht in den Google-Index gelangen oder von dort entfernt werden, aber die URLs können dennoch gecrawlt werden und im schlechtesten Fall das Crawlbudget negativ beeinflussen. In diesem Sinne kommt diese Option für viele Anwendungsfälle nicht infrage.

  • 404 oder 410 HTTP-Statuscode: Wenn eine URL nicht mehr existieren soll, ist der Einsatz von einem 404 oder besser 410 HTTP-Statuscode sicher eine Möglichkeit. Dennoch ist es zweifelhaft einen Fehlercode als eine Alternative zum Noindex in der robots.txt vorzustellen.

  • Passwortschutz: Auch diese Empfehlung passt zu 99% der Fälle nicht. Sicherlich ist das optimalste Setup für die Indexsteuerung eines Staging-Systems ein Passwortschutz. Dennoch ist es eine eher zweifelhafte Empfehlung, dies als Alternative zu nennen, ohne ein Beispiel zu liefern. Zumal nun Bereiche per Passwort geschützt werden, die vorher für Nutzer ohne Passworteingabe zugänglich und nur für Crawler gesperrt waren.

  • URL-Entfernen-Funktion: Diese Funktion in der Google Search Console ist ein prinzipiell tolles Instrument, um kurzfristig URLs aus dem Index entfernen zu können. Wie mein Blogartikel vor ein paar Wochen zu dem Thema jedoch zeigt, müsste das Tool noch weiter ausgebaut werden, damit ungewollte URLs aus den Suchergebnissen verbannt werden können.

  • Disallow in der robots.txt: Wie oben bereits beschrieben, verhindert die derzeitige Disallow-Angabe nicht zufriedenstellend die Indexierung von URLs. Man kann also hier nur darauf hoffen, dass Google mit ihrer Aussage „we aim to make such pages less visible in the future“ entsprechend ihren Disallow-Befehl verbessert.

Welche Konsequenz Googles veränderte Sichtweise zum Noindex in der robots.txt hat

Auch wenn man mit den bestehenden Alternativen nicht zufrieden sein mag, muss man sich als Website-Betreiber in den nächsten Wochen darauf einrichten, seine robots.txt anzupassen und auf die Noindex-Angabe zu verzichten. Dies ist insbesondere wichtig, weil eine Nicht-Interpretation von Angaben in der robots.txt auch bewirken kann, dass alle weiteren Direktiven vom Crawler ignoriert werden können (siehe dazu auch den Kommentar von Tobias Schwarz hier). Ob dies hier auch für Google gilt, ist unbekannt.

Sofern man die Reihenfolge der robots.txt-Anweisungen beachtet, d.h. zuerst Disallow, dann Allow und erst am Ende beispielsweise ein Noindex, kann man sicherlich auch in Erwägung ziehen, den aktuellen Status Quo beizubehalten, falls man andere Suchmaschinen-Crawler – sofern diese denn mit dem Noindex in der robots.txt arbeiten – weiterhin diese Direktive mitzugeben. So oder so ist es sicherlich ratsam, ein entsprechendes Monitoring aufzusetzen, um Veränderungen im Crawling und der Indexierung ab dem 01. September im Blick behalten zu können.

Was eine frühzeitige Entfernung des Noindex in der robots.txt bewirken kann

Die entscheidende Frage, die sich bis dahin stellt: Was passiert eigentlich, wenn man bereits jetzt schon die Noindex-Direktiven in der robots.txt entfernt und sich nur noch auf die Disallow verlässt? Bei einem unserer Kunden wurde die robots.txt bereits eine Woche nach Veröffentlichung der Meldung durch Google angepasst, d.h. die Noindex-Angaben wurden aus der robots.txt entfernt und nur die zuvor ebenfalls vorhandenen Disallow-Duplikateinträge beibehalten. Was bereits einen Tag danach (!) passierte, war in unseren Augen durchaus überraschend.

gsc-abdeckung-meldung-nach-umstellung

Abbildung 3: Abdeckungsprobleme in der Google Search Console nach Entfernung des Noindex in der robots.txt

Relativ schnell nach der veränderten robots.txt hat Google damit begonnen, einzelne zuvor durch die Noindex-Angabe gesperrte URLs in den Index aufzunehmen. Durch die noch vorhandene Disallow-Direktive sind diese URLs zwar weiterhin vom Crawling blockiert. Dies ist jedoch nicht ausreichend, um eine Indexierung in Google zu verhindern. Anhand von diesem Case wurde uns noch einmal deutlich, wie effektiv das Noindex in der robots.txt tatsächlich wirkt!

In keinem mir bisher bekannten Fall ist uns dies so deutlich geworden wie hier (leider können wir den Kundennamen mit weiteren Details hier nicht nennen). In diesem Sinne ist es umso bedauerlicher, dass man ab September nicht mehr damit arbeiten kann. Es bleibt einzig die Hoffnung, dass Google zukünftig die Vorteile des Noindex in der robots.txt auf die Disallow-Angabe überträgt.

Fazit

Wie man anhand des vorgestellten Cases mitbekommen hat, ist eine zu frühzeitige Korrektur der robots.txt um die noch vorhandenen Noindex-Direktiven nicht zu empfehlen. Im schlechtesten Fall kann es dazu kommen, dass, wie für die Disallow-Angabe üblich, damit geblockte URLs indexiert werden.

Auch wenn wir nicht wissen, welche Veränderungen ab dem 01. September 2019 durch die Umstellungen bei Google auf uns zukommen werden, ist nach aktuellem Stand dazu zu raten, dass man seine robots.txt möglichst nah um den September-Termin anpassen sollte. Ebenfalls ist ein Index-Monitoring der in der robots.txt gesperrten URLs zu empfehlen.

Darüber hinaus liegt die Lösung für eine optimale Balance aus Crawling und Indexierung auch weiterhin in einer technisch sauberen Umsetzung auf Website-Ebene. Das Problem bei dem hier vorgestellten Beispiel ist, dass es innerhalb des Quellcodes eine Vielzahl an Signalen gibt, die den GoogleBot dazu bringen, die besagten URLs crawlen bzw. indexieren zu wollen. Hierbei sind nicht zwangsläufig href- oder Formular-Links gemeint.

Im Rahmen von durchgeführten Logfile-Analysen hat sich gezeigt, dass auch URL-Snippets in Skripten, Kommentaren oder selbst definierten HTML-Attributen dazu führen können, dass Google sich auf diese URL-Pattern stürzt. Damit wird einmal mehr deutlich, dass es im SEO auf eine saubere Programmierung ankommt und man sich nicht nur ausschließlich auf die robots.txt als Mittel zur Crawlingsteuerung verlassen sollte. Um technisch bestmöglich aufgestellt zu sein, sind daher Maßnahmen wie Linkmaskierung, PRG-Pattern und Co. weiterhin notwendige Schritte.

In diesem Sinne: Happy Coding!

Update: In einem zweiten Blogbeitrag wird die hier angesprochene Thematik noch einmal aufgegriffen und aufgezeigt, inwiefern die Disallow-Angabe nach September 2019 eine andere Wirkungsweise hinsichtlich der Indexierung von gesperrten URLs besitzt. Eine Bewertung der neuen Google-Spielregeln im Hinblick auf die robots.txt ohne Noindex erhaltet ihr hier.

Deine Website. Nur besser. Mit Ryte.

Veröffentlicht am Jul 22, 2019 von Darius Erdt