URLs in robot.txt mit bestimmten Parametern ignorieren?

Antworten:

131

Hier ist eine Lösung, wenn Sie Abfragezeichenfolgen nicht zulassen möchten:

Disallow: /*?*

oder wenn Sie Ihre Abfragezeichenfolge genauer beschreiben möchten:

Disallow: /*?dir=*&order=*&p=*

Sie können der robots.txt auch hinzufügen, welche URL zugelassen werden soll

Allow: /new-printer$

Das $wird sicherstellen, dass nur das /new-printererlaubt ist.

Mehr Info:

http://code.google.com/web/controlcrawlindex/docs/robots_txt.html

http://sanzon.wordpress.com/2008/04/29/advanced-usage-of-robotstxt-w-querystrings/

Buch des Zeus
quelle
Dies wird neue Drucker verbieten. Ich möchte nur den Querystring-Teil stören
Luis Valencia
also willst du das /new-printeraber nicht zulassen /new-printers?dir=*&order=*&p=*??
Buch des Zeus
1
Werden diese erweiterten Platzhalter und die Zulassungsrichtlinie gut unterstützt?
Tony McCreath
9
Laut robotstxt.org/robotstxt.html - "gibt es kein" Zulassen "-Feld"
Jamie Edwards
Wenn Sie das Beispiel für neue Drucker etwas weiter betrachten, was ist, wenn in dieser Datei unterschiedliche Kombinationen und Reihenfolgen von Parametern möglich sind? Können Sie in einer einzelnen Abfrage angeben, dass eine bestimmte Datei nicht zugelassen werden soll, wenn Parameter hinzugefügt werden, ohne diese explizit anzugeben? Würde ... Disallow: / new-Drucker? * Funktionieren?
AdamJones
28

Sie können diese spezifischen Abfragezeichenfolgenparameter mit den folgenden Zeilen blockieren

Disallow: /*?*dir=
Disallow: /*?*order=
Disallow: /*?*p=

Also , wenn eine URL enthält dir=, order=oder p= irgendwo in dem Abfrage - String, wird er gesperrt.

Nick Rolando
quelle
Bedeutet dies, dass die gesamte Seite nicht gecrawlt wird, solange die oben genannte Bedingung erfüllt ist.
PPB
1
Achtung: Dadurch werden auch Parameter blockiert, die teilweise mit dem Ausdruck übereinstimmen, also nicht nur, example.com?p=testsondern auch example.com?top=test.
rob006
Wenn Sie diese Parameter unabhängig von ihrer Position in der URL (erste oder nächste Position) ignorieren möchten, können Sie Disallow: /*?dir=* Disallow: /*?order=* Disallow: /*?p=* Disallow: /*&dir=* Disallow: /*&order=* Disallow: /*&p=*
Folgendes
3

Registrieren Sie Ihre Website bei Google WebMaster Tools. Dort können Sie Google mitteilen, wie mit Ihren Parametern umgegangen werden soll.

Site-Konfiguration -> URL-Parameter

Auf den Seiten, die diese Parameter enthalten, sollte angegeben werden, dass sie über das Robots-Meta-Tag von der Indizierung ausgeschlossen werden sollen. z.B

Tony McCreath
quelle
2
Während in der ursprünglichen Frage Google speziell erwähnt wird, ist zu beachten, dass die Google WebMaster-Tools nur Google blockieren würden. Das Hinzufügen der Disallow-Regeln in der robots.txt-Datei würde auch andere Suchmaschinen ansprechen.
Matt V.
1
Wahr. Es sollte auch klargestellt werden, dass robots.txt die Indizierung von Seiten durch Google nicht stoppt, sondern das Lesen ihres Inhalts stoppt. Die beste Lösung ist die Verwendung des Roboter-Meta-Tags auf der Seite. Dies wird von allen Systemen unterstützt.
Tony McCreath