Disallow und Allow sind die beiden zentralen Direktiven der robots.txt – und gleichzeitig die häufigste Fehlerquelle. Dieser Artikel erklärt, wie beide zusammenspielen und welche Regel bei einem Konflikt tatsächlich gewinnt.

Warum diese beiden Direktiven ständig verwechselt werden

Auf den ersten Blick wirken Disallow und Allow wie simple Gegensätze – in der praktischen Anwendung entstehen die meisten Fehler aber genau an den Stellen, an denen beide Regeln gleichzeitig auf dieselbe URL zutreffen könnten. Wer beide Direktiven nur isoliert betrachtet, statt ihr Zusammenspiel bei sich überschneidenden Pfad-Mustern zu verstehen, konfiguriert leicht eine robots.txt, die sich anders verhält als beabsichtigt.

Diese Verwechslung betrifft nicht nur Einsteiger: Auch erfahrene Entwickler unterschätzen gelegentlich, wie genau die Auswertungslogik zwischen mehreren zutreffenden Regeln tatsächlich funktioniert, weil sie sich in der täglichen Praxis nur selten mit mehrdeutigen Regelkombinationen auseinandersetzen müssen.

Die Grundregel: Spezifischer gewinnt

Wenn sowohl eine Allow- als auch eine Disallow-Regel auf denselben Pfad zutreffen, gewinnt bei den meisten modernen Crawlern (u. a. Googlebot) die spezifischere Regel – also die mit dem längeren, genaueren Pfad-Präfix. Das ist ein häufiges Missverständnis: Es geht nicht um die Reihenfolge der Zeilen in der Datei, sondern um die Länge bzw. Genauigkeit des passenden Pfad-Musters.

Warum „spezifischer" nicht dasselbe ist wie „länger"

Die genaue Definition von „spezifischer" bezieht sich auf die Länge des tatsächlich passenden Pfad-Präfixes vor Berücksichtigung von Wildcards, nicht auf die reine Zeichenanzahl der geschriebenen Regel. Ein kurzer, aber präziser Pfad ohne Wildcard kann daher spezifischer sein als eine lange Regel mit mehreren Sternchen, die zwar mehr Zeichen enthält, aber durch die Wildcards tatsächlich einen breiteren URL-Bereich abdeckt. Im Zweifel hilft ein Blick in die offizielle Dokumentation der jeweiligen Suchmaschine oder ein praktischer Test mit konkreten Beispiel-URLs.

Beispiel: Ausnahme innerhalb eines gesperrten Bereichs

User-agent: *
Disallow: /downloads/
Allow: /downloads/whitepaper.pdf

Hier ist grundsätzlich der gesamte Ordner /downloads/ gesperrt, aber eine einzelne Datei darin ausdrücklich freigegeben. Da /downloads/whitepaper.pdf die spezifischere Regel ist, gewinnt sie gegenüber dem allgemeineren Disallow: /downloads/ – die Datei bleibt crawlbar.

🧰 Testen Sie Ihre eigene Disallow/Allow-Logik

Der Checker zeigt Gruppen und Regeln Ihrer robots.txt übersichtlich aufbereitet. Jetzt kostenlos prüfen →

Was „Disallow: /" wirklich bedeutet

Die wohl folgenreichste Zeile in der gesamten robots.txt ist Disallow: / unter User-agent: *. Sie blockiert die komplette Website für alle nicht explizit genannten Crawler. Diese Zeile findet sich überraschend häufig versehentlich in produktiven robots.txt-Dateien – meist als Überbleibsel aus einer Staging- oder Entwicklungsumgebung, das beim Go-Live vergessen wurde, zu entfernen.

Ein leeres Disallow ist keine Sperre

Ein oft übersehenes Detail: Disallow: ohne jeden Wert bedeutet nicht "alles sperren", sondern das genaue Gegenteil – "nichts sperren". Wer versehentlich ein / vergisst, öffnet also unbeabsichtigt alles, was eigentlich geschlossen werden sollte.

Reihenfolge der Zeilen spielt (meist) keine Rolle

Anders als man intuitiv annehmen könnte, kommt es bei den meisten modernen Crawler-Implementierungen nicht darauf an, ob Allow vor oder nach Disallow steht – ausschlaggebend ist die Pfad-Spezifität. Ältere oder weniger standardkonforme Crawler werten die Regeln allerdings teils schlicht in Zeilenreihenfolge aus. Wer maximale Kompatibilität möchte, sollte spezifischere Allow-Regeln daher dennoch möglichst direkt nach der zugehörigen Disallow-Regel platzieren.

Diese defensive Reihenfolge kostet nichts und schafft zusätzliche Sicherheit gegenüber weniger verbreiteten Bots, deren genaue Auswertungslogik nicht immer öffentlich dokumentiert ist.

Praxisbeispiel: Nachrichtenportal „Regio Nachrichten"

Ein fiktives, lokales Nachrichtenportal wollte verhindern, dass die interne Druckansicht (/drucken/...) sowie kommentierte Beitrags-Duplikate (/beitrag/*/kommentare) gecrawlt werden, gleichzeitig aber sicherstellen, dass ein wichtiges PDF-Dossier innerhalb eines ansonsten gesperrten Archivordners weiterhin auffindbar bleibt:

User-agent: *
Disallow: /drucken/
Disallow: /archiv/
Allow: /archiv/dossier-wahl-2024.pdf
Allow: /

Ergebnis: Druckansichten und das allgemeine Archiv wurden vom Crawling ausgeschlossen, während das einzelne, weiterhin relevante PDF-Dossier gezielt erreichbar blieb.

Groß- und Kleinschreibung nicht vergessen

Sowohl Disallow- als auch Allow-Pfade werden case-sensitive ausgewertet. Disallow: /Warenkorb/ blockiert nicht dieselbe URL wie /warenkorb/. Wer seine URL-Struktur nicht konsistent in Kleinbuchstaben hält, sollte hier besonders genau prüfen, welche Schreibweise tatsächlich in der Live-Umgebung verwendet wird.

Disallow für Parameter-URLs

Ein häufiger praktischer Anwendungsfall ist das Ausschließen von Filter- und Sortierparametern, die technisch endlos viele, inhaltlich fast identische URLs erzeugen können – etwa bei Online-Shops mit Facettensuche:

User-agent: *
Disallow: /*?sort=
Disallow: /*?farbe=
Disallow: /*&farbe=

Wichtig dabei: Da Wildcards und das Verhalten bei mehreren Parametern in einer URL nicht von allen Crawlern identisch interpretiert werden, lohnt sich nach dem Einrichten ein Test mit tatsächlichen, produktiven Beispiel-URLs, um sicherzustellen, dass die Regel wie beabsichtigt greift.

Disallow für Session-IDs und Tracking-Parameter

Neben Filter- und Sortierparametern erzeugen auch Session-IDs oder Marketing-Tracking-Parameter (z. B. ?utm_source=...) technisch unzählige, inhaltlich identische URL-Varianten derselben Seite. Diese lassen sich grundsätzlich ebenfalls per Disallow ausschließen, allerdings mit Vorsicht: Da Tracking-Parameter oft für Kampagnen-Auswertungen relevant sind und die zugehörigen Landingpages weiterhin normal crawlbar bleiben sollen, ist hier ein kombinierter Ansatz aus Canonical-Tag (statt Disallow) meist die robustere Lösung, um sowohl Tracking-Daten zu erhalten als auch Duplicate Content zu vermeiden.

Kombination mit Canonical-Tags

Disallow-Regeln für Parameter-URLs ersetzen keine rel="canonical"-Angabe. Während Disallow das Crawlen verhindert, signalisiert ein Canonical-Tag zusätzlich, welche URL-Variante als die „echte", zu indexierende Version gelten soll. Beide Mechanismen ergänzen sich sinnvoll: Canonical für Varianten, die weiterhin gecrawlt werden dürfen, Disallow für Varianten, die überhaupt nicht mehr besucht werden sollen, weil sie z. B. reine technische Duplikate ohne eigenen Mehrwert sind.

In der Praxis führt die Verwechslung beider Konzepte häufig zu unnötigem Aufwand: Wer versucht, jede einzelne Duplicate-Content-Variante über eine eigene Disallow-Regel zu unterbinden, statt konsequent Canonical-Tags einzusetzen, pflegt schnell eine unübersichtlich lange und fehleranfällige robots.txt, obwohl das eigentliche Problem mit einem einzigen, konsistent gesetzten Tag pro Seite gelöst wäre.

Praktische Kombinationsmuster

In der Praxis bewährt sich oft ein Grundmuster: zunächst ein grobes Disallow für einen gesamten technischen Bereich, danach gezielte Allow-Ausnahmen für einzelne, weiterhin relevante Unterseiten. Dieses Muster ist wartungsfreundlicher als der umgekehrte Ansatz (alles einzeln auflisten), weil neue, standardmäßig unkritische Unterseiten innerhalb des gesperrten Bereichs automatisch mit gesperrt bleiben, statt vergessen zu werden.

Testen einzelner URLs gegen die Regeln

Bevor eine neue Disallow/Allow-Kombination live geschaltet wird, lohnt sich ein gezielter Test gegen einige repräsentative, tatsächlich existierende URLs der eigenen Website – nicht nur gegen theoretische Beispiel-Pfade. Gerade bei verschachtelten Regeln mit mehreren Wildcards zeigt sich häufig erst im konkreten Test, dass eine Regel entweder zu weit oder zu eng gefasst ist und versehentlich auch benachbarte, eigentlich nicht gemeinte Pfade betrifft oder ausschließt.

Sinnvoll ist es, für diesen Test bewusst URLs aus unterschiedlichen Bereichen der Website auszuwählen – nicht nur aus dem Bereich, der eigentlich geändert werden soll, sondern auch aus benachbarten, eigentlich unveränderten Bereichen. So lässt sich ausschließen, dass eine neue, breiter gefasste Regel unbeabsichtigt auch dort greift, wo bislang eine andere, unabhängige Regel galt.

Auswirkungen auf das Crawling-Budget

Bei sehr großen Websites mit Millionen von URLs ist das sogenannte Crawling-Budget – die begrenzte Anzahl an Seiten, die eine Suchmaschine in einem bestimmten Zeitraum crawlt – ein relevanter Faktor. Gezielte Disallow-Regeln für technische, für Suchmaschinen irrelevante Bereiche (interne Suche, Sortier-Parameter, Session-IDs in der URL) sorgen dafür, dass dieses begrenzte Budget stattdessen für tatsächlich relevante, indexierungswürdige Inhalte verwendet wird, statt in technischen Duplikaten zu versickern.

Für kleinere und mittlere Websites mit wenigen Tausend Seiten spielt das Crawling-Budget in der Praxis kaum eine Rolle – Google verfügt hier in aller Regel über ausreichend Kapazität, um sämtliche relevanten Seiten regelmäßig zu erfassen. Die gezielte Steuerung über Disallow-Regeln gewinnt daher vor allem bei sehr großen, dynamisch generierten Websites an praktischer Bedeutung.

Häufig gestellte Fragen

Was passiert, wenn Allow und Disallow exakt gleich spezifisch sind?

In diesem seltenen Fall gewinnt bei Google die Allow-Regel. Andere Crawler können sich abweichend verhalten, weshalb Mehrdeutigkeiten möglichst vermieden werden sollten.

Sollte ich lieber zu restriktiv oder zu offen konfigurieren?

Im Zweifel eher zu offen: Eine zu restriktive robots.txt kann wichtige Inhalte dauerhaft von der Sichtbarkeit ausschließen, während eine zu offene Konfiguration meist nur unnötiges Crawling-Budget kostet – ein deutlich geringeres Risiko.

Kann ich mit Disallow auch Dateitypen sperren?

Ja, mit Wildcards, z. B. Disallow: /*.pdf$ für alle PDF-Dateien unabhängig vom Verzeichnis.

Wirkt Disallow rückwirkend auf bereits indexierte Seiten?

Nein. Disallow verhindert nur zukünftiges Crawling. Bereits indexierte Seiten können weiterhin in der Suche erscheinen, bis Google sie regulär erneut prüft oder sie anderweitig entfernt werden.

Sollte ich lieber viele kleine oder wenige große Disallow-Regeln verwenden?

Wenige, klar strukturierte Regeln sind in der Regel wartungsfreundlicher und weniger fehleranfällig als viele einzelne, sehr spezifische Zeilen, die bei jeder URL-Struktur-Änderung angepasst werden müssen.

Fazit

Wer die Priorisierungslogik zwischen Disallow und Allow versteht, kann gezielt Ausnahmen definieren, ohne ganze Bereiche pauschal freizugeben oder zu sperren. Im Zweifel hilft ein Blick in die konkrete Regel-Auswertung, um Überraschungen zu vermeiden.