Was es zu wissen gibt über die robots.txt

Das Thema robots.txt im Bereich SEO, in der OnPage-Optimierung, tritt aktuell verstärkt auf, unter anderem wegen der Empfehlung, und nun auch der Benachrichtigung aus der Search Console, die .JS und .CSS Dateien etc. für den Google-Crawler verfügbar zu machen, damit die Seite richtig gerendert werden kann. Auch die Thematik Crawler-Budget ist aktuell verstärkt in den Vordergrund geraten.

Braucht man überhaupt eine robots.txt

Fangen wir mal mit der grundlegenden Frage an ob man diese überhaupt braucht: In einem Hangout hat John Müller vom Google Team gesagt, dass es auch in Ordnung sei, keine robots.txt zu haben. Auch wenn bei zu vielen vorhanden URLs die Gefahr besteht, dass das Crawl-Budget dann nicht ausreicht um alle Seiten zu crawlen. Dazu hat John klar gemacht, dass es schon große Seiten sein müssen damit das passiert. Na ja, was ist aber schon groß?

Früher hat man um den Crawler zu schonen die .JS und .CSS Dateien geblockt, das ist aber nun überholt. Daher kann man in den meisten Fällen alles erlauben bzw. auf die robots.txt verzichten, außer für Bereiche die nicht für jeden Besucher sichtbar sein sollen, also hinter einem Login etc. versteckt sind.

Crawling-Budget, und wie crawlt der Googlebot?

Was von manchen als das Crawling-Budget bezeichnet wird,bezeichnet die verfügbaren Ressourcen vom Googlebot um eine Domain zu crawlen. Je nachdem wie interessant Google die Domain einschätzt, desto mehr Ressourcen stehen auch zur Verfügung.
Hier besteht nun die Gefahr, dass der Bot seine Ressourcen für unwichtige oder Seiten verbraucht die nicht indexiert werden sollen und so nichts mehr für die wichtigen Seiten übrig Bleibtreu würde.

Hier stellt sich die Frage ob Google überhaupt immer die ganze Domain crawlt. Hier war John Müller ganz klar, dass es keine Garantie gibt, dass Google die ganze Domain crawlt. Google versucht einzuschätzen wie wichtig die Unterseiten (URLs) sind, um zu entscheiden welche gecrawlt werden sollen. Wenn sich inhaltlich lange nichts ändert, zu viele URLs, leere Seiten, oder Inhalte sehr ähnlich sind wie z.B. bei Kalendern, dann wäre es ein Anzeichen dafür, nicht die ganze Domain zu crawlen. Wichtig: Hier zählen Bilder, Icons, CSS- und Javascript Files natürlich dazu! Diese werden vom Bot gecrawlt, genauso wie auch 404/410 – Seiten gecrawlt werden!

Man vergesse auch nicht, dass Seiten die auf noindex gesetzt sind, auch gecrawlt werden, außer wenn diese durch die robots.txt geblockt sind. URLs die den Statuscode 403, 500 etc. zurück liefern werden nicht gecrawlt.

Indexierung von Seiten ist unabhängig von der robots.txt

Ein mir schon oft vorgekommener Fehler ist die Annahme, dass wenn man eine URL in der robots.txt blockt, diese dadurch nicht mehr indiziert werden oder aus dem Index verschwinden. Auch ich habe diesen Fehler schon mal gemacht!
Man stelle sich vor, eine URL ist bei Google indexiert, samt Title und Description.
Nun trage ich diese URL in die Robots.txt als Disallow ein und parallel dazu noch auf der selben URL <meta name=“robots“ content=“noindex“ /> im <head> – Bereich , damit diese nicht mehr indexiert wird. Nun weiß der Googlebot noch nicht, dass die URL auf noindex gesetzt wurde und versucht beim nächsten Crawl die URL zu crawlen, wird aber jetzt durch unseren Disallow Eintrag geblockt und erfährt somit nicht, dass diese Seite auf noindex gestellt wurde.

Nach einiger Zeit würde man folgendes sehen:
Snippet von robots.txt geblockt

Ähnliches Verhalten bei Backlinks auf geblockte URLs, hier könnte die URLs trotzt disallow indexiert werden, aber eben ohne Inhalt.

Crawling durch Canonicalization und der robots.txt steuern

robots.txt does not fix canonicalization

Wenn eine Seite unterschiedliche URLs hat, dann sollte man einen Canonical-Link setzen der auf die originale bzw. gewünschte URL verweist.
Dadurch sagt man Google, dass die entsprechenden URLs gleich sind. Dadurch werden diese aber auch gleich gewertet.

Beispiel: domain.de/original-kopie/ hat einen Canonical-Link auf die domain.de/original/ und beide URLs haben den selben Inhalt.

In der robots.txt steht folgendes drinnen:
disallow: domain.de/original-kopie/

Um den Crawler zu schonen, blocke ich die /original-kopie/ , da ich ja nur die /original/ indexiert haben will.

Da aber folgendes gilt:

  1. canonicalization –> Seiten sind gleichwertig
  2. no linkjuice from blocked pages

In diesem Beispiel würde ich zwei URLs gleichsetzen und dann sagen, dass der Linkjuice nicht weitergegeben werden soll!!!
In diese Situation kommt man schneller als gedacht.

Hier ist das beste natürlich, diese mehrfachen URLs erst gar nicht zu haben. Das ist natürlich bei Shops wie Magento etc. eher schwierig, daher würde man in so einem Fall nur mit den Canonicals arbeiten und einer ordentlichen internen Verlinkung.

Google+ – Button lässt Crawling zu, trotz diasallow

Tatsache ist, dass wenn ein User den Google+-Button auslöst, diese URL von Google indexiert werden kann, trotz disallow in der robots.txt!

Hier wieder: Indexierung bei Google ist nicht abhängig von der robots.txt

In diesem Fall würde sich Google auch den Title und die Meta ziehen, um diese den Users verfügbar zu machen über das Google+-Netzwerk.

Ressourcen wie .JS,  .CSS,  Datein für den Googlebot verfügbar machen

Hierfür muss man folgende Zeilen einfügen um das zu ermöglichen:

allow .js
allow .css

Beachte aber Folgendes Beispiel:
Wir haben den Ordner /ressources/
Eine Java-Script Datei: /ressources/script.js

Unsere robots.txt sieht folgendermaßen aus:
disallow  /ressources/
allow  .js

In diesem Fall würden die .js Dateien, aber trotzdem nicht gecrawlt werden!!

Wieso? Wir blocken den Ordner /ressources/ und setzen dann die Js-Dateien die da drinnen sind auf allow. Da der Crawler aber nicht mehr in den Ordner /ressources/ kommt, kann er auch nicht wissen ob was da drinnen ist was er crawlen darf. Somit würde die Regel allow .js hier nicht greifen.

So wäre die robots.txt korrekt:
disallow /ressources/
allow /ressources/*.js

 

Weiter Fakten

  • robots.txt am besten im UTF-8 Single BOM Encoding.
  • Zeilen mit Errors werden ignoriert.
  • Reihenfolge der Regeln sind egal.
  • Crawl-Delay wird von Google ignoriert.
  • Geblockte URLs geben keinen Link Juice weiter.
  • „/folder“ matcht „/foldermatch“
  • Das Matching der Regeln ist case sensitiv
  • googlebot interstellar = der google images crawler
  • Pro Subdomain eine separate robots.txt
  • Robots.txt kann auf mehrere Sitemaps verweisen

 

Quellen