Die Robots.txt

in #deutsch4 years ago (edited)


Bildquelle: Pixabay


Die Robots.txt


Wer eine Website betreibt und korrekt von den Suchmaschinen gecrawlt und indexiert werden möchte, muss eine robots.txt auf dem Root-Pfad der Domain liegen haben. Diese muss natürlich auch korrekt konfiguriert werden. Der Rootpfad ist immer dort, wo die Index-Datei für die Startseite der Website liegt. Genau in diesem Stammverzeichnis muss auch die robots.txt liegen.

Diese kleine Textdatei sieht zwar unscheinbar aus, aber sie ist trotzdem wichtig. Darin lassen sich Anweisungen für die Suchmaschinen-Crawler geben. Z.B. kann man den Suchmaschinen verbieten bestimmte Verzeichnisse zu crawlen. Das ist besonders wichtig, wenn sich in diesen Verzeichnissen Inhalte befinden, die auf keinem Fall im Index der Suchmaschinen landen sollen.

Mir ist es mal vor Jahren passiert, dass ich auf meinem Server eine Website für einen Kunden erstellt hatte und vergaß, dieses Verzeichnis für die Suchmaschinen zu sperren. So geschah es, dass ich mit der neuen Seite auf meinem Server besser rankte als die alte Website vom Kunden auf seiner Domain. So etwas sollte nicht passieren.

An die Vorgaben der Robots halten sich im Allgemeinen die meisten Suchmaschinen, jedoch nicht alle. Es gibt auch Exoten, denen interessiert die Robots gar nicht. Selbst wenn man diese Suchmaschinen, sogenannte User Agents, total aussperrt, dann indexieren die trotzdem alles, was sie finden.
Wer mit SEO-Tools vertraut ist, weiß auch, dass es meistens die Option gibt „folge den Anweisungen der robots.txt“. Dann verhält sich die Software so, wie z.B. Googlebot, der Crawlerbot von Google. Google und Bing halten sich auf jeden Fall an die Anweisungen der robots.txt.

Die kleinen Datensätze der robots.txt nennt man Records. Diese Records sind in zwei Teilen gegliedert. Der erste Teil benennt den User Agent für den der zweite Teil, worin die eigentlichen Anweisungen enthalten sind, gelten soll. So kann man bestimmten Suchmaschinen Zutritt zu Verzeichnissen gewähren und anderen das verbieten. Da es sehr viele Suchmaschinen gibt und niemand wirklich alle kennt, wird häufig ein Sternchen (*) verwendet. Das bedeutet, dieser Record gilt für alle. Wir kennen aus Windows oder Linux die Sternchen als Wildcards und diese Funktion übernimmt ein Sternchen hier auch.

Ich zeige euch hier mal den grundsätzlichen Aufbau einer robots.txt

User-agent: User Agent 1
User-agent: User Agent 2
Disallow: /pfad/zum-Verzeichnis/privat 

Mit diesen Records verbieten wir den User Agents 1 und 2 das indexieren bzw. das Crawlen des Verzeichnisses „privat“. Der Wert „Disallow“ bedeutet „hier darfst du nicht rein“ für den betreffenden Suchmaschinen-Bot.
Möchte man dasselbe Verzeichnis global für alle Suchmaschinen sperren, dann sähe der Record so aus:

User-agent: *
Disallow: /pfad/zum-Verzeichnis/privat

In diesem Fall sind die Verzeichnisse oberhalb von "privat" noch indexierbar. Diese sind nicht vom "Disallow" betroffen.

Man kann jedes X-beliebige Verzeichnis auf diese Art von der Indexierung ausschließen.
Gerade bei sehr bekannten CMS, wie Typo 3, Joomla, Drupal, Contao, WordPress usw. ist es sehr ratsam, bestimmte Systemverzeichnisse von der Indexierung auszuschließen. Diese genannten Systeme liefern per default immer eine bereits vorkonfigurierte robots.txt mit. Jedoch befinden sich auf den meisten Domains auch Verzeichnisse außerhalb des verwendeten CMS (Content Management System). Hier könnten Verzeichnisse liegen, wo sich Dinge drin befinden, die man nicht bei Google und Co. finden möchte.
Es gibt auch nicht selten z.B. Vereins-Websites, die wollen gar nicht bei Google gefunden werden und entsprechend würde es dort angebracht sein, für alle Suchmaschinen alle Verzeichnisse zu sperren.

Das Wort Sperren ist hier nicht wörtlich zu nehmen, weil, wie ich sagte, die Regeln der robots.txt einfach ignoriert werden können.

Wie es das „Disallow“ gibt, gibt es auch das „Allow“ als Anweisung. Manche Webmaster haben das bis ins kleinste Detail durchkonfiguriert und erlauben, aus welchen Gründen auch immer, bestimmten Suchmaschinen mehr als anderen.

Das könnte dann so aussehen:

User-agent: Alexabot 
Allow: /videos
User-agent: Bingbot 
Disallow: /videos

Hier wird nur dem Alexabot erlaubt das Verzeichnis „videos“ zu indexieren, dem Bingbot hingegen ist das untersagt.

Neben den Records für die User Agents und den Regeln für die Verzeichnisse sollte sich auf jeden Fall der Link zur sitemap.xml auch in der robots.txt befinden. Sehr große Websites verwenden oft mehrere Sitemaps. Diese werden natürlich auch mit in die robots.txt aufgenommen. Das sieht dann so aus.

Sitemap: https://www.deine-domain.com/sitemap.xml

Als sehr nützlich kann es sich erweisen CSS und Javascript explizit und proaktiv auch für die Indexierung freizugeben und in der robots.txt zu erwähnen.
Viele Webmaster kennen das Problem mit den blockierten Ressourcen. Google meckert hier oft herum, dass Ressourcen blockiert sind und nicht ordentlich gerendet werden können. Früher hat Google einfach alles indexiert und gerendet. Heute verhält sich Google in etwa nach dieser Regel: Alles was nicht explizit erlaubt ist, ist verboten. Deswegen bewirkt die Freigabe von CSS und JS einiges.

Wollen wir CSS und JS global für das Rendern der Bots freigeben, brauchen wir nur diese 2 kleinen Snippets in die robots.txt eintragen.

Allow: *.css
Allow: *.js

Hier legen wir also fest: Alle Suchmaschinen dürfen CSS und JS zum rendern verwenden und indexieren. Die eigentlichen Stylesheets und Scripte werden natürlich nicht indexiert. Hier sind die Suchmaschinen schon so intelligent und können Content und Funktion trennen.

Es gibt ja nicht wenige Websites, wo der Content erst durch Scripte generiert wird und ohne CSS kann keine Website ordentlich gerendert werden.
Übrigens, wer es noch nicht wusste, Googlebot verwendet zum Rendern der Websites den Chrome-Browser, der ja von Google selbst entwickelt wurde.

Kommen wir zum Schluss. Ich zeige hier eine Demo robots.txt, wie diese final aussehen könnte.

User-agent: *
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /modules/
Disallow: /tmp/
Disallow: /test/
Disallow: /ton/
Disallow: /teamwork/
Disallow: /livechat/
Disallow: /artwork/
Disallow: /entwuerfe/
Disallow: /def/
User-agent: Alexabot 
Allow: /
Sitemap: https://www.deine-domain.com/sitemap.xml
#Googlebot
User-agent: Googlebot
Allow: *.css
Allow: *.js

Dem User-Agent Alexabot ist in diesem Fall alles erlaubt, was natürlich Schwachsinn ist, aber für unsere Zwecke gut veranschaulicht, wie es funktioniert mit der Robots. Für alle Suchmaschinen sind alle Verzeichnisse gesperrt, für die es eine Disallow-Regel gibt.

Ich habe oben gesagt, dass ein Sternchen immer für alle gilt. Das ist korrekt, wird aber trotzdem aufgehoben, wenn ein User Agent namentlich genannt wird und eine Erlaubnis folgt, was ja hier der Fall ist:

User-agent: Alexabot 
Allow: /

Dann muss ich noch hinzufügen, dass, wenn ein Verzeichnis gesperrt ist, diese Regel an alle anderen Verzeichnisse innerhalb des gesperrten Verzeichnisses vererbt wird. Haben wir z.B.
Disallow: /entwuerfe/
Dann wäre
Disallow: /entwuerfe/nummer1
überflüssig, weil das Verzeichnis „nummer1“ die Regel von „entwuerfe“ erbt. Das gilt auch für „Allow“ nur eben in die andere Richtung.
Allow: /entwuerfe/nummer1
Allow: /entwuerfe

Wenn "nummer1" erlaubt ist, kann "entwuerfe" nicht verboten sein und ist auch erlaubt, weil der Bot durch "enwuerfe" hindurch muss, um an "nummer1" zu kommen. Hier wäre demnach die zweite Zeile auch überflüssig.

Wenn ihr euch die jeweilige Robots von einer Website ansehen wollt, diese liegt immer auf dieser URL:
https://www.domain-name.com/robots.txt

Hier folgt Teil 2 zur robots.txt: https://steemit.com/deutsch/@seo-boss/robots-txt-spezial

© by myself

Ave Atque Vale!

My better STEEMIT search: https://bit.ly/steemit-search

Sort:  

Coming to the top, buddy
With love, respect, appreciation and continuous support towards our great goal

당신의 큰 목표는 무엇입니까

Du hast ein Upvote von unserem Kuration – Support Account erhalten.

Dieser wird nicht von einem Bot erteilt. Wir lesen die Beiträge. (#deutsch) und dann entscheidet der Kurator eigenverantwortlich ob und in welcher Stärke gevotet wird. Unser Upvote zieht ein Curation Trail von vielen Followern hinter sich her!!!

Wir, die Mitglieder des German Steem Bootcamps möchten "DIE DEUTSCHE COMMUNITY" stärken und laden Dich ein Mitglied zu werden.

Discord Server an https://discord.gg/Uee9wDB

Aktueller Kurator ist @mima2606

Sehr interessant!

Liebe Grüße Michael

!invest_vote
!jeenger

Und hier kommt wieder eine kleine Lieferung !trdo ;)

Congratulations @kryptodenno, you successfuly trended the post shared by @seo-boss!
@seo-boss will receive 3.46652100 TRDO & @kryptodenno will get 2.31101400 TRDO curation in 3 Days from Post Created Date!

"Call TRDO, Your Comment Worth Something!"

To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site

@seo-boss, Looks like some effective Knowledge is put into this Blog.

Have a wonderful time ahead and stay blessed always.

@mima2606 denkt du hast ein Vote durch @investinthefutur verdient!
@mima2606 thinks you have earned a vote of @investinthefutur !

Congratulations @seo-boss, your post successfully recieved 3.466521 TRDO from below listed TRENDO callers:

@kryptodenno earned : 2.311014 TRDO curation


To view or trade TRDO go to steem-engine.com
Join TRDO Discord Channel or Join TRDO Web Site

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.029
BTC 56477.82
ETH 2390.38
USDT 1.00
SBD 2.33