My Mac's Wi-Fi Was Crawling at 50 Mbps With a Perfect Signal. The Fix Was Bizarre.

6 min read Original article ↗

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 down right 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:

  1. Open System Settings → Network.

  2. Click the ⋯ (More) button → Locations… → Add Location.

  3. Name it anything (”Fixed”).

  4. Switch to the new Location and click Apply.

  5. 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.

Discussion about this post

Ready for more?