Early Fokus
Digital-Marketing Guide: Ratgeber & Tutorials

Technik

User-Agent

Der User-Agent ist eine Angabe im Kopf einer HTTP-Anfrage, mit der Browser, Crawler und andere Programme sich gegenüber einem Server zu erkennen geben.

Als User-Agent bezeichnet der HTTP-Standard das Programm hinter einer Anfrage an einen Server, also etwa einen Browser, einen Crawler oder ein Werkzeug wie curl. Im engeren Sinn ist damit das gleichnamige Feld im Kopf der Anfrage gemeint, in dem dieses Programm Angaben über sich selbst übermittelt. Server nutzen diese Angaben, um Probleme mit bestimmten Programmen einzugrenzen, Antworten an deren Grenzen anzupassen und die Verbreitung von Browsern und Betriebssystemen auszuwerten. Ein Programm soll das Feld nach RFC 9110 in jeder Anfrage senden, sofern es nicht ausdrücklich anders eingestellt ist.

Aufbau der User-Agent-Kennung

Der Wert besteht aus einer oder mehreren Produktangaben, die jeweils einen Namen und optional eine Version nach einem Schrägstrich enthalten und von Kommentaren in runden Klammern gefolgt sein können. Die Produktangaben stehen dabei nach ihrer Bedeutung für die Erkennung des Programms geordnet mit der wichtigsten am Anfang wie in der Beispielzeile User-Agent: CERN-LineMode/2.15 libwww/2.17b3 aus dem Standard. Werbung oder andere unwesentliche Angaben dürfen in einer Produktangabe nicht stehen, und die Versionsangabe soll ausschließlich die Version enthalten.

Browser verwenden ein gemeinsames Grundmuster mit der Angabe Mozilla/5.0 am Anfang, die aus historischen Gründen fast jeder heutige Browser zum Zeichen seiner Verträglichkeit mit Mozilla sendet. Chrome ergänzt zusätzlich Angaben wie KHTML, like Gecko und Safari, sodass seine Kennung auch die Namen anderer Browser enthält. Der Standard rät eigentlich davon ab, Produktangaben anderer Programme zu übernehmen, weil das den Zweck des Feldes unterläuft. Gibt sich ein Programm dennoch als ein anderes aus, dürfen Server annehmen, dass es ausdrücklich die für jenes Programm bestimmten Antworten erhalten möchte.

User-Agent-Reduktion und Client Hints

Lange und detaillierte Kennungen verlängern die Antwortzeit und erhöhen das Risiko, dass sich eine Person gegen ihren Willen wiedererkennen lässt, was als Fingerprinting bezeichnet wird. Aktuelle Browser senden deshalb weniger Angaben, sodass etwa Chrome für Android die Version des Betriebssystems und das Gerätemodell als festen Wert ausgibt und Unterversionen durch Nullen ersetzt. Benötigt ein Server genauere Angaben, fordert er sie über den Header Accept-CH an und erhält sie als User-Agent Client Hints in Headern, deren Namen mit Sec-CH-UA beginnen. Inhalte je nach Browser unterschiedlich auszuliefern, bezeichnet die Dokumentation von Mozilla als in der Regel schlechte Idee.

Crawler und ihre Kennung

Crawler geben sich ebenfalls über den User-Agent zu erkennen, wobei Google zwischen dem Token für die robots.txt und der vollständigen Kennung im Header unterscheidet. Der Googlebot verwendet für Smartphone und Desktop dasselbe Token Googlebot, und seine vollständige Kennung enthält neben compatible; Googlebot/2.1 die Adresse einer Informationsseite von Google. Die darin enthaltene Version von Chrome ändert sich laufend, weshalb Google empfiehlt, beim Durchsuchen von Server-Protokollen mit Platzhaltern für die Versionsnummer zu arbeiten. In der robots.txt spricht die Zeile User-agent einen Crawler über sein Token an, wobei die Groß- und Kleinschreibung des Namens keine Rolle spielt.

Mit eigenen Tokens wie GPTBot oder ClaudeBot lassen sich auch KI-Crawler steuern, für die OpenAI und Anthropic je nach Zweck getrennte Kennungen verwenden. Findet ein Crawler in der robots.txt eine Gruppe mit seinem eigenen Token, folgt er allein deren Regeln und lässt die allgemeine Gruppe mit dem Sternchen unberücksichtigt. Für jeden Crawler legen Sie deshalb am besten genau eine Gruppe an und übernehmen das Token in der Schreibweise aus der Dokumentation des Anbieters.

Gefälschte Kennungen erkennen

Die Kennung im Header kann jedes Programm frei wählen, und auch Google weist ausdrücklich darauf hin, dass sich der User-Agent fälschen lässt. Ob ein Abruf mit der Kennung Googlebot tatsächlich von Google stammt, prüfen Sie mit einer umgekehrten DNS-Abfrage der IP-Adresse aus Ihrem Protokoll, deren Hostname auf googlebot.com, google.com oder googleusercontent.com enden muss. Eine anschließende Vorwärtsabfrage dieses Hostnamens muss wieder die ursprüngliche IP-Adresse ergeben, und automatisiert gelingt der Abgleich über die von Google veröffentlichten IP-Bereiche wie die Datei common-crawlers.json für die gewöhnlichen Crawler.

Für einen eigenen Test senden Sie mit dem Befehl curl -I -A Googlebot https://ihre-domain.de/ eine Anfrage unter fremder Kennung und sehen in der ersten Zeile der Antwort den HTTP-Statuscode, den Ihr Server dafür zurückgibt. Weicht er von der Antwort im Browser ab, behandelt Ihr Server diese Kennung gesondert. Da die Anfrage von Ihrem eigenen Anschluss stammt, zeigt sie allein Regeln für die Kennung, während Sperren nach IP-Bereichen dabei unentdeckt bleiben.

← Zurück zum Glossar