Those of you who pay attention to your web server log files may have noticed some curious patterns emerging over the last few months. Most websites will have seen a steady rise in devices with User-Agent headers looking something like this:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Mobile Safari/537.36
or like this:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<majorVersion>.0.0.0 Safari/537.36
These User-Agent headers are progressively displacing the more varied User-Agent headers traditionally sent by Chrome browsers.
Eventually, a large proportion of your Chrome traffic is going to look like it originates from either an Android 10 device with model label “K” or a Windows 10/11 desktop. There are macOS and Linux equivalents too, of course, but the Windows and Android patterns will dominate traffic for most websites. Over the remainder of 2023 these traffic patterns will constitute the majority of traffic, around 70% for most websites.
So what is going on?
In May 2022, Google started rolling out a change to Chrome’s behaviour with respect to the User-Agent header. Chrome is now behaving according to a new proposal called User-Agent Client Hints. This change of behaviour was rolled out gradually over the last year, starting with Chrome desktop and eventually reaching Chrome mobile this year. As of May 2023 this year Google is now saying:
May 11th, 2023: the Phase 6 rollout is enabled for 100% of Android clients on M110 and above via Finch.
This was the final phase of the rollout meaning that, as clients upgrade to Chrome 110 or later, this new behaviour will become prevalent. Many other Chromium-based browsers are following suit, including Microsoft Edge
You can read more about User-Agent Client Hints on the UA-CH project page on GitHub. It’s at proposal stage in the W3C’s Web Incubator Community Group, but Google have chosen to jump straight from incubation to deployment, bypassing the usual consensus-building steps conventionally used in Internet standards. There have been significant objections voiced to the proposal.
Google’s choice of “K” as the generic model name may have been short-sighted. There are in fact two real Android models “K” that long predate the User-Agent Client Hints proposal. You can see them on DeviceAtlas here:
You can read more about User-Agent Client Hints (UA-CH) and how to configure your web server to request them at DeviceAtlas.