If sites feel slow on WiFi but snap into life the moment you plug in a cable — and ping round-trip times look identical on both connections — the culprit is almost certainly DNS. The hostname-to-IP lookup happens before any content transfers, so a 150–400 ms DNS penalty per new domain is invisible in a latency test but felt on every page load, every app launch, and every fresh API call. This is one of the most common home and office network complaints and one of the most consistently misdiagnosed, because people check ping, not DNS, and declare the connection fine.

What the Symptom Actually Looks Like

The tell is the browser status bar sitting on "Resolving host..." for a noticeable fraction of a second before any connection happens, consistently on WiFi but not on ethernet. Confirm it with a timed DNS query. Open a terminal and run the same lookup on both interfaces:

# Windows (PowerShell) Measure-Command { Resolve-DnsName google.com } | Select-Object TotalMilliseconds # macOS / Linux dig google.com +stats | grep "Query time" # Quick cross-platform check nslookup google.com

Run that on WiFi, then plug in ethernet and run it again. If WiFi shows 150 ms or more and ethernet shows under 20 ms, you have confirmed the DNS latency gap. Now identify which root cause applies.

Root Cause 1 (Most Common): The Router Is Your DNS Server

When a device connects to WiFi, the router's DHCP server hands out an IP configuration. By default, almost every consumer router assigns itself as the DNS server — typically 192.168.1.1 or 192.168.0.1. The router then forwards queries to whatever upstream DNS servers your ISP provisioned. This two-hop relay adds latency on every uncached query, and consumer routers vary enormously in how fast they handle forwarding.

The WiFi-vs-ethernet discrepancy shows up here because wired clients often bypass the relay entirely (if someone manually set a static DNS on the ethernet NIC), while WiFi clients almost always take the DHCP-assigned DNS — meaning the router itself. The fix is to bypass the router's relay and query a fast public resolver directly.

Check which DNS server your device is actually using

# Windows ipconfig /all | findstr "DNS Servers" # macOS scutil --dns | grep nameserver # Linux (systemd-resolved) resolvectl status | grep "DNS Servers" # Linux (legacy) cat /etc/resolv.conf

If the DNS IP matches your gateway (e.g., 192.168.1.1), the router is relaying. Benchmark it directly against a public resolver:

# Compare router relay vs direct public resolver dig google.com @192.168.1.1 +stats | grep "Query time" dig google.com @1.1.1.1 +stats | grep "Query time" dig google.com @8.8.8.8 +stats | grep "Query time"

If the public resolver is 3–10× faster, switching your DNS is the fix. Router-specific paths are covered below.

💡 Before chasing DNS latency, rule out a propagation issue first. The DNS Propagation Checker shows what multiple global resolvers currently return for a domain — inconsistent answers across resolvers point to propagation, not your local network.

Root Cause 2: IPv6 Dual-Stack Race Condition

Modern operating systems issue an A (IPv4) and AAAA (IPv6) query simultaneously for every hostname. On a wired connection, both usually return within milliseconds. On WiFi, if the router or ISP has a broken or partially configured IPv6 path, the AAAA query either times out waiting the full 2–5 second DNS retry window for a SERVFAIL, or returns an unreachable address that triggers a multi-second Happy Eyeballs fallback before the OS tries IPv4. The result: first visits to a domain are dramatically slow; repeated visits while the DNS cache is warm are fast.

This pattern hits IPv6-enabled sites hardest — Google, YouTube, Cloudflare — and often disappears if you temporarily disable IPv6 on the wireless adapter.

Testing for IPv6 DNS stalls

# Check if AAAA queries are specifically slow dig AAAA google.com +stats | grep "Query time" # Linux — temporarily disable IPv6 on WiFi interface sudo sysctl -w net.ipv6.conf.wlan0.disable_ipv6=1 # Re-enable when done testing sudo sysctl -w net.ipv6.conf.wlan0.disable_ipv6=0 # Windows (elevated PowerShell) Disable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6 # Re-enable Enable-NetAdapterBinding -Name "Wi-Fi" -ComponentID ms_tcpip6

If resolution speeds up after disabling IPv6, the fix is to fully configure IPv6 end-to-end — get a working delegated prefix from your ISP and ensure the router is not in a half-enabled Auto mode with no working WAN prefix. A half-configured IPv6 stack, enabled on the LAN but broken on the WAN, is the single most common cause of this symptom on dual-stack home networks.

Root Cause 3: WiFi Packet Loss Causing DNS Retries

DNS queries run over UDP by default. UDP has no built-in retransmission: if a packet is lost, the client waits for a timeout (typically 2 seconds) and retries. A wireless link with even 1–2% packet loss will occasionally drop DNS queries and stall resolution for 2–4 seconds, even though TCP connections — which have their own retransmit — feel perfectly normal. This is why you can stream HD video on WiFi without buffering while page loads feel randomly slow.

# Linux/macOS — send 100 pings and watch for loss percentage ping -c 100 1.1.1.1 | tail -2 # Windows ping -n 100 1.1.1.1 # Also test with larger packets (also catches MTU issues) ping -c 50 -s 1400 1.1.1.1 # Linux/macOS ping -n 50 -l 1400 1.1.1.1 # Windows

More than 0.5% packet loss? The root fix is wireless signal quality: move the router, add an access point, or switch bands. The 2.4 GHz band penetrates walls better; 5 and 6 GHz have less channel congestion in dense residential areas. Run a WiFi analyzer app to check for channel overlap with neighbours. As a short-term mitigation, switching to DNS-over-TLS or DNS-over-HTTPS moves DNS to TCP, which retransmits automatically and eliminates the 2-second UDP retry penalty.

Root Cause 4: MTU Fragmentation Dropping Large DNS Responses

WiFi connections sometimes have a lower effective MTU than ethernet — especially on PPPoE connections, VPN tunnels, or WPA3 deployments with larger frame overhead. DNSSEC-signed responses routinely exceed 512 bytes and require either UDP fragmentation or a TCP fallback. If the wireless path silently drops fragmented UDP packets, large DNS responses never arrive and the client times out silently.

# Test a DNSSEC-signed domain — timeout here on WiFi indicates MTU issue dig cloudflare.com +dnssec +bufsize=1232 # Check your WiFi adapter's current MTU ip link show wlan0 # Linux netsh interface ipv4 show subinterface # Windows networksetup -getMTU Wi-Fi # macOS

If large DNS responses time out on WiFi but work on ethernet, lower the EDNS buffer size by adding edns-packet-max=512 to your dnsmasq config, or set the WiFi interface MTU to 1400 and retest. On OpenWrt this is in Network > Interfaces > WiFi > Advanced > MTU.

Root Cause 5: Different DNS Servers on Each Interface

Some setups have a static DNS configured directly on the ethernet NIC — a previous admin manually entered 8.8.8.8 on the LAN adapter — while WiFi still uses DHCP-assigned DNS from the router. The ethernet adapter hits Google's fast infrastructure; the WiFi adapter hits the ISP's slow or overloaded resolver. Check both interfaces and compare:

# Windows — see all adapters at once ipconfig /all | findstr /i "adapter\|DNS Servers" # macOS — check each interface networksetup -getdnsservers Wi-Fi networksetup -getdnsservers Ethernet # Linux resolvectl status

If they show different resolvers, standardize. Set both adapters to the same fast resolver, or configure it at the router level so all devices get consistent DNS via DHCP regardless of connection type.

💡 Not sure which resolver is actually answering? The DNS Lookup tool queries multiple resolvers simultaneously, so you can see exactly which upstream is slow or returning stale data compared to others.

Root Cause 6: Stale Negative Cache After WiFi Reconnect

When WiFi drops and reconnects — a laptop waking from sleep, a phone roaming between access points — a domain that was resolving fine may have a cached negative result (NXDOMAIN or SERVFAIL from the moment the link was down). The OS serves this stale failure immediately on the next lookup, making the domain appear broken or forcing a full retry sequence even though the network is healthy again. Flush the cache and retest:

# Windows ipconfig /flushdns # macOS (Ventura / Sonoma / Sequoia) sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder # Linux (systemd-resolved) sudo resolvectl flush-caches # Android / iOS — toggle WiFi off and back on, or forget and rejoin the network

Step-by-Step Diagnosis

  1. Measure DNS latency on both interfaces with dig +stats or Measure-Command { Resolve-DnsName }. Confirm the gap is real and DNS-specific, not general throughput.
  2. Check which DNS server each interface uses. Different resolvers on WiFi vs ethernet? Root cause 5.
  3. Benchmark router relay vs direct resolver — query 192.168.x.x vs 1.1.1.1 directly. Router 3× slower? Root cause 1.
  4. Test AAAA queries separately. Slow AAAA on WiFi, fast on ethernet? Disable IPv6 as a test. Root cause 2.
  5. Check packet loss with a 100-packet ping. Over 0.5%? Root cause 3.
  6. Test large DNS responses with dig +dnssec. Timeout on WiFi, success on ethernet? Root cause 4.
  7. Flush the DNS cache and retest immediately. Problem resolved? Root cause 6.

Router-Specific Fixes

Changing DNS at the router level is the highest-leverage fix — it applies to every device on the network without per-device configuration and ensures the router's own DNS cache is populated by a fast resolver from the start.

TP-Link Archer and AX Series (tplinkwifi.net or 192.168.0.1)

Go to Advanced > Network > Internet. In the DNS section, set Primary DNS to 1.1.1.1 and Secondary to 8.8.8.8. Save. Then go to Advanced > Network > DHCP Server and enter the same values — this pushes the resolver directly to WiFi clients via DHCP, bypassing the relay entirely.

ASUS RT / GT / ZenWiFi (asusrouter.com or 192.168.1.1)

Go to WAN > Internet Connection > WAN DNS Setting. Disable "Connect to DNS Server automatically." Enter 1.1.1.1 and 8.8.8.8. Then go to LAN > DHCP Server and enter the same IPs in the DNS Server fields so WiFi clients receive them directly via DHCP.

Netgear Orbi and Nighthawk (orbilogin.com or routerlogin.net)

Go to Advanced > Setup > Internet Setup. Enter DNS manually: Primary 1.1.1.1, Secondary 8.8.8.8. On Orbi mesh systems, these settings propagate to all satellites automatically. DHCP DNS mirrors the WAN DNS on standard Netgear firmware.

Linksys WRT and Velop (linksyssmartwifi.com or 192.168.1.1)

Go to Connectivity > Internet Settings > IPv4. Switch DNS from automatic to manual. Enter 1.1.1.1 and 8.8.8.8. On Velop mesh nodes, use the Linksys app under WiFi Settings > Advanced Settings > DNS.

Xiaomi Mi Router (miwifi.com or 192.168.31.1)

Go to Settings > Advanced Settings > DHCP and add manual DNS entries. Advanced users can SSH into the router and edit /etc/config/network, adding option dns '1.1.1.1 8.8.8.8' to the WAN interface block, then run service network restart.

OpenWrt (any hardware)

Edit /etc/config/dhcp. Under the dnsmasq section, add list server '1.1.1.1' and list server '8.8.8.8'. Run service dnsmasq restart. To push DNS to clients via DHCP, add list dhcp_option '6,1.1.1.1,8.8.8.8' under the LAN dhcp section.

DD-WRT

Go to Setup > Basic Setup > Network Address Server Settings (DHCP). Set Static DNS 1 to 1.1.1.1 and Static DNS 2 to 8.8.8.8. Enable "Use DNSMasq for DNS" and "Use DNSMasq for DHCP." Apply settings and reboot.

Setting DNS Directly on the Device

If router access is not available, configure DNS directly on the WiFi adapter to bypass the relay entirely.

  • Windows: Settings > Network & Internet > Wi-Fi > Hardware properties > DNS server assignment > Manual. IPv4: 1.1.1.1 / 8.8.8.8. IPv6: 2606:4700:4700::1111 / 2001:4860:4860::8888.
  • macOS: System Settings > Network > Wi-Fi > Details > DNS tab. Add 1.1.1.1 and 8.8.8.8. Manual entries override DHCP-assigned entries shown in grey.
  • Linux: Edit /etc/systemd/resolved.conf and set DNS=1.1.1.1 8.8.8.8 and FallbackDNS=9.9.9.9. Run sudo systemctl restart systemd-resolved and verify with resolvectl status.
  • iOS: Settings > Wi-Fi > tap (i) next to your network > Configure DNS > Manual. Delete existing entries, add 1.1.1.1 and 8.8.8.8. This setting is per SSID — repeat for each network you use.
  • Android: Settings > Network & Internet > Wi-Fi > long-press network > Modify > Advanced > IP settings: Static. DNS 1: 1.1.1.1, DNS 2: 8.8.8.8. Alternatively, use system-wide Private DNS: Settings > Network & Internet > Private DNS > hostname: one.one.one.one for Cloudflare DoT.

Confirming the Fix Worked

# Verify which resolver is now handling queries dig whoami.cloudflare.com TXT # Benchmark — run several times and compare to earlier baseline for i in {1..5}; do dig github.com +stats 2>&1 | grep "Query time"; done # Verify AAAA queries no longer stall dig google.com AAAA +time=3 +tries=1 +stats | grep "Query time"

A correctly fixed setup should show WiFi DNS query times under 30 ms for cached responses and under 80 ms for cold cache-miss queries to a geographically close resolver. According to Google's Public DNS documentation, typical latency to 8.8.8.8 from North America is 10–40 ms. Anything consistently above 100 ms on WiFi that is absent on ethernet points to a remaining issue in the relay chain.

2026 Notes: DoH, DoT, DNSSEC, and IPv6

DNS-over-HTTPS is now enabled by default in Windows 11 24H2, macOS Sequoia, iOS 18, and Android 14 when paired with a compatible resolver. DoH adds a TLS handshake overhead on the very first query after a new WiFi association (50–150 ms), but all subsequent queries over the persistent HTTP/2 connection are fast. If you see exactly one slow DNS lookup right after connecting to WiFi followed by normal speed, the TLS handshake is expected behavior and not a problem to fix.

DNSSEC validation: resolvers like 1.1.1.1 and 8.8.8.8 perform DNSSEC validation server-side, so clients see no extra latency. However, some consumer firmware — newer Netgear and ASUS models with "DNS Security" or "DNSSEC" toggles — performs local validation. On underpowered router CPUs, local DNSSEC validation adds 50–200 ms per query. Disable it in the router's advanced DNS settings and let the upstream resolver validate instead.

IPv6 in 2026: most major North American and European ISPs now provide native IPv6, but proper router configuration remains inconsistent. Ensure the router's IPv6 setup is complete with a properly delegated prefix — not just "Auto" mode with no working WAN prefix. A half-configured IPv6 stack, active on the LAN but broken on the WAN, is the most common root cause of the slow-WiFi-fast-ethernet DNS pattern on dual-stack home networks this year.

Common Misdiagnoses

  • "My WiFi is slow" (based on a speed test): Speedtest and fast.com measure throughput, not DNS latency. A 500 Mbps WiFi connection can still have terrible DNS resolution speed.
  • "The ISP is throttling me:" ISP throttling targets bulk throughput. DNS uses tiny UDP packets that are essentially never affected by bandwidth throttling.
  • "Rebooting the router fixed it:" The router's DNS cache was flushed on reboot. If the upstream resolver is the real problem, latency will return within hours as the cache fills again. Flush and benchmark before concluding this was the fix.
  • "The website is slow:" Isolate DNS first. Use dig +stats to measure resolution time directly. If DNS is fast and TCP connection time on ethernet is also fast, the origin server is the bottleneck.
  • "It's a VPN issue:" VPNs do route DNS differently, but if you are not running a VPN, check the actual resolver in use before drawing conclusions about split tunneling.

Preventing Recurrence

Set DNS at the router level rather than per-device so every client — phones, smart TVs, IoT devices with no DNS configuration UI — benefits automatically. Use two resolvers from different providers for redundancy: 1.1.1.1 (Cloudflare) paired with 9.9.9.9 (Quad9, which adds malware-domain blocking) is a reliable combination. After any router firmware update, re-verify DNS settings — some firmware versions silently reset WAN DNS to ISP-assigned on upgrade. A quarterly dig +stats benchmark comparing WiFi and ethernet latency takes 30 seconds and catches drift before it becomes a support call.