Robots.txt für WordPress erstellen
Please enable the breadcrumb option to use this shortcode!
Früher oder später wird man als Webmaster mit der robots.txt
konfrontiert. Diese Datei gibt den Crawlern Auskunft darüber, welche URLs relevant für sie sind und welche diese somit überhaupt besuchen bzw. „abarbeiten“ dürfen.
Im folgenden Artikel erkläre ich dir, wie du die optimale robots.txt
-Datei für deine WordPress-Seite erstellst. Dabei gehe ich sowohl auf eine manuelle Erstellung ein, als auch mit Hilfe eines Plugins.
Update 2015 – JS- & CSS-Dateien nicht blockieren
Wie in den Kommentaren bereits angemerkt, hat Google seine Richtlinien Ende 2014 geändert und rendert die Webseiten nun vollständig wie ein normaler Browser. Dazu braucht der Crawler auch Zugriff auf alle CSS- und JavaScript-Dateien. Ich habe deshalb den Beitrag auf den neuesten Stand gebracht und auch eine Empfehlung meinerseits eingefügt.
Virtuelle WordPress robots.txt und Codex-Empfehlung
WordPress liefert von Haus aus eine virtuelle robots.txt
-Datei aus, die allerdings ausbaufähig ist. Der Inhalt dieser Datei sieht wie folgt aus:
User-agent: * Disallow: /wp-admin/ Disallow: /wp-includes/
WordPress selbst gibt im Codex als Empfehlung an, die robots.txt
-Datei leer zu lassen und lediglich den Pfad zur Sitemap einzutragen. Das würde wie folgt aussehen:
User-agent: * Sitemap: http://www.example.com/sitemap.xml
Dennoch sollte man meiner Meinung nach einige zusätzliche Zeilen mit aufnehmen, damit der Crawler möglichst schnell die wirklich relevanten URLs abarbeiten kann und sich nicht unnötig mit duplikaten oder „Thin Content“ aufhält. Daher lautet meine Empfehlung:
User-agent: * Disallow: /cgi-bin/ Disallow: /wp-admin/ Disallow: /trackback/ Disallow: /feed/ Disallow: /comments/ Disallow: */trackback/ Disallow: */feed/ Disallow: */comments/ Allow: /wp-admin/admin-ajax.php Sitemap: http://deinedomain.de/sitemap.xml
Der Pfad zur Sitemap wird ebenfalls hinterlegt und sollte natürlich an die eigene URL-Struktur angepasst werden.
Das „/wp-includes/“-Verzeichnis sollte auf jeden Fall zugelassen werden, da hierrüber jQuery ausgeliefert wird, worauf einige weitere Plugins aufbauen.
robots.txt selbst erstellen
Wie bereits beschrieben, liefert WordPress von Haus aus eine virtuelle robots.txt
-Datei aus. Diese wird über die wp-functions.php
erstellt und ausgeliefert.
Du kannst die Ausgabe bereits hier ändern, vorausgesetzt du benutzt ein Child-Theme. Sonst würde bei einem WordPress-Update der Standard wiederhergestellt, weshalb sich diese Vorgehensweise ohne Child-Theme nicht empfiehlt.
robots.txt
im root-Verzeichnis deiner WordPress-Installation ab.
Sobald diese Datei vorliegt, hat sie vor der virtuellen Vorrang und wird somit auch an alle Crawler ausgeliefert. Als Inhalt kannst du meine Empfehlung verwenden, damit dürfte alles wichtige abgedeckt und auch zugänglich sein.
Vergiss allerdings nicht in der letzten Zeile den Pfad zu deiner Sitemap anzupassen!
Solltest du das Plugin WordPress SEO by Yoast installiert haben, kannst du die Datei nach erfolgreichem Upload über das Plugin verwalten.
Navigiere hierzu einfach im Backend zum Menüpunkt „SEO -> Werkzeuge -> Datei-Editor“.
Via WP Robots Txt-Plugin erstellen
Wer allerdings kein FTP-Zugriff hat, oder aus sonstigen Gründen keine robots.txt
-Datei auf seinem Server erstellen kann, der kann auf das Plugin WP Robots Txt zurückgreifen.
Nach erfolgreicher Installation findest du unter „Einstellungen -> Lesen“ ganz unten auf der Seite ein neues Textfeld, in welches du den gewünschten Inhalt eintragen kannst. Abspeichern und schon hast du deine Datei erstellt.
Download: WP Robots Txt
Falls du Verbesserungsvorschläge, Anmerkungen oder eine eigene Empfehlung für die optimale robots.txt
Datei hast, hinterlasse doch einfach einen Kommentar.
Sehr guter Beitrag aber ein kleiner Hinweis: Google hat seine Richtlinien im Oktober 2014 angepasst: Wort verweisen die darauf elementare CSS oder JS Dateien die für das optische rendern der Seite zuständig sind nicht mehr zu blocken. Google will mit seinen Robots die Webseiten wie ein menschliches Auge wahrnehmen! In den Google Webmastertools kann man unter abrufen und rendern sehen, wie ein Google Bot die Seite wahrnimmt. Viele Grüße
Noch ein Hinweis:
http://codex.wordpress.org/Search_Engine_Optimization_for_WordPress vom 02.03.2015
Search Engines read a file at yourdomain.com/robots.txt to get information on what they should and shouldn’t check.
Adding entries to robots.txt to help SEO is popular misconception. Google says you are welcome to use robots.txt to block parts of your site but these days prefers you don’t. Use page-level noindex tags instead, to tackle low-quality parts of your site. Since 2009, Google has been evermore vocal in its advice to avoid blocking JS & CSS files, and Google’s Search Quality Team has been evermore active in promoting a policy of transparency by webmasters, to help Google verify we’re not „cloaking“ or linking to unsightly spam on blocked pages. Therefore the ideal robots file disallows nothing whatsoever, and may link to an XML Sitemap if an accurate one has been constructed (which itself is rare though!).
WordPress by default only blocks a couple of JS files but is nearly compliant with Google’s guidance here.
Wenn ich das richtig verstehe: robots.txt bis auf den Hinweis, wo die Sitemap zu finden ist, leer lassen:
User-Agent: *
Sitemap: http://www.example.com/sitemap_index.xml
Mir ist auch aufgefallen, das Google die CSS und JS Dateien für das Styling mit lesen möchte, die z.B. im Theme order liegen. So mekert das Tool in den Webmastertools das viele Scripte blokiert wurden und die Seite somit nicht optimal für Mobilen Content gerendert werden kann. Da muss man nun doch noch mal an die bewerte robots.txt ran …
Vielen Dank für die Kommentare. Nach Monaten habe ich es endlich geschafft den Artikel auf den neusten Stand zu bringen.
Vielen Dank für diesen interessanten Artikel. Wieder etwas dazugelernt und notiert, um es auch bei Kunden einzusetzen.
Hi, Danke für die Infos. Ich habe es auch angepasst.
Kleine Info: Der Datei Editor von Yoast befindet sich nun unter „SEO“ –> „Werkzeuge“ –>“Datei-Editor“
Hi Julian,
Danke dir, völlig vergessen den Beitrag nach der Umstrukturierung von Yoast zu aktualisieren. Habe es angepasst!
Danke für die Tipps, sehr übersichtlicher und leicht verständlicher Beitrag!
Hab nun aucheine robot.txt angelegt in der Hoffnung, das Google nun so indiziert wie ich es möchte 😀
Viele Grüße aus Köln
Vielen Dank für die aufschlussreichen Infos!
Ist es sinnvoll zwei Sitemaps anzugeben?
Beispiel: page & attachment
Vielen Dank für Ihre Antwort
O. Sievers
Hallo Ottmar,
es ist überhaupt kein Problem, deine Sitemap auf mehrere Bereiche aufzuteilen. In deinem Fall die Seiten (/page-sitemap.xml) und die Attachments (attachment-sitemap.xml). Google gibt max. 50.000 URLs pro Sitemap vor (https://support.google.com/webmasters/answer/183668?hl=de) und empfiehlt selbst, diese aufzuteilen falls man das Limit überschreitet.
Meine persönliche Empfehlung für dich: Lass die Attachments weg und erspar dem Crawler die Arbeit. Auch Yoast sieht in den meisten Fällen kein Bedürfnis, die Media-Dateien als eigene Sitemap anzugeben: https://kb.yoast.com/kb/images-in-the-xml-sitemap/
Mir ist auch aufgefallen, dass deine Sitemap allerdings einige Formatierungsfehler aufweist. Das könnte unter Umständen an mehreren gleichzeitig aktiven Sitemap-Plugins liegen, oder am Caching. Das würde ich auf jeden Fall überprüfen 🙂
Als Orientierung kannst du gerne unsere Sitemap anschauen: https://wpcorner.de/page-sitemap.xml
Viel Erfolg und falls du Hilfe benötigst, melde dich!
Liebe Grüße,
Denis
Eine Frage: Warum sollte ich cgi-bin verbeiten? Der Zugriff auf das Verzeichnis ist doch sowieso nicht möglich.
Danke!
Kann man in der Robots auch mehrere Sitemaps definieren, weil das Rank Math Plugin ja auch verschiedene Sitemaps erstellt.
Von der Überblicksitemap /sitemap_index.xml sind weitere zu /post-sitemap.xml und /page-sitemap.xml erreichbar.
Reicht die Überblickssitemap ?
Genau die Frage treibt mich gerade auch um. Ich habe im o.a. Beispiel die …/sitemap_index.xml eingetragen und lasse mich nun überraschen.