Skip to content
yutils
Example

Input (User-Agent string)

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Safari/605.1.15

Output

Browser: Safari 17.0
Engine: WebKit 605.1.15
OS: macOS 10.15.7
Device: Mac (Desktop)

Note

Almost every browser starts with `Mozilla/5.0` — a historical joke. A 90s compatibility hack that never went away.

Usage / FAQ

When to use

  • Analyze User-Agent strings from server logs
  • Decode unknown user agents in analytics (GA, Mixpanel)
  • Distinguish bots from real users — Googlebot, GPTBot, etc.
  • Identify the exact OS version of a specific device (iPhone 16 Pro, …)
  • Investigate suspicious traffic — crawler vs headless browser?

FAQ

Q.Why does every browser start with 'Mozilla'?
A.In 1994, sites blocked browsers that didn't support frames by checking for 'Mozilla' (Netscape). IE added it to bypass the block. Every subsequent browser kept it for compatibility — still there today.
Q.Can I trust the User-Agent?
A.No. Clients can change it freely — never rely on it for security or authentication. Use it only as a hint for stats or UI branching. Chrome is gradually replacing it with User-Agent Client Hints.
Q.How do I verify Googlebot?
A.Just having 'Googlebot' in the UA isn't enough — anyone can spoof it. The real verification is reverse DNS: the IP must resolve to `*.googlebot.com`.
Fun facts
  • Strings like 'Mozilla/5.0 (...) Gecko/... Firefox/...' are a 30-year cargo cult that started with NCSA Mosaic's 'Mozilla' nickname in 1993. Every browser since has pretended to be 'Mozilla compatible' by impersonating others' UA strings — that's why IE, Chrome, and Safari all stuff 'Mozilla/5.0' into theirs.

    WebAIM — UA history
  • A detailed enough UA + screen resolution + timezone + font combination is enough to uniquely identify a user (browser fingerprinting). That's why Apple froze the Safari UA in 2021 — to limit per-user tracking.

    EFF — Browser fingerprinting
  • UA-CH (User-Agent Client Hints) landed in Chrome 86 (2020). The unified UA is broken apart and individual pieces are requested via dedicated headers like `Sec-CH-UA-Platform` — a progressive replacement for the old cargo cult is in motion.

    MDN — Client Hints