Slow: ISP, not WiFi
Your router answers right away, so the slowdown is past it. Call your ISP, and send them the report.
Free for Mac · No account · No tracking
WiFi or ISP sits in your menu bar and times your router and the internet at the same moment. When things slow down, it tells you which side to blame, and keeps the receipts for your ISP.
macOS 14 or later · Apple Silicon and Intel · Notarized by Applebrew install --cask coreyhaines31/tap/wifiorisp
Every few seconds, the app times a round trip to your router and, at the same moment, one to the internet. Your router is the border: everything before it is yours, everything after it is your ISP's.
Your router answers right away, so the slowdown is past it. Call your ISP, and send them the report.
Even the router is slow to answer, and the signal is weak. Move closer, or add an access point.
Strong signal, slow router. That's a crowded channel or an overloaded router. Restart it, or change its channel.
Your home network works. The outage is upstream, and the app notes exactly when it started and ended.
Slow internet never happens while the support rep is on the phone. So WiFi or ISP logs it in the background: signal, noise, transmit rate, roaming, router and internet round trips, and every drop. Look back an hour or a month.
When you're ready to complain, export a plain-text report. It lists each outage and whether your router kept answering through it, which is the part that makes an ISP stop telling you to restart your router.
Connection report Period: Oct 1 at 9:00 AM to Oct 8 at 9:00 AM - Outages: 3, 47 min in total. During 3 of them, my router kept answering while nothing past it did, so the outage was on the ISP's side. - Slow because of the ISP's side: 9.4% - Slow because of my home network: 0.6% - Typical round trip to my router: 4 ms.
Get a heads-up when the internet drops (and when it's back, with how long it was gone), when your Mac quietly falls back to 2.4 GHz, or when it roams to an access point that's worse than the one it left.
Turn each one off in Settings. Reconnecting after sleep never counts as a drop.
Measured against the nearest Measurement Lab server, a nonprofit research project. M-Lab publishes every result as open data, and the app tells you so before your first test. Runs only when you click it.
Lags under load: past your router (bufferbloat)
Fills your connection both ways and measures how slow round trips get, using the IETF responsiveness test. Router probes during the test show whether the queue is on your side or past it, and what to change.
No analytics, no account. History stays on your Mac, and nothing is sent anywhere except the tests you start.
macOS treats your Wi-Fi network's name as location data. Allow it and your history is labeled by network. Skip it and everything else still works.
It reads your current connection without scanning for networks, and backs off if macOS's Wi-Fi service gets busy.
Round trips are timed with ordinary connections, not ping, so there's nothing to install with a password.
Usually one of three things: a weak signal (too far from the router, or walls in the way), a crowded channel or overloaded router, or a problem past your router at your ISP. Each one looks the same from your browser. WiFi or ISP tells them apart by timing your router and the internet together.
Your side of the line: your Mac's radio, the air, and your router. “ISP” means everything past the router, including your modem and the line to your provider. If your router is slow, that's on your side, even with a strong signal.
When an upload or download fills your connection, packets pile up in a queue and every round trip slows down. That's why video calls stutter while a backup runs. The lag-under-load test measures it and says whether the queue is in your Wi-Fi or router, or past it. Turning on Smart Queue Management (SQM) on your router usually fixes it.
No. The background checks are single tiny round trips, every 5 to 30 seconds. Speed and lag tests only run when you click them.
Only to show your Wi-Fi network's name, which macOS treats as location data. The app never asks where you are. Say no and it shows “Unknown network”.
Yes. On a cable it skips the signal readings and still compares your router with the internet. With a VPN on, it still measures the Wi-Fi network underneath.
Yes. The source is on GitHub under the Functional Source License, which turns into the MIT license two years after each release.
brew install --cask coreyhaines31/tap/wifiorisp