---
title: "Was ist ein User-Agent? Auslesen und ändern"
description: "Der User-Agent ist die Kennzeile, die Ihr Browser bei jeder Anfrage mitsendet. So lesen Sie ihn, ändern ihn in Chrome und Android und verstehen Client Hints."
url: https://proxynet.io/de/blog/what-is-user-agent
date: 2026-09-19
author: "Acar Diveroli"
category: "Proxy 101, Anleitungen"
lang: de
---

# Was ist ein User-Agent? Auslesen und ändern

Wenn Sie die Downloadseite eines Programms öffnen, schlägt die Website von sich aus die passende Datei für Ihr Betriebssystem vor. Manche Websites schicken Besuchern mit Smartphone eine eigene mobile Seite. Die Website tut das, ohne Sie zu fragen, denn Ihr Browser sendet mit jeder Anfrage einen einzeiligen Text, in dem er sich vorstellt. Diese Zeile heißt User-Agent.

Die erste Hälfte dieses Artikels richtet sich an alle: wie man einen User-Agent-String Stück für Stück liest, wie Sie Ihren eigenen sehen und wie Sie ihn in Chrome, unter Windows 11 und auf Android ändern. Die zweite Hälfte ist technischer: die User-Agent-Reduzierung von Chrome, die Client-Hints-Header, die an ihre Stelle getreten sind, was eine Änderung des User-Agents nicht ändert und wie sich ein selbst geschriebenes Skript ausweisen sollte.

> **Hinweis: Kurzantwort**
>
> Der User-Agent ist die Kennzeile, die ein Browser oder Programm mit jeder HTTP-Anfrage sendet und die Name, Version und Betriebssystem nennt. Ihren eigenen Wert sehen Sie, wenn Sie `navigator.userAgent` in die Browserkonsole eingeben. In Chrome ändern Sie ihn über DevTools > More tools > Network conditions, auf Android mit der Option „Desktopwebsite“. Die Zeile enthält weder Ihre IP-Adresse noch Ihren Standort, und eine Änderung verändert die übrigen Spuren Ihres Browsers nicht.

## Was ist ein User-Agent?

Wenn Ihr Browser eine Seite anfordert, sendet er dem Server nicht nur die Adresse. Über der Anfrage stehen kurze Informationszeilen, die Header: welche Sprachen Sie bevorzugen, welche Dateitypen Sie akzeptieren und welche Software die Anfrage sendet. Letzteres ist der Header `User-Agent`.

Der HTTP-Standard [RFC 9110 definiert diesen Header](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) als das Feld, das Informationen über die Software enthält, von der die Anfrage ausgeht. Server nutzen diese Angabe für drei Aufgaben: herauszufinden, in welchem Browser ein Kompatibilitätsproblem auftritt, die Antwort an die Einschränkungen des Clients anzupassen und Statistiken über Browser und Betriebssysteme zu führen. Der Standard empfiehlt, dass ein Client diesen Header mit jeder Anfrage sendet.

Der Ausdruck „User Agent“ bezeichnet eigentlich nicht den Header, sondern die Software: Jedes Programm, das in Ihrem Namen Anfragen sendet, ist ein User Agent. Ein Browser, der Bot einer Suchmaschine, eine Smartphone-App, der Befehl `curl` und ein Python-Skript fallen unter diese Definition, und jedes davon hat einen User-Agent-Wert.

Zwei verbreitete Irrtümer lassen sich gleich zu Beginn ausräumen. Der User-Agent **enthält weder Ihre IP-Adresse noch Ihren Standort.** Die IP-Adresse wird aus der Verbindung selbst gelesen; wie sie sich ändert, erklären wir in [unserem Artikel zum Ändern der IP-Adresse](/de/blog/how-to-change-ip-address). Der User-Agent ist auch keine **Authentifizierung**: Er ist eine Selbstauskunft des Clients, und der Server kann anhand des Headers nicht prüfen, ob diese Auskunft stimmt.

## Wie liest man einen User-Agent-String?

Ein aktueller Chrome unter Windows sendet diesen Wert (das Beispiel stammt von der [User-Agent-Seite von MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/User-Agent)):

```text
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36
```

Neben Chrome stehen in der Zeile auch die Namen Mozilla, AppleWebKit, Gecko und Safari. Der Grund ist historisch. Websites schrieben jahrelang Regeln wie „Wenn im User-Agent dieser Name steht, sende die erweiterte Seite“. Jeder neue Browser nahm die Namen der älteren in seine eigene Zeile auf, um diese Seite nicht zu verpassen. Nach den Worten von MDN ist `Mozilla/5.0` ein allgemeines Token, das besagt, dass der Browser Mozilla-kompatibel ist, und aus historischen Gründen sendet es heute fast jeder Browser.

| Teil | Was sagt er aus? |
|---|---|
| `Mozilla/5.0` | Kompatibilitätsüberbleibsel; unterscheidet keine Browser |
| `(Windows NT 10.0; Win64; x64)` | Betriebssystem und Prozessorarchitektur |
| `AppleWebKit/537.36 (KHTML, like Gecko)` | Engine-Namen, ebenfalls aus Kompatibilitätsgründen |
| `Chrome/143.0.0.0` | Der eigentliche Browser und seine Hauptversion |
| `Safari/537.36` | Ein Name für Websites, die mit Blick auf Safari geschrieben wurden |

Die praktische Leseregel lautet: Das Betriebssystem steht in der ersten Klammer, der echte Name des Browsers meist nahe am Zeilenende. Edge hängt `Edg/` an das Ende an, Firefox endet mit `Firefox/`. Auf Smartphones kommt das Wort `Mobile` in die Zeile; Websites, die anhand des User-Agents eine mobile Seite wählen, achten auf dieses Wort.

Noch ein Detail: Auch wenn Sie Windows 11 verwenden, steht in der Klammer `Windows NT 10.0`. Microsoft sagt [in der eigenen Dokumentation](https://learn.microsoft.com/de-de/microsoft-edge/web-platform/how-to-detect-win11) ausdrücklich, dass User-Agent-Strings nicht aktualisiert werden, um Windows 10 und 11 zu unterscheiden. Den Grund sehen Sie weiter unten im Abschnitt zur User-Agent-Reduzierung.

## Wie finden Sie Ihren User-Agent heraus?

Sie müssen nichts installieren. Die Bordmittel des Browsers genügen:

1. Drücken Sie in Chrome oder Edge auf einer beliebigen Seite `F12` (oder oben rechts die drei Punkte > Weitere Tools > Entwicklertools).
2. Wechseln Sie im geöffneten Bereich auf den Tab **Console**.
3. Geben Sie `navigator.userAgent` ein und drücken Sie die Eingabetaste. Die in Anführungszeichen zurückgegebene Zeile ist der User-Agent, den Ihr Browser an JavaScript meldet.
4. Um zu sehen, was tatsächlich an den Server geht, wechseln Sie auf den Tab **Network**, laden Sie die Seite neu, klicken Sie auf die erste Anfrage der Liste und suchen Sie unter „Request Headers“ die Zeile `User-Agent`.

Schritt drei und vier sollten denselben Wert zeigen. Weichen sie voneinander ab, ändert eine Erweiterung oder eine Einstellung nur einen von beiden.

Wenn Sie die Konsole nicht verwenden möchten, tut es auch eine Seite, die die empfangenen Anfrage-Header unverändert zurückschreibt. Öffnen Sie `https://httpbin.org/headers` im Browser, und Sie sehen alle Header, die der Server von Ihnen erhalten hat; dieselbe Adresse verwenden wir im Codeteil dieses Artikels.

## Wie ändert man den User-Agent?

Machen Sie sich zuerst klar, was Sie ändern: Der User-Agent ist keine Einstellung des Betriebssystems, sondern **jedes einzelnen Browsers**. Weder Windows 11 noch Android kennt eine zentrale User-Agent-Einstellung, die für alle Programme gilt.

### Chrome und Edge (Windows 11, Windows 10, macOS)

Der offizielle Weg in Chrome ist [der Tab „Network conditions“ in den DevTools](https://developer.chrome.com/docs/devtools/device-mode/override-user-agent?hl=de). Edge basiert ebenfalls auf Chromium und bringt deshalb dieselben Werkzeuge mit.

1. Öffnen Sie die DevTools mit `F12`.
2. Folgen Sie oben rechts im Bereich den drei Punkten > **More tools** > **Network conditions**. Finden Sie den Eintrag im Menü nicht, öffnen Sie mit `Ctrl+Shift+P` das Befehlsmenü und tippen Sie „Network conditions“.
3. Entfernen Sie unter der Überschrift **User agent** das Häkchen bei „Use browser default“.
4. Wählen Sie einen fertigen Browser samt Gerät aus der Liste oder tragen Sie über „Custom...“ Ihren eigenen String ein.
5. Laden Sie die Seite neu.

Im Feld „User agent client hints“ desselben Abschnitts lassen sich auch die weiter unten beschriebenen Client-Hints-Werte bearbeiten. Diese Änderung ist keine dauerhafte Browsereinstellung; sie gilt für die Dauer des Tests in dem Tab, in dem die DevTools geöffnet sind. Wir nennen hier die englischen Bezeichnungen der DevTools; in einer deutsch angezeigten Oberfläche stehen die Einträge an derselben Stelle.

### Android-Smartphone

Auf Android gibt es keinen eingebauten Weg, einen User-Agent von Hand einzutragen, doch die am häufigsten gewünschte Änderung ist ein einziger Fingertipp. Tippen Sie in Chrome oben rechts auf die drei Punkte und setzen Sie das Häkchen bei **Desktopwebsite**; Chrome ruft die Website dann mit einer Desktop-Kennung auf, und das breite Layout erscheint. Soll das für jede Website der Standard sein, lautet [der Weg in der Chrome-Hilfe](https://support.google.com/chrome/answer/13514529?hl=de&co=GENIE.Platform%3DAndroid): Einstellungen > Website-Einstellungen > Desktopwebsite.

### Was ist ein User-Agent-Switcher?

Erweiterungen, die in den Browser-Stores unter dem Namen „User-Agent Switcher“ zu finden sind, erledigen dasselbe, ohne die DevTools zu öffnen, und dauerhaft: Sie wählen eine Kennung aus einer Liste, und die Erweiterung ersetzt damit den Header `User-Agent` der ausgehenden Anfragen. Sehen Sie sich vor der Installation die angeforderte Berechtigung an. Um Header ändern zu können, braucht die Erweiterung Zugriff auf Ihren Datenverkehr auf allen besuchten Websites; erteilen Sie diese Berechtigung nur einer Erweiterung, deren Quelle Sie vertrauen, und schalten Sie sie nach getaner Arbeit ab.

### Warum ändert man den User-Agent?

Alle legitimen Gründe sind eine Art Test:

- **Die mobile Ansicht am Computer ausprobieren.** Sehen, welche Seite die eigene Website an ein Smartphone sendet.
- **Ein Kompatibilitätsproblem eingrenzen.** Herausfinden, ob eine alte Unternehmensseite, die „Ihr Browser wird nicht unterstützt“ meldet, wirklich nicht funktioniert.
- **Sehen, was die eigene Website Bots zeigt.** Einen Konfigurationsfehler finden, der Suchmaschinen-Bots andere Inhalte liefert.
- **Einen Fehler reproduzieren.** Ein Problem untersuchen, das nur in einem bestimmten Browser auftritt, wenn dieser Browser gerade nicht zur Hand ist.

RFC 9110 sieht diesen Fall ebenfalls vor: Gibt sich ein Client als ein anderer Client aus, darf der Server annehmen, dass der Nutzer die für diesen Client vorbereitete Antwort sehen möchte, auch wenn sie im echten Browser nicht gut funktioniert. Die Verantwortung liegt bei dem, der die Änderung vornimmt.

## Was ist die User-Agent-Reduzierung (UA Reduction)?

Ältere User-Agent-Strings waren deutlich gesprächiger als heutige: die vollständige vierteilige Browserversion, der Patch-Stand des Betriebssystems und auf Android das Modell des Smartphones. Zusammengenommen waren diese Details ein fertiger Baustein für den [Browser-Fingerabdruck](/de/blog/browser-fingerprinting), mit dem sich ein Nutzer ohne Cookies wiedererkennen lässt. RFC 9110 spricht dieselbe Warnung aus: Übermäßig detaillierte User-Agent-Werte erhöhen das Risiko, dass ein Nutzer gegen seinen Willen identifiziert wird.

Chrome hat den String deshalb schrittweise vereinfacht. Laut [der Zeitleiste des Chromium-Projekts](https://www.chromium.org/updates/ua-reduction/) wurden die Unterversionsnummern in Chrome 101, die Angaben zum Desktop-Betriebssystem in Chrome 107 sowie Android-Version und Gerätemodell in Chrome 110 eingefroren. In dem String, den Chrome heute sendet, sind diese Teile nicht echt, sondern fest:

| Teil | Ohne Reduzierung (Beispiel) | Heute |
|---|---|---|
| Browserversion | `Chrome/143.0.12.45` | `Chrome/143.0.0.0` (nur die Hauptversion ist echt) |
| Windows | Echte Version | Immer `Windows NT 10.0; Win64; x64` |
| macOS | Echte Version | Immer `Intel Mac OS X 10_15_7` |
| Android | `Android 16; Pixel 9` | Immer `Android 10; K` |

Deshalb sehen Sie unter Windows 11 `NT 10.0` und auf einem nagelneuen Smartphone „Android 10“ mit einem Modell namens „K“. Auch die Schlussfolgerung liegt nahe: Ein Statistikwerkzeug, das aus dem User-Agent eines aktuellen Chrome die Betriebssystemversion oder das Smartphone-Modell lesen will, liefert falsche Ergebnisse.

## Was sind Client Hints?

Manche Websites brauchen die Informationen wirklich, die mit der Vereinfachung verschwunden sind: etwa um die richtige Installationsdatei vorzuschlagen oder zu wissen, in welcher Version ein Fehler auftritt. Chrome hat diese Informationen nicht gelöscht, sondern **auf Anfrage** verfügbar gemacht. Der Mechanismus heißt User-Agent Client Hints und funktioniert, wie im [Client-Hints-Leitfaden von MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/Client_hints) beschrieben, so:

1. Mit der ersten Anfrage sendet der Browser neben dem vereinfachten `User-Agent` drei kurze Header: `Sec-CH-UA` (Browsermarke und Hauptversion), `Sec-CH-UA-Mobile` (mobil oder nicht) und `Sec-CH-UA-Platform` (Name des Betriebssystems).
2. Ein Server, der mehr wissen möchte, nennt in seiner Antwort im Header `Accept-CH` die gewünschten Hinweise.
3. Der Browser fügt die Hinweise, die er zulässt, den folgenden Anfragen an diese Website hinzu.
4. Ist ein Hinweis schon bei der ersten Anfrage unverzichtbar, verwendet der Server den Header `Critical-CH`; der Browser sendet die Anfrage dann mit diesem Hinweis erneut.

Die drei Standard-Header sehen in einer Chrome-Anfrage so aus:

```text
Sec-CH-UA: "Google Chrome";v="143", "Chromium";v="143", "Not A(Brand";v="24"
Sec-CH-UA-Mobile: ?0
Sec-CH-UA-Platform: "Windows"
```

„Not A(Brand“ in der Liste ist kein Fehler. Laut MDN fügen Browser der Liste absichtlich eine erfundene Marke hinzu; Server sollen sich gar nicht erst angewöhnen, eine Anfrage abzulehnen, sobald sie einen unbekannten Namen sehen. Es ist eine Vorkehrung, damit sich die Geschichte von `Mozilla/5.0` nicht wiederholt.

| Art des Hinweises | Header | Wann wird er gesendet? |
|---|---|---|
| Geringe Entropie | `Sec-CH-UA`, `Sec-CH-UA-Mobile`, `Sec-CH-UA-Platform` | Bei jeder Anfrage, von selbst (nur HTTPS) |
| Hohe Entropie | `Sec-CH-UA-Platform-Version`, `Sec-CH-UA-Full-Version-List`, `Sec-CH-UA-Model`, `Sec-CH-UA-Arch` | Nur wenn der Server sie mit `Accept-CH` anfordert |

Dieselben Informationen erreicht JavaScript über `navigator.userAgentData`. Fügen Sie die folgenden Zeilen in die Chrome-Konsole ein, um Ihre eigenen Werte zu sehen:

```js
console.log(navigator.userAgent);

if (navigator.userAgentData) {
  const details = await navigator.userAgentData.getHighEntropyValues([
    "platformVersion",
    "model",
    "fullVersionList",
  ]);
  console.log(details);
}
```

Unter Windows 11 liefert dieser Code für `platformVersion` eine Hauptversion von 13 oder höher; das ist die Methode, die Microsofts Dokumentation zur Unterscheidung von Windows 10 und 11 zeigt. Auf dem Windows-11-Rechner, den wir getestet haben, meldete der `User-Agent` weiterhin `Windows NT 10.0`, während `platformVersion` den Wert `19.0.0` lieferte.

Kennen Sie auch die Grenze. Client Hints gibt es heute nur in Chromium-basierten Browsern (Chrome, Edge, Opera). In den Kompatibilitätsdaten von MDN senden Firefox und Safari diese Header nicht, und das Objekt `navigator.userAgentData` ist dort nicht definiert. Deshalb ist die `if`-Prüfung im Code oben nötig.

## Was ändert eine Änderung des User-Agents nicht?

Der User-Agent ist ein Etikett, und ein neues Etikett ändert nichts am Inhalt der Schachtel. Wenn Sie die Zeile auf „Safari auf dem iPhone“ stellen, bleibt Folgendes, wie es ist:

- **Client-Hints-Header.** Haben Sie ein Werkzeug verwendet, das nur den Header `User-Agent` ändert, sendet Chrome weiterhin `Sec-CH-UA-Platform: "Windows"`. Safari sendet diese Header überhaupt nicht; Ihre Anfrage behauptet also, Safari zu sein, und trägt zugleich Header, die nur Chromium sendet.
- **Was JavaScript sieht.** Bildschirmgröße, installierte Schriftarten, Grafikkarte, Touchscreen-Unterstützung. Welche Signale das sind, listen wir in [Was ist Browser-Fingerprinting?](/de/blog/browser-fingerprinting) auf.
- **Die Verbindung selbst.** Das erste Paket, das ein Browser beim Aufbau einer verschlüsselten Verbindung sendet, ist in jeder Browserfamilie anders aufgebaut und geht vor den Headern auf die Reise. Die Details stehen in [unserem Artikel zu TLS-Fingerprinting und JA3](/de/blog/tls-fingerprinting).
- **Die IP-Adresse.** Die Anfrage verlässt weiterhin Ihren Anschluss, mit Ihrer IP-Adresse.

Eine Änderung des User-Agents ist deshalb ein Testwerkzeug, kein Werkzeug zum Unsichtbarwerden. Bot-Schutzsysteme betrachten nicht einen einzelnen Header, sondern ob die Signale zueinander passen; das Gesamtbild beschreiben wir aus Sicht des Website-Betreibers in [unserem Artikel zur Funktionsweise der Bot-Erkennung](/de/blog/how-bot-detection-works). Software, die den Aufbau eines stimmigen Kennungssatzes pro Profil übernimmt, ist eine eigene Kategorie: [Was ist ein Antidetect-Browser und wie funktioniert er?](/de/blog/what-is-antidetect-browser).

## User-Agent im Code: Standardwerte und eine ehrliche Bot-Kennung

Jeder Client außerhalb des Browsers hat ebenfalls einen User-Agent, und solange Sie ihn nicht setzen, ist es der Name der Bibliothek. Die folgenden Werte haben wir für diesen Artikel auf unserem eigenen Rechner gemessen; die Versionsnummer fällt bei Ihnen anders aus:

| Client | Standard-User-Agent |
|---|---|
| `curl` | `curl/8.21.0` |
| Python Requests | `python-requests/2.34.2` |
| Node.js (eingebautes `fetch`) | `node` |

Diese Werte sind nicht falsch, sie sind ehrlich. Was ihnen fehlt: Sie sagen dem Administrator der Website nicht, **wer Sie sind und wie man Sie erreicht.** Ein Administrator, der Tausende Zeilen `python-requests` in seinen Logs sieht, hat nur eine Möglichkeit, nämlich zu sperren.

Für ein regelmäßig laufendes Skript zur Datenerfassung ist es etablierte gute Praxis, eine Kennung zu schreiben, die der Form „Produkt/Version (Kommentar)“ aus RFC 9110 folgt und den Namen des Bots sowie einen Kontaktweg enthält. Suchmaschinen-Bots machen es genauso; der Wert von Googlebot hat die Form `Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)`. Mit `curl` ist das eine einzige Zeile:

```bash
# Standardkennung anzeigen
curl -s https://httpbin.org/headers

# Mit -A die eigene Kennung setzen
curl -s -A "ExamplePriceBot/1.0 (+https://example.com/bot-info)" https://httpbin.org/headers
```

Setzen Sie die Kennung in Python nicht für einzelne Anfragen, sondern für die Session. So gehen alle Anfragen mit derselben Kennung hinaus, und auch die Proxy-Einstellung steht an einer Stelle:

```python
import requests

URL = "https://httpbin.org/headers"
BOT_UA = "ExamplePriceBot/1.0 (+https://example.com/bot-info; bot@example.com)"

# 1) Ohne jede Einstellung: die Kennung der Bibliothek
print(requests.get(URL, timeout=20).json()["headers"]["User-Agent"])

# 2) Feste, sich selbst ausweisende Kennung und Proxy für die gesamte Session
session = requests.Session()
session.headers["User-Agent"] = BOT_UA
proxy = "http://user:pass@pr.proxynet.io:8000"
session.proxies = {"http": proxy, "https": proxy}

for _ in range(3):
    print(session.get(URL, timeout=20).json()["headers"]["User-Agent"])
```

Die erste Zeile gibt `python-requests/2.x` aus, die nächsten drei die von Ihnen geschriebene Kennung. In Node.js erledigt das Feld `headers` des `fetch`-Aufrufs dieselbe Aufgabe:

```js
const url = "https://httpbin.org/headers";

// 1) Standardkennung
let res = await fetch(url);
console.log((await res.json()).headers["User-Agent"]);

// 2) Die selbst geschriebene Kennung
res = await fetch(url, {
  headers: { "User-Agent": "ExamplePriceBot/1.0 (+https://example.com/bot-info; bot@example.com)" },
});
console.log((await res.json()).headers["User-Agent"]);
```

Speichern Sie die Datei mit der Endung `.mjs`; die erste Zeile der Ausgabe lautet `node`. Einen Proxy in Node.js zu definieren ist ein eigenes Thema, erprobte Beispiele finden Sie in [Proxys in Node.js verwenden](/de/blog/nodejs-proxy). Alle Proxy-Flags auf der `curl`-Seite stehen in [cURL mit Proxy verwenden](/de/blog/curl-proxy).

### Warum bringt ein zufälliger User-Agent bei jeder Anfrage nichts?

Die meisten Scraping-Anleitungen im Netz empfehlen, eine „aktuelle User-Agent-Liste“ herunterzuladen und bei jeder Anfrage zufällig einen Eintrag daraus zu wählen. Den Mechanismus haben Sie im vorigen Abschnitt gesehen: Es ändert sich nur das Etikett. Wenn dieselbe IP-Adresse, dasselbe Cookie und dieselbe Verbindungsspur in einer Anfrage Chrome unter Windows und in der nächsten Safari auf dem iPhone sein wollen, entsteht ein Datenverkehr, der keinem echten Nutzer ähnelt. Eine einzige, feste Kennung, die sich selbst ausweist, ist stimmig und gibt dem Administrator der Website zudem einen Ansprechpartner. Beispiele für Stimmigkeit finden Sie im Abschnitt „Header und eine konsistente Client-Identität“ von [Web Scraping ohne Sperren](/de/blog/web-scraping-without-getting-blocked).

### Warum sollte man sich nicht als Googlebot ausgeben?

Manche Anleitungen empfehlen, den Wert von Googlebot in den User-Agent zu schreiben. Tun Sie es aus zwei Gründen nicht. Erstens funktioniert es nicht: Google rät Websites, seinen Bot [per Reverse-DNS-Abfrage oder anhand der veröffentlichten IP-Bereiche zu verifizieren](https://developers.google.com/crawling/docs/crawlers-fetchers/verify-google-requests). Eine IP-Adresse, die sich als Googlebot ausgibt, bei der Reverse-DNS-Abfrage aber nicht unter `googlebot.com`, `google.com` oder `googleusercontent.com` aufgelöst wird, wird schneller gesperrt als ein gewöhnlicher Bot. Zweitens verlassen Sie mit der Kennung einer anderen Organisation den Rahmen der Erlaubnis, die Ihnen die Website gegeben hat. Die einzige legitime Verwendung ist der oben genannte Test: zu sehen, was **Ihre eigene** Website dieser Kennung zurückgibt.

Ein ehrlicher Bot-Name hat noch einen Vorteil. Die Zeile `User-agent:` in einer robots.txt verwendet dasselbe Wort, ist aber etwas anderes: In dieser Zeile gibt der Website-Betreiber an, für welchen Bot eine Regel gilt. Ist der Name Ihres Bots bekannt, kann der Betreiber eine Regel eigens für Sie schreiben, und Sie halten sich daran. Wie die Datei gelesen wird, steht in [Was ist robots.txt und wie liest man die Datei?](/de/blog/robots-txt).

## Proxy und User-Agent: Der Proxy ändert die IP, Sie die Kennung

Proxy und User-Agent werden oft verwechselt, weil beide zur Frage „Wie sieht mich die Website?“ gehören. Die Aufgabenteilung ist klar: Ein Proxy ändert, von welcher IP-Adresse und aus welchem Land die Anfrage ausgeht. Den User-Agent berührt er nicht. Bei einer HTTPS-Verbindung kann er es auch nicht: Der Proxy baut nur den verschlüsselten Tunnel auf und sieht die Header darin nicht. Im Python-Beispiel oben sieht die Website mit und ohne Proxy denselben User-Agent.

Daraus folgt die Regel, dass beide **dieselbe Geschichte erzählen** sollten. Wenn Sie Ihre eigene mobile Website oder das Backend Ihrer App aus der Sicht eines Smartphone-Nutzers in Türkiye testen, passt zu einem mobilen User-Agent eine IP aus dem Netz eines Mobilfunkanbieters; dafür gibt es [Mobile-Proxy](https://proxynet.io/de/mobile-proxy). Wenn Sie den Preis oder die Anzeige prüfen, die ein Privatnutzer sieht, bildet eine Desktop-Browserkennung mit [Residential-Proxy](https://proxynet.io/de/residential-proxy) ein stimmiges Paar. Ein „Smartphone“, das von einer Rechenzentrums-IP kommt, oder eine Anfrage von einer deutschen IP mit `Accept-Language: tr` ist widersprüchlich, egal wie sorgfältig der User-Agent gewählt wurde.

## Einsatzbereiche

- **Vergleichstest von mobiler und Desktop-Version.** Dieselbe Seite mit zwei Kennungen und der IP des Ziellandes öffnen und die Unterschiede sehen: [Lösung für App-Tests](/de/app-testing).
- **Regelmäßige Datenerfassung unter eigenem Namen.** Feste Bot-Kennung, Einhaltung der robots.txt und ein Ratenlimit greifen ineinander: [Lösung für Data Scraping](/de/data-scraping).
- **Websites crawlen und Links prüfen.** Wenn Sie Ihren eigenen Crawler schreiben, ist die Kennzeile der erste Konfigurationspunkt: [Web-Crawler-Lösung](/de/web-crawler).
- **Den Unterschied zwischen mobil und Desktop in den Suchergebnissen beobachten.** Das Ranking ändert sich je nach Gerätetyp und Standort: [SEO-Proxy-Lösung](/de/seo-proxy).
- **Browser-Automatisierung.** In Playwright wird der User-Agent beim Erstellen des Contexts übergeben und gilt für alle Seiten dieses Contexts: [Was ist Playwright und wie nutzt man es mit Proxy?](/de/blog/playwright-proxy).

## Häufige Fehler

- **Annehmen, dass mit dem User-Agent auch die IP verborgen ist.** Es sind getrennte Ebenen; im User-Agent steht keine IP-Information.
- **Nur den Header ändern und Client Hints vergessen.** Chrome nennt mit `Sec-CH-UA-Platform` weiterhin das echte Betriebssystem.
- **Die Betriebssystemversion aus dem User-Agent lesen.** Im aktuellen Chrome sind diese Felder fest; Windows 11 und neue Android-Versionen tauchen im String nicht auf.
- **Eine alte „User-Agent-Liste“ aus dem Netz verwenden.** Eine Anfrage, die eine Jahre alte Chrome-Version nennt, ähnelt keinem echten Browserverkehr, und manche Websites senden alten Versionen eine unvollständige Seite.
- **Eine zufällige Kennung wählen oder sich als Googlebot ausgeben.** Das Erste ist zusammen mit derselben IP und demselben Cookie ein Signal für Unstimmigkeit, das Zweite besteht die Reverse-DNS-Verifizierung nicht.
- **Eine Switcher-Erweiterung installieren, ohne die Berechtigungen anzusehen.** Eine Erweiterung, die Header ändert, kann Ihren gesamten Datenverkehr sehen.
- **Die Änderung nach dem Test eingeschaltet lassen.** Bleibt „Desktopwebsite“ oder die Erweiterung aktiv, sehen Websites irgendwann kaputt aus, und niemand erinnert sich an den Grund.

## Entscheidungshilfe

| Bedarf | Empfehlung |
|---|---|
| Ich möchte meinen eigenen User-Agent sehen | `navigator.userAgent` in der Konsole oder `httpbin.org/headers` |
| Ich will die mobile Ansicht am Computer ausprobieren | DevTools > More tools > Network conditions |
| Ich will auf dem Smartphone die Desktopseite öffnen | „Desktopwebsite“ im Chrome-Menü |
| Ich muss wissen, ob ein Besucher Windows 11 nutzt | `Sec-CH-UA-Platform-Version` oder `getHighEntropyValues` |
| Ich schreibe einen regelmäßig laufenden Scraper | Eine einzige, feste Bot-Kennung mit Namen und Kontaktadresse |
| Ich teste, wie ich aus einem anderen Land und von einem anderen Gerät aussehe | Zum Gerät passender User-Agent zusammen mit einer Proxy-IP desselben Typs |
| Ich möchte sehen, was meine Website Bots zeigt | Test mit Bot-Kennung ausschließlich auf der eigenen Website |
| Ich möchte den Bot-Schutz einer Website mit dem User-Agent überwinden | Dieser Weg funktioniert nicht; offizielle API oder Erlaubnis des Betreibers |

## Häufige Fragen

### Was bedeutet User-Agent?

Wörtlich „Agent des Nutzers“: die Software, die in Ihrem Namen Anfragen ins Internet sendet. Im Alltag ist damit der Text im Header `User-Agent` gemeint, den diese Software mit jeder Anfrage sendet und der Name, Version und Betriebssystem nennt.

### Zeigt der User-Agent meine IP-Adresse oder meinen Standort?

Nein. Der String enthält nur Angaben zu Software und Betriebssystem. Ihre IP-Adresse erfährt die Website aus der Verbindung selbst, Ihren ungefähren Standort aus dieser IP-Adresse. Eine Änderung des User-Agents beeinflusst beides nicht.

### Ist es legal, den User-Agent zu ändern?

Einen Header zu ändern, den der eigene Browser sendet, ist für sich genommen keine verbotene Handlung; Browser bringen dafür in ihren Entwicklertools ein fertiges Menü mit. Entscheidend ist, was Sie nach der Änderung tun. Sich wie der Bot einer anderen Organisation zu verhalten oder die Nutzungsbedingungen einer Website zu umgehen, führt zu Problemen, unabhängig davon, wie der Header gesetzt wurde. Den rechtlichen Rahmen der Datenerfassung behandeln wir in [Ist Web Scraping legal?](/de/blog/is-data-web-scraping-legal).

### Warum zeigt der User-Agent unter Windows 11 Windows 10 an?

Chromium-basierte Browser haben das Betriebssystemfeld auf den Wert `Windows NT 10.0` festgelegt. Die echte Version steht im Header `Sec-CH-UA-Platform-Version`; eine Hauptversion von 13 oder höher bedeutet Windows 11.

### Haben Client Hints den User-Agent ersetzt?

Noch nicht. Der Header `User-Agent` wird weiterhin von allen Browsern gesendet; Chrome hat lediglich seinen Inhalt vereinfacht. Client Hints sind ein zusätzlicher Mechanismus, der Websites das Detail auf einem erlaubnisbasierten Weg gibt, wenn sie danach fragen, und es gibt sie vorerst nur in Chromium-basierten Browsern. Bei Nutzern von Firefox und Safari sehen Websites weiterhin auf den `User-Agent`-String.

### Ändert sich der User-Agent, wenn ich einen Proxy nutze?

Nein. Ein Proxy ändert die IP-Adresse, von der die Anfrage ausgeht; die gesendeten Header bleiben gleich. Planen Sie beides zusammen: Den Gerätetyp nennt der User-Agent, Standort und Netztyp nennt der Proxy.

## Fazit

Der User-Agent ist die einzeilige Selbstauskunft der Software, die eine Anfrage sendet. Dass er mit `Mozilla/5.0` beginnt, ist ein historisches Kompatibilitätsüberbleibsel; die eigentliche Information steht in der Klammer und am Zeilenende. Chrome hat diese Zeile vereinfacht und das Detail in die Client-Hints-Header verlagert; deshalb erscheint Windows 11 als `NT 10.0` und neue Smartphones als `Android 10; K`. Die Änderung ist einfach (der Tab „Network conditions“, das Häkchen „Desktopwebsite“, `curl -A`), aber es ändert sich nur das Etikett: Client Hints, JavaScript-Signale, Verbindungsspur und IP-Adresse bleiben bestehen. Verwenden Sie im eigenen Skript statt zufälliger Kennungen eine einzige Kennung mit Ihrem Namen und Ihrer Kontaktadresse, und geben Sie sich nicht als fremder Bot aus. IP-Adressen, die zu dem getesteten Gerät und Standort passen, finden Sie bei [unseren Proxy-Diensten](/de/proxy).
