On March 28, 2026, Google’s public measurement of IPv6 traffic crossed 50% for the first time. For one day, more than half the people reaching Google did it over IPv6. The headlines wrote themselves: eighteen years after Google started counting, IPv6 reaches the majority.
I want to be the person at the party pointing out that 50% is not a milestone on the way to 100%. It’s the shape of the finish line. This is roughly where IPv6 lives now, and roughly where it stays.
50% of what, exactly
Start with what that number measures. Google’s figure is the fraction of users who reach Google over IPv6 when given the choice. APNIC, measuring differently, puts global IPv6 capability around 43%. Neither of those is measuring IPv6-only. They’re measuring reachability — can this client speak IPv6 at all — and almost every client that can also still speaks IPv4.
That’s the whole story in one sentence. The internet didn’t migrate to IPv6. It bolted IPv6 onto IPv4 and kept both running. We call it dual-stack, which is a polite way of saying we now maintain two internets stacked on top of each other and we’re not turning either one off.
The country spread makes the point louder. France sits around 86%. India is past 70%. Then you look at Italy near 17%, Spain around 10%, and large parts of the world in the single digits. This is not a wave rolling toward saturation. It’s a patchwork that froze in place, where adoption tracks which carriers happened to build out IPv6 a decade ago and which didn’t, and the laggards have no particular reason to move.
The transition was supposed to end
Here’s the part everyone forgets. IPv6 was designed as a transition. The plan, going back to the ’90s, was that we’d run dual-stack for a while as a bridge, IPv4 addresses would run out, the pain would force everyone over, and eventually someone would turn IPv4 off. The dual-stack period was the scaffolding, not the building.
The addresses did run out. RIPE handed out its last block in November 2019. ARIN in North America hit zero back in 2015. By the logic of the transition, that exhaustion was the forcing function — the moment scarcity would finally drag the holdouts onto IPv6.
It didn’t work, for two reasons, and both of them are the kind of thing that doesn’t get undone.
NAT was too good at its job
The first reason is NAT. Network Address Translation was the temporary hack that let a whole network hide behind one public IPv4 address. It was supposed to buy a few years. Instead it quietly solved the address-exhaustion problem well enough that the emergency never arrived.
Then carriers took it up a level with CGNAT — carrier-grade NAT — where thousands of subscribers share a handful of public IPv4 addresses. Your home internet connection may not have a public IPv4 address at all anymore; you’re behind a translator you’ll never see. CGNAT is genuinely worse than a real address. It breaks inbound connections, kills port forwarding, and makes hosting anything from a residential line basically impossible. But it works well enough for someone scrolling and streaming, which is most people most of the time. So the pressure that was supposed to force migration got absorbed by a middlebox instead.
Scarcity was meant to be the stick. NAT ate the stick.
IPv4 became an asset, not a liability
The second reason is that IPv4 addresses stopped being free plumbing and became property. Once the free pools were empty, a market appeared. A single IPv4 address has traded roughly between $30 and $60 in recent years, peaking near $65 around 2021. There are brokers. There are leasing arrangements — rent an address by the month. There are companies sitting on legacy /8 blocks they were handed for nothing in the ’80s that are now worth tens of millions.
Think about what that does to the incentives. The whole theory of the transition was that IPv4 would become a burden nobody wanted to carry. Instead it became an appreciating asset. Nobody turns off a revenue stream. Nobody abandons an address block they can lease out. The scarcity that was supposed to kill IPv4 turned it into something worth keeping alive, and a market is very good at keeping valuable things alive.
Why “IPv6-only” stays a niche
The honest counterpoint is that IPv6-only deployments do exist, and they matter. Large mobile networks run IPv6-only internally and translate at the edge with things like 464XLAT. Big datacenters run v6-only internally to escape the address crunch. So it’s not that nobody goes v6-only.
But look at what those deployments actually do: they still translate to IPv4 at the boundary, because the rest of the world is still on it. IPv6-only inside, IPv4 at the door. The v4 address didn’t disappear — it moved to the edge and got shared. Translation everywhere is not the end of IPv4. It’s IPv4 becoming permanent infrastructure that we route around instead of retire.
And you can’t drop the IPv4 door as long as any meaningful slice of the internet is v4-only — because dropping it means losing those users, and no business does that voluntarily. That slice never reaches zero. It’s the long tail: the embedded device shipped in 2014, the enterprise network nobody’s allowed to touch, the vendor API that will never be updated, the ISP in a country that skipped the buildout. There’s no deadline that clears the tail, no authority that can mandate it, no version of the incentives where the last 20% moves. It’s a coordination problem with no coordinator.
What “won” actually means
I’m not writing an IPv6 obituary. IPv6 won — as much as it is ever going to win. Half the traffic is real, it climbs a point or two a year, and the parts of the internet built this decade are v6-native. That’s a genuine and hard-fought success.
But “won” here does not mean “replaced IPv4.” It means “reached a stable coexistence at roughly half, forever.” The mental model where there’s a transition with an end — a day IPv4 gets switched off and we all move on — is the part that’s wrong. There is no such day on the calendar and there never will be. NAT is too good, IPv4 is too valuable, and the long tail is too long.
Maybe in thirty years something I can’t foresee forces the issue. I doubt it. We didn’t migrate to IPv6. We learned to live in both places at once and quietly stopped pretending it was temporary.