Themenbild Blogbeiträge

Was war nochmal was? Sitemap vs. .htaccess vs. robots.txt

Autor: Kristof Benninger – Datum: 17.03.21

Wer sich in das Thema SEO einliest oder generell damit beschäftigt, der stolpert früher oder später über folgende drei Dateien: Sitemap, .htaccess und robots.txt. Alle drei Dateien haben im SEO-Bereich u.a. eine bestimmte Aufgabe im Umgang mit den Crawlern zu erfüllen. Sie haben es doch bestimmt schon gelesen oder gehört: Die Sitemap zeigt dem Crawler, wie unsere Website strukturiert ist und die .htaccess-Datei leitet den Crawler doch weiter, und die robots.txt-Datei bildet doch ebenfalls die Websitestruktur ab und zeigt dem Bot wo’s lang geht. So war das doch? Nicht so hastig, gleich kommt Licht ins Dunkle!  

 

Sitemap – Hilfestellung für den Crawler

Sie haben es erraten: Sitemaps haben etwas mit der Strukturierung unserer Website zu tun. Sie fungieren gewissermaßen als eine Art „Navigationssystem“ für die Crawler und erleichtern den Bots das Auffinden wichtiger Seiten innerhalb unserer Website. In der Regel ist eine Sitemap im XML-Format geschrieben und kann beispielsweise in der Google Search Console eingereicht werden. In der Search Console muss man selbstverständlich noch den Pfad zu der Sitemap-Datei angeben, d.h., Ihre Sitemap ist vor der Einreichung in der Search Console auch noch auf den Webspace hochzuladen und befindet sich in aller Regel im Hauptverzeichnis.

Sitemaps können vorteilhaft für eine rasche Indexierung sein. Daher gehören hier alle Unterseiten hinein, die man von Google indexiert haben möchte. Man kann eine Sitemap natürlich selbst erstellen, was nicht allzu kompliziert ist. Für Websites, die auf einem CMS wie WordPress basieren, empfiehlt sich jedoch der Einsatz eines Plugins, welches die Sitemap live erstellt, um diese auf dem aktuellsten Stand zu halten. Alternativ gibt es auch Sitemap-Generatoren, die jedoch die Datei einmal erstellen und dann nicht mehr updaten, was im Laufe der Zeit zu fehlerhaften Angaben in der Sitemap führen kann, da etwa bestimmte URLs veraltet und nicht mehr erreichbar sind. Es kann dann passieren, dass Google diese Sitemaps einfach ignoriert.

Im Übrigen gibt es nicht nur Sitemaps für die Seiten an sich. Man kann auch noch separate Bilder- oder Video-Sitemaps erstellen. Dies bietet sich für Websites mit Schwerpunkten in diesen Bereichen an. Allerdings muss man nicht zwingend eine separate Sitemap für solche Dateien anlegen. Es ist auch möglich, die Video- und Bilder-Sitemaps in die Haupt-Sitemap zu integrieren.

Generell ist das Erstellen und Einreichen einer Sitemap keine Pflicht, um von Suchmaschinen indexiert zu werden. Eine Sitemap gehört jedoch zum Fundament sorgfältiger SEO-Arbeit, da sie einen Beitrag zu einer schnellen und reibungslosen Indexierung von Webseiten leisten kann.
Wie eine Sitemap grundsätzlich im XML-Format aussieht, sehen Sie nachfolgend:

<?xml version=„1.0“ encoding=„UTF-8“?>
 
<urlset xmlns=„http://www.sitemaps.org/schemas/sitemap/0.7“>
 
   <url>
 
      <loc>http://www.beispiel.ch/</loc>
 
      <lastmod>2015-11-01</lastmod>
 
      <changefreq>monthly</changefreq>
 
      <priority>0.9</priority>
 
   </url>
</urlset>

 

Welche Bedeutung haben nun die verschiedenen XML-Tags? Hier eine Übersicht:

  • <urlset> = aktuelles Protokoll (Pflichtangabe!)
  • <url> = Tag, welches den einzelnen URL-Angaben übergeordnet ist (Pflichtangabe!)
  • <loc> = betrifft die URL-Adresse der jeweiligen Seite, die man indexiert haben möchte. Achtung: Diese Adresse sollte auf jeden Fall mit dem Protokoll, also http(s), beginnen und auch mit einem / enden! (Pflichtangabe!)
  • <lastmod> = Datum der letzten Änderung (lastmod = last modified; optional)
  • <changefreq> = voraussichtliche Häufigkeit der Aktualisierung der Seite (optional)
  • <priority> = gibt an, welche Priorität eine Seite hat. Zulässige Werte liegen zwischen 0,0 und 1,0, der Standardwert ist 0,5. Hier lässt sich also festlegen, welche Seiten für den Crawler eine hohe Priorität haben sollen. Da Sie hier lediglich die interne Wertigkeit einzelner Seiten in Relation zu den anderen Seiten Ihrer Webpräsenz festlegen, wäre es ziemlich sinnfrei, wenn Sie ständig den Höchstwert 1,0 vergäben. Sie erhalten dann damit keinen Vorteil gegenüber konkurrierenden Websites, sondern führen die Priorisierung und Akzentuierung wichtiger Seiten innerhalb Ihrer eigenen Website ad absurdum! (optional)

Zum Schluss noch meine Empfehlung für alle WordPress-Nutzer:

Mit Hilfe des beliebten Plugins Yoast kann man XML-Sitemaps auch automatisch generieren lassen. Vorteil: Hier passt dann auch die Aktualität der URLs in den Sitemaps, da Yoast die Dateien live erstellt und immer wieder anpasst.

 

.htaccess – Der Allrounder

Bei einer .htaccess-Datei handelt es sich um eine Konfigurationsdatei zur Festlegung von Verzeichnisregeln. Klingt komisch, ist aber so! Nein, ganz im Ernst: Die .htaccess-Datei ist ein wahrer Allrounder! Sie ermöglicht umfangreiche Einstellungen.

So lassen sich mit ihrer Hilfe IP-Adressen oder IP-Bereiche vom Zugriff auf eine Website ausschließen. Man kann auch einen Passwortschutz für bestimmte Verzeichnisse einrichten oder das Hotlinking für Bilder verhindern. Ein weiterer wichtiger Punkt ist das Einrichten von Umleitungen mittels .htaccess-Datei. Gerade wenn wir SSL benutzen und damit das https-Protokoll, stehen wir vor der Aufgabe, sogenannten „Duplicate Content“ im Sinne gewissenhafter SEO-Arbeit zu verhindern.

Nur zur Erinnerung: Verfügt Ihre Website über ein https-Protokoll, so ist jede Ihrer Seiten unter 4 Adressen abrufbar. Einmal unter http://www.irgendwas.de/, dann unter http://irgendwas.de/ und dann schließlich noch zweimal unter den entsprechenden https-Varianten mit und ohne www. Das bedeutet, dass wir den Inhalt einer Seite gleich viermal vorliegen haben und das gefällt Google leider gar nicht.

Daher legt man in der .htaccess-Datei für solche Fälle 301-Weiterleitungen fest, damit wir ein und denselben Inhalt auch nur unter einer einzigen URL präsentiert bekommen. Der Bot wird im Falle einer in der .htaccess-Datei definierten Umleitung dann auf die dort festgelegte URL weitergeleitet. Noch ein kleiner Hinweis zur Sichtbarkeit: Es kann, je nach Einstellung, vorkommen, dass man die .htaccess-Datei gar nicht sieht. Es empfiehlt sich dann die Einstellung auf „versteckte Dateien/ausgeblendete Elemente anzeigen“ umzustellen.

 

robots.txt oder „Du kommst hier nicht rein!“

Eine robots.txt-Datei ist im Grunde wie ein höflicher Türsteher. Falls der Googlebot vorbeischaut, dann erklärt die robots.txt-Datei diesem in aller Höflichkeit, welche Bereiche der Website er meiden soll und welche gecrawlt werden dürfen. Oftmals handelt es sich bei Seiten, die man über eine robots.txt-Datei dem Crawler vorenthalten möchte um veraltete Beiträge, Testseiten, das Impressum, die Datenschutzerklärung o.ä.

Damit dies gelingt, platziert man die robots.txt-Datei im Stammverzeichnis auf dem Webserver. Was beinhaltet diese Datei nun? Sie enthält einfach Anweisungen für einen Suchmaschinenbot, bestimmte Seiten vom Crawlingprozess auszunehmen. Aber Achtung: Seiten, die vom Crawling ausgeschlossen werden, können trotzdem indexiert werden und haben auch das Potential zu ranken, sofern sie durch Verlinkungen auf anderen Seiten für den Bot erreichbar sind. Wer also eine Seite definitiv nicht indexiert haben möchte, sollte dieses Tag hier verwenden:

<meta name=“robots“ content=“noindex“>

Wie ist nun eine solche robots.txt-Datei aufgebaut? Hier ein paar Beispiele:

User-agent: Googlebot
Disallow: /temporarily/
Disallow: /blog.html
Disallow: /pics #verzeichnisse u. dateien mit pics am Anfang
 

„User-agent“ gibt an, welcher Crawler adressiert werden soll. In unserem Fall ist nun der Googlebot betroffen. In der nächsten Zeile legen wir mit „Disallow“ fest, dass der Crawler das Verzeichnis „temporarily“ meiden soll. Darunter verhindern wir noch den Zugang zur Datei blog.html. In der letzten Zeile ist nicht (nur) das Verzeichnis „pics“ gemeint, sondern alle Dateien oder Verzeichnisse, die mit „pics“ beginnen. Wollten wir nur das Verzeichnis „pics“ sperren, so müssten wir hinter „pics“ noch ein / ergänzen. Das #-Symbol wiederum leitet einen Kommetar ein. Im Übrigen möchte ich noch anmerken, dass die Pfadangaben immer vom Hauptverzeichnis aus zu sehen sind. Nächstes Beispiel:

User-agent: Googlebot

Disallow: /temporarily/  

User-agent: Bingbot

Disallow: /pics/

Wie bereits erwähnt, kann man Regeln für verschiedene Crawler aufstellen. Oben wurde zuerst der Crawler von Google adressiert und in der dritten Zeile wird dann definiert, was für den Bot der Suchmaschine Bing gilt. Und falls man einfach Regeln aufstellen möchte, die für alle Suchmaschinenbots gelten? Dann schreibt man Folgendes:
  
User-agent: *

Mittels dieser Anweisung werden nun alle Bots adressiert. Und nun einmal angenommen, wir wollten allen Bots mitteilen, dass sie unsere gesamte Website – aus welchen Gründen auch immer – vom Crawlingprozess ausnehmen, wie legt man eine solche Regel fest?
  
User-agent: *
Disallow: /
 

Wir sagen also, dass für alle Bots gewissermaßen ein „Besuchsverbot“ für sämtliche Verzeichnisse und Dateien besteht. Der umgekehrte Fall wäre, dass wir allen Bots erlauben, auf all unsere Inhalte zuzugreifen:

User-agent: *
Disallow: 
 
Hinter „Disallow“ brauchen wir nun nichts mehr zu notieren. Das bedeutet, es gibt keine Einschränkungen für den Bot. Beim nächsten Fall, der auch praktische Relevanz hat, geht es darum, wie ich dem Crawler nun eigentlich mitteile, dass er in einem eigentlich gesperrten Verzeichnis eine bestimmte Datei doch crawlen darf?
 

User-agent: *

Disallow: /blog/

Allow: /blog/index.html

Durch obige Notation verbiete ich allen Suchmaschinenbots den Zugriff auf das Verzeichnis „blog“. Mit Hilfe von „Allow“ definiere ich jedoch eine Ausnahme und erlaube zumindest das Crawlen der Datei „index.html“, die sich im gesperrten Verzeichnis befindet. Wichtig: Sie legen bitte zuerst fest, welches Verzeichnis Sie sperren möchten und geben erst danach mit „Allow“ eine bestimmte Datei oder ein bestimmtes Unterverzeichnis als Ausnahme für den Crawler frei. Damit überschreiben Sie die vorher festgelegte Regel über „Disallow“ insofern, als dass Sie hier einen Teilbereich des gesperrten Ordners freigeben.

Ein weiterer Anwendungsfall aus der Praxis bezieht sich auf das Sperren von Dateien mit bestimmten Endungen. Angenommen Sie möchten alle PNG-Bilddateien von den Crawlern fernhalten, dann müssen Sie folgende Regel definieren:

User-agent: *

Disallow: /*.png$

Die Regel hinter „Disallow“ sieht etwas verwirrend aus. Wie ist diese Notation nun zu lesen? Das Sternchen * steht für eine beliebige Zeichenfolge, d.h., betroffen ist jetzt eine Datei mit beliebiger Bezeichnung. Dann wird festgelegt, dass die Datei zwar heißen kann, wie sie will, jedoch die Endung png haben muss. Das $-Zeichen teilt dem Bot mit, dass die Dateibezeichnung auch mit png endet und somit kein weiteres Zeichen danach folgt.

Im Übrigen kann man innerhalb einer robots.txt-Datei einen Crawler noch einmal explizit auf die Sitemap der Website hinweisen:

User-agent: Bingbot

Disallow: /blog/

Sitemap: http://www.beispiel.ch/sitemap.xml

Somit schließt sich der Kreis und wir sind wieder bei der Sitemap. Ich möchte nun im nachfolgenden und finalen Abschnitt dieses Beitrags nochmal die Unterschiede zwischen den drei Dateien hervorheben.

 

Übersicht – Was war nochmal was?

DateiFormat/TypGrundsätzlicher ZweckNutzen im SEO
Sitemapi.d.R. XML; auch RSS-Feeds u. Textdatei(.txt) möglichAbbildung der Websitestruktur; „Navigationssystem“ für den Crawler; Priorisierung bestimmter Seitenrasche u. reibungslose Indexierung; Betonung der Wichtigkeit bestimmter Webseiten
.htaccessKonfigurationsdateiAllgemeine u. weitreichende Einstellungen, vor allem die Festlegung von verzeichnisbezogenen RegelnEinrichten von (permanenten) Weiterleitungen (301) zur Vermeidung von „Duplicate Content“; Verhinderung von Hotlinking
robots.txtTextdateiSperren von bestimmten Verzeichnissen u. Dateien für SuchmaschinenbotsSteuerung des Verhaltens von Crawlern auf der Website; Heraushalten bestimmter Seiten aus der Indexierung (Achtung -> unzuverlässig, daher absichern mit Noindex-Tag!)
 

WeDeSu-Blog

Mann mit Maske vor dem Gesicht kann nichts sehen

Keywords & Konvertierung – Der blinde Fleck

Effektive Keywords müssen eine Konvertierung des Nutzerverhaltens bewirken. Neben Suchvolumen u. Wettbewerb braucht es aber noch einen weiteren Indikator, um das zu garantieren. Welcher das ist, erfahren Sie im Blogbeitrag über Keywords & Konvertierung.

Daumen hoch Daumen runter

Gute Backlinks, schlechte Backlinks

Was sind gute Backlinks, was sind schlechte Backlinks? Wie kommt man an gute Backlinks heran und wie befreit man sich von schlechten Backlinks? Lesen Sie mehr dazu im Blogbeitrag über Backlinks.
Fragezeichen

Was war nochmal was? Sitemap vs. .htaccess vs. robots.txt

Jeder, der sich in das Thema SEO einarbeitet, lernt früher oder später drei Dateien kennen, die sinnvoller Bestandteil der Suchmaschinenoptimierung sind: Sitemap, .htaccess u. robots.txt. Welchen Zweck diese jeweils erfüllen, erfahren Sie im Blogbeitrag über Sitemaps, .htaccess u. robots.txt.

 

Opt Out

Opt-Out-Code für Google Analytics-Tracking mit JS

Wie funktioniert eigentlich der JavaScript Opt-Out-Code für das Google Analytics-Tracking? Unser Blogbeitrag über den Opt-Out-Code für das Analytics-Tracking liefert die Erklärung.

 

Copyright 2021 – Kristof Benninger