How the user agent works
Every request a browser makes carries a User-Agent header: one line that names the browser, its engine and the system it runs on. Servers use it to pick a mobile layout, to log which browsers visit, to spot bots and to work around browser bugs. This page shows the header exactly as it reached the server, and the same string your browser gives to scripts.
The string is full of history: every browser starts with Mozilla/5.0, Chrome also claims to be Safari, and Edge claims to be Chrome. Browsers now freeze parts of it to make tracking harder, so Windows 11 still says Windows NT 10.0, Macs say 10.15.7 and Chrome on Android hides the phone model. User-Agent Client Hints replace those parts: a browser that supports them reports the real platform version, model and architecture when asked. This page asks your browser directly.
The parser on this page is small and runs in your browser. It checks for known crawlers and HTTP tools first (Googlebot, Bingbot, GPTBot, curl, Wget, python-requests and many more), then the browsers built on Chromium before Chrome itself, and Chrome before Safari, because their strings contain each other's names. A bot's string can be copied by anyone, so a name alone proves nothing.
Example
This is the string Chrome 131 sends on 64-bit Windows:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36| Part | What it means |
|---|---|
Mozilla/5.0 | Sent by every browser for compatibility since the 1990s. It says nothing today. |
(Windows NT 10.0; Win64; x64) | The system: Windows NT 10.0, which is Windows 10 or 11, as a 64-bit build on an x64 processor. |
AppleWebKit/537.36 (KHTML, like Gecko) | The engine token, frozen at the same value since Chrome moved from WebKit to its own Blink engine in 2013. |
Chrome/131.0.0.0 | The browser and its major version. The other three numbers are always 0 in today's reduced string. |
Safari/537.36 | Another compatibility token, so sites written for Safari also work. |
So the parser reads it as Chrome 131 on the Blink engine, Windows 10 or 11, a desktop with an x86-64 processor. In that same browser the Client Hints would add a platform version of 13 or more on Windows 11, and the full Chrome version.
Questions
What is a user agent?
A user agent is the program that makes a web request for you, usually your browser. It introduces itself in the User-Agent header with a string such as Mozilla/5.0 (Windows NT 10.0; Win64; x64) … Chrome/131.0.0.0 Safari/537.36. Servers read it to choose a layout, count browsers in their statistics and recognise bots. Yours is at the top of this page.
How do I change my user agent?
In Chrome or Edge, open DevTools, then the ⋮ menu → More tools → Network conditions, untick “Use browser default” and pick or type one. In Firefox, open about:config and add a string setting general.useragent.override. In Safari, turn on the Develop menu in Settings → Advanced, then choose Develop → User Agent. With curl, use -A, for example curl -A "MyBot/1.0" https://example.com. Reload this page to see the change.
Why does my user agent say Windows 10 when I have Windows 11?
Browsers never changed the string for Windows 11: both versions send Windows NT 10.0. Chrome, Edge and Opera report the real version through Client Hints, where a platform version of 13 or more means Windows 11; this page reads it and shows Windows 11. Firefox does not offer Client Hints, so it can only say Windows 10 or 11.
Why does my Mac show macOS 10.15.7?
Safari and Chrome froze the macOS version at 10.15.7 and Firefox at 10.15, so every newer Mac sends that, Apple silicon or Intel. Some old sites broke when the version passed 10, and a fixed value also gives trackers less to go on. Chrome, Edge and Opera give the real version through Client Hints, which this page shows when they are available.
How do I know a visitor is really Googlebot?
Not from the user agent: anyone can send Googlebot's string. Look up the visitor's IP address in reverse DNS. A real Googlebot address resolves to a name under googlebot.com, google.com or googleusercontent.com, and that name must resolve back to the same address. Google also publishes the address ranges of its crawlers as JSON files. Bing, Apple and OpenAI offer the same kind of check for their bots.