The short version: If your Mac has a great Wi-Fi signal but terrible speed, and the slowness follows the Mac to every network — different routers, both bands, even a phone hotspot — but disappears the moment you use USB or Ethernet, your macOS network configuration is corrupt.
The fix: create a new Network Location (System Settings → Network → ⋯ → Locations → Add Location), reconnect Wi-Fi, and test again. That’s the whole cure.
Now the story.
I wrote this so the right person finds it. If most of these match, you have exactly what I had:
Wi-Fi signal is excellent — full bars, high negotiated rate (1000+ Mbps).
Actual speed is stuck low — mine sat at 30–75 Mbps no matter what.
Other devices on the same router are fast. My iPhone hit 500+ Mbps on the same Wi-Fi.
The Mac is slow on both 2.4 GHz and 5 GHz.
The Mac is slow on other networks too — even a totally different router or a phone hotspot.
But it’s fast over USB tether or Ethernet (I got a clean 150 Mbps).
Latency under load is awful — idle ping ~15 ms, but under load it spikes to 400–850 ms.
It survives reboots. It survives macOS updates.
No errors anywhere. Everything looks perfectly healthy.
If that’s you: it’s not your ISP, not your router, not the band, and not broken hardware. It’s your Mac’s network config.
A MacBook Pro (M3 Pro) on macOS 26. Gigabit fibre. A Wi-Fi 6 router. The link was textbook-perfect: 160 MHz channel, signal at −44 dBm, top-tier modulation.
Real-world speed: about 50 Mbps. On a gigabit line.
Every metric screamed “your Wi-Fi is amazing.” Every download said otherwise.
I burned hours on theories that were all wrong — and they were wrong for one sneaky reason: the signal looked flawless, so I kept staring at the radio. Here’s what I chased. You’ll be tempted by every one of these. Don’t be.
Red herring #1 — “It’s the ISP or DNS.” Killed fast. Multiple independent speed tests hit the identical ceiling. When everything caps at the same number, the problem is local.
Red herring #2 — “It’s AirDrop/Continuity stealing the radio” (AWDL). This is a real macOS thing: one radio time-shared between Wi-Fi and AirDrop. A packet capture even showed periodic ~90 ms blackouts on a clockwork cadence. Very convincing.
Test:
sudo ifconfig awdl0 downright before a speed test. Result: no change. Innocent.
Red herring #3 — “160 MHz is fragile in a crowded building.” My best theory. A 160 MHz channel needs a lot of clean spectrum, and I live somewhere dense. It even explained why my iPhone (narrower channel) was fine.
Test: split the router into separate 2.4 GHz and 5 GHz networks and test each. Result: ~50 Mbps on both. But 2.4 GHz can’t even do 160 MHz — it’s completely different spectrum. If both bands fail identically, anything radio-specific is dead.
Red herring #4 — “A proxy or VPN is throttling it.” macOS even flagged “custom web proxy settings.” But every proxy toggle was actually off. False alarm.
Here’s the reasoning that cracked it — and it’s the one lesson worth stealing from this whole mess.
Forget the metrics. Just map where the problem shows up and where it doesn’t:
Router 5 GHz → ~50–75 Mbps 🐢
Router 2.4 GHz → ~50 Mbps 🐢
A different router / phone hotspot → ~50–60 Mbps 🐢
iPhone on the same router → 500+ Mbps 🚀
The Mac over USB tether (no Wi-Fi) → 150 Mbps 🚀
Read that like a detective:
The slowness follows the Mac — across two bands and multiple routers. So it’s not the router, not the band, not the environment.
But it vanishes the instant Wi-Fi leaves the path (USB). So it’s not the Mac’s TCP stack, CPU, or apps either.
Only one thing is present in every slow case and absent from every fast one: the Mac’s Wi-Fi network configuration. Not the hardware (fast over USB, perfect signal). Not the airwaves (slow everywhere). The config layer sitting between them.
That’s the trick. When a fault follows a machine but only on one type of connection, you’ve isolated it to that machine’s config for that connection. No packet capture required.
macOS keeps your entire network configuration — every interface, service order, DHCP lease, IPv6 setup, DNS, proxies — inside something called a Network Location. Almost nobody knows it exists, because everyone lives in the default one (”Automatic”) forever.
Over time, that config rots. Reboots don’t help — config files persist. macOS updates don’t help — they persist across those too. That’s why the problem felt immortal.
The cure is to make macOS build a fresh config from scratch:
Open System Settings → Network.
Click the ⋯ (More) button → Locations… → Add Location.
Name it anything (”Fixed”).
Switch to the new Location and click Apply.
Reconnect your Wi-Fi and run a speed test.
Mine jumped from ~50 Mbps to full speed instantly. You don’t repair the broken config — you sidestep it. The new Location is a clean, permanent profile; use it forever.
Want to confirm the diagnosis first? Boot into Safe Mode and test. Fast in Safe Mode means it’s a software/config problem and the Location trick will work. Still slow in Safe Mode means suspect firmware or hardware — time for Apple diagnostics.
One more thing: you’ll see advice to delete system config files by hand. Don’t bother — the new Location already fixed it, and on modern macOS those files are root-owned and system-protected anyway. That protection is exactly why the new-Location approach is the cleaner fix. Leave them alone.
The satisfying part: a corrupt network config retroactively explains all of it.
Perfect signal, terrible speed — the hardware was always fine; the bug was one layer up.
Both bands equally bad — config sits above the radio, so it doesn’t care about frequency.
Every router equally bad — the same broken Wi-Fi service handled all of them.
Fast over USB — tethering is a different network service that never touched the rotten config.
iPhone fast on the same router — different device, different config. The router was never the issue.
Broken IPv6, exploding latency under load — those were the fingerprints of the mangled config all along.
Survives reboots and updates — config files persist across both.
Every “impossible” contradiction dissolves once you realize you were debugging the wrong layer.
Next time your Mac’s Wi-Fi is slow with a great signal, don’t open Wireless Diagnostics. Ask one question:
Does the slowness follow the Mac to other networks, but go away over USB or Ethernet?
Yes → it’s your Mac’s network config. Make a new Network Location. Done.
No (slow only on this network, fine elsewhere) → now it’s fair to blame the router or the environment.
Isolation beats instrumentation. All the pretty signal numbers in the world will point you at the radio — when the real bug is quietly sitting in a config file.
If this saved your evening, share it with the next person staring at “1729 Mbps” while downloading at 50. They’ll thank you.