How to Fix Wi-Fi Issues on Mac — Step-by-Step Diagnostics in 2026

Wi-Fi problems on a Mac usually fall into one of four patterns: it joins but speed is poor, it drops every few minutes, it refuses to join a network it used to know, or it shows full bars but no internet. Each pattern has a different cause and a different fix. The guide below walks through them in the order a working network engineer would — symptoms first, cheap fixes next, deeper resets last.

Everything here works on macOS Sequoia (15) and Sonoma (14), and most of it on Ventura too. Commands are run in Terminal (Applications → Utilities → Terminal). If you are unsure which symptom matches yours, start with the table in the next section.

Symptom → first three fixes

Use this as a starting map. Each row lists the three things to try first before moving deeper into the article.

SymptomFix 1Fix 2Fix 3
Slow speedsRun networkQualitySwitch to 5 GHz or 6 GHz bandMove closer to router or change channel
Drops every few minutesForget and rejoin networkRenew DHCP leaseDisable Wi-Fi-only Continuity features
Won't join known networkForget network, reboot routerReset Location/Network serviceDelete SystemConfiguration plists
Joined but no internetChange DNS to 1.1.1.1 or 9.9.9.9Check captive portalDisconnect VPN, retest
Can't see any networksToggle Wi-Fi off/onReset Bluetooth (interferes)Run Apple Diagnostics
"Authentication error"Forget network, retype passwordCheck router 2.4/5/6 GHz SSIDsUpdate router firmware

Step 1: Read the signal before changing anything

Before resetting anything, gather one minute of data. Hold the Option key and click the Wi-Fi icon in the menu bar. You will see the SSID, BSSID (the router's MAC address), channel, channel width (20/40/80/160 MHz), PHY mode (likely Wi-Fi 6/6E/7 in 2026), RSSI in dBm, noise in dBm, and transmit rate. The relevant numbers:

Then open Terminal and run networkQuality — Apple's built-in responsiveness test added in Monterey. It reports download, upload, and "responsiveness" (a Round-Trips-Per-Minute metric under load). A home connection on a healthy Wi-Fi 6 router should hit hundreds of RPM and within 70-90% of the wired speed. A poor result with high RPM under load means the bottleneck is upstream, not your Mac.

Step 2: Built-in Wireless Diagnostics

Hold the Option key and click the Wi-Fi icon, then choose Open Wireless Diagnostics. The visible window is the wizard — skip past it. The real value is in the menu bar: Window → Scan, Window → Performance, and Window → Sniffer.

Scan shows every nearby SSID with their channels, widths, signal, and noise. The "Best 2.4 GHz Channels" and "Best 5 GHz Channels" panel at the top suggests the least-congested channels. Performance graphs RSSI, noise, and transmit rate in real time — watch it for a minute while moving around or running a download to find dead spots and roaming behavior. Sniffer captures raw 802.11 frames for deep packet analysis (usually overkill, but invaluable if you ever need to send a capture to support).

Wireless Diagnostics also saves a WirelessDiagnostics-*.tar.gz log archive to your desktop when you finish the wizard. If you escalate to ISP support, this archive is what they actually want.

Step 3: Terminal commands that pinpoint the problem

Five commands answer most "is it my Mac, my network, my ISP, or DNS" questions in under a minute.

ping

ping -c 20 1.1.1.1 tests raw IP reachability to Cloudflare's public DNS. If this fails entirely but Wi-Fi shows connected, the gateway or upstream is broken — not your DNS. If it succeeds with low latency and zero loss, the network path is fine.

ping -c 20 192.168.1.1 (replace with your gateway IP, visible under System Settings → Network → Wi-Fi → Details → TCP/IP) confirms your link to the router itself. High latency or packet loss here points to local Wi-Fi quality, not the ISP.

traceroute

traceroute -n 1.1.1.1 shows every hop your packets take. The first hop is your router. The second is usually your ISP's edge. If latency jumps dramatically between hops 2 and 4, the slowness is upstream; if it jumps between you and hop 1, it is your local link.

dig

dig +short cloudflare.com tests DNS. If ping 1.1.1.1 works but dig times out or returns nothing, your DNS resolver is broken — common with captive portals, broken DoH, or stale resolver state.

scutil --dns

scutil --dns dumps every DNS configuration macOS knows about, by interface and scoped queries. Look for unexpected resolvers (VPNs often inject 10.x.x.x or 100.64.x.x addresses), and confirm your active interface has reasonable nameservers.

networkQuality

networkQuality -v runs the verbose responsiveness test. Compare the result wired vs Wi-Fi — if wired is 5x faster, the problem is your wireless link or router placement, not your ISP.

Step 4: Forget the network and rejoin

Half of all weird Wi-Fi behavior comes from stale credentials or cached network profiles. To fully forget a network: System Settings → Wi-Fi → click the (i) next to the network name → Forget This Network. Confirm. Then rejoin from scratch and re-enter the password. On macOS Sequoia, the same option is also exposed in the Wi-Fi menu by holding Option and clicking the network name.

If the network appears in iCloud Keychain across devices, the credentials may sync back almost immediately. To prevent that during troubleshooting, temporarily turn off Keychain sync (System Settings → [your name] → iCloud → Passwords & Keychain → off) before forgetting the network.

Step 5: Renew the DHCP lease

If your Mac connects but cannot reach the internet, a broken DHCP lease is a likely cause. System Settings → Network → Wi-Fi → Details → TCP/IP → click Renew DHCP Lease. You should see the IPv4 address, subnet mask, router, and DNS servers populate within a few seconds.

If the address that appears is in 169.254.x.x range, your Mac never got a real lease — that is a self-assigned link-local address. Restart the router and try again. If you control the router, check its DHCP pool isn't exhausted (consumer routers usually have a 200-address pool that fills up if you don't manage long lease times).

Step 6: Change DNS

Your ISP's DNS is often the slowest and most error-prone link in the chain. Swap it. System Settings → Network → Wi-Fi → Details → DNS. Click the + under DNS Servers and add:

Click OK and Apply. Test with dig +short cloudflare.com. For full DNS-over-HTTPS support, install a Configuration Profile from 1.1.1.1 or NextDNS — that encrypts DNS queries even on captive networks.

Step 7: Remove and re-add the network service

If Wi-Fi is fundamentally misbehaving — keeps prompting for password, fails to join known networks — recreate the network service. System Settings → Network → click the three-dot menu next to the Wi-Fi service → Remove Service. Then click Add Service, choose Wi-Fi, give it a name, and Apply. macOS will rebuild its internal interface state from scratch.

This is non-destructive (your saved networks live in Keychain, not the service) but it does reset Wi-Fi priority order, so reorder networks after if you have multiple.

Step 8: Delete SystemConfiguration plists

This is the nuclear option for persistent Wi-Fi misbehavior. macOS stores Wi-Fi state in several .plist files inside /Library/Preferences/SystemConfiguration/. When they corrupt, no amount of forgetting or rejoining helps.

First, make a backup. Open Terminal:

Reboot. On macOS Sonoma and Sequoia, some of these files are protected by SIP and require entering Recovery Mode for full removal — but the listed ones can be deleted from the running system. After reboot, Wi-Fi will rebuild its preferences fresh. You will have to rejoin every network and re-enter passwords, so save them in 1Password or a similar password manager first.

Step 9: Channel and band selection

2.4 GHz is congested everywhere in 2026 — microwaves, baby monitors, Bluetooth, old IoT, and dozens of neighbor SSIDs share the same three usable channels (1, 6, 11). Use 2.4 GHz only for range to outbuildings or for IoT devices that need it.

5 GHz has 25+ non-overlapping channels in most regions, but DFS channels (52-144) can be interrupted by weather radar; non-DFS channels (36-48 and 149-165) are safer for streaming and calls. 5 GHz signal degrades faster through walls than 2.4 GHz, so closer to the router is better.

6 GHz (Wi-Fi 6E and 7) is the clean band. Almost no congestion, wide 160 MHz channels, and very fast throughput on close-range links. The only catch: Wi-Fi 6E requires a Mac with the M2 chip or newer, and 6 GHz signal does not penetrate walls well. Use it in the same room as the router for maximum throughput.

On the router side, set 2.4 GHz to channel 1, 6, or 11 with 20 MHz width (40 MHz on 2.4 GHz causes co-channel interference). Set 5 GHz to a non-DFS channel with 80 MHz width. Set 6 GHz to automatic with 160 MHz. Turn on band steering (the same SSID for 2.4/5/6 GHz, letting the router and Mac pick the best). Update the router firmware — manufacturers ship critical Wi-Fi fixes throughout the year, and consumer routers often go a year without an update unless owners check.

Step 10: Captive portals and VPN interference

Hotel, airport, and cafe networks use captive portals — your Mac gets an IP and gateway but every web request redirects to a login page until you authenticate. macOS detects this and pops a "Network Login" window, but VPN clients, custom DNS profiles, and DNS-over-HTTPS can break that detection. If you join a captive network and the login page never appears, try opening http://captive.apple.com directly in Safari. That URL is hardcoded in macOS as the captive-portal probe; loading it manually forces the redirect.

Always-on VPNs (Tailscale, WireGuard, corporate clients) can also block captive portals because the VPN tunnel comes up before the portal accepts you. Disable the VPN, authenticate, then re-enable. For Tailscale, use tailscale down then tailscale up. For NetExtender, Cisco AnyConnect, and similar, the GUI has a Disconnect button.

VPNs can also interfere with local services even when not at a captive portal — split-tunnel misconfigurations can route 1.1.1.1 through the VPN, killing local Wi-Fi performance metrics. Check scutil --dns while connected to verify your active resolvers.

Step 11: Continuity, Handoff, and AirDrop conflicts

Continuity features (Universal Clipboard, Handoff, AirDrop, AirPlay, Phone calls, instant hotspot) use Bluetooth LE for discovery and Wi-Fi Direct for the actual transfer. On older Macs and some Wi-Fi 6E configurations, Continuity has been known to briefly drop the primary Wi-Fi connection when negotiating a peer-to-peer link.

If your drops correlate with iPhone notifications or AirDrop activity from nearby devices, try temporarily turning off Handoff (System Settings → General → AirDrop & Handoff → Allow Handoff between this Mac and your iCloud devices → off) for a day to confirm. AirDrop can be set to "Contacts Only" or "No One" instead of "Everyone" to reduce background negotiation traffic.

Step 12: ISP-side checks

If wired Ethernet is also slow (test by plugging directly into the router with a USB-C-to-Ethernet adapter, like Apple's $29 model or any cheaper alternative), the problem is not your Mac or your Wi-Fi. Log into your ISP's status page or call them. Modems get degraded over multi-year deployments; a factory reset of the modem or a swap for a newer model often restores full speed.

For cable internet, check the modem's signal page (usually 192.168.100.1 for many DOCSIS modems) — downstream power should be around -7 to +7 dBmV, upstream around 35-50 dBmV, and SNR above 30 dB. Numbers outside those ranges mean the ISP cable plant needs a technician visit, not anything you can fix.

Step 13: Hardware test and worst case

If everything above fails, run Apple Diagnostics. Shut down the Mac, then on Apple Silicon press and hold the power button until "Loading startup options" appears, then press Command+D. On Intel Macs, hold the D key at startup. The diagnostic suite tests the wireless module along with everything else and returns a reference code starting with NDC or NDR if it finds a Wi-Fi fault — write the code down and provide it to Apple Support.

If the wireless module is failing or interference at your location is unfixable, two stopgaps work. First, a USB Wi-Fi adapter — Alfa AWUS036ACM (2.4/5 GHz Wi-Fi 5) or a more modern AX-class USB 3 adapter — sidesteps the internal radio entirely. Second, run Ethernet. A USB-C-to-Gigabit adapter is $20 and gives you a wired connection that beats any Wi-Fi in latency and reliability. For a desk setup, this should be the default anyway.

Conclusion

Wi-Fi troubleshooting on a Mac is almost always a process of elimination, not a single magic fix. Start cheap: check the signal numbers, run networkQuality, ping the gateway and Cloudflare, swap DNS. Move up only when the cheap fixes do not stick: forget and rejoin, renew DHCP, recreate the network service, delete SystemConfiguration plists. Reserve the band/channel adjustments and hardware tests for the cases where the basics genuinely did not help.

The single highest-leverage change for most home Wi-Fi problems in 2026 is moving to a Wi-Fi 6 or 6E router and placing it where your Mac actually sits. Throughput is a function of signal quality, and signal quality is mostly geometry. If your router is in a closet two walls away, no amount of Terminal tuning will beat moving it to the open room.