Fresh from testing Cloudflare and Google to see which is the fastest DNS resolver, I decided it's time to throw some more big names into the arena: NextDNS, Quad9, and Cloudflare.
I went into this expecting a clear winner, but what I found across two testing locations was more interesting and a little unexpected — and proof that the "fastest DNS" doesn't always come out on top.
I set up Pi-hole on my home network, and the internet feels like a completely different place
The many benefits of hosting your own DNS server and the control it gives you over your network.
The plan was simple
Test NextDNS, Quad9, and Cloudflare, and call a winner
I've previously used NextDNS and found it excellent, not just for its fast resolution. I've also used Quad9 and Cloudflare extensively, and have suggested folks use them both depending on their location; testing your own DNS is the best way to figure out what works for your home network.
Given I'd suggested all of these anycast DNS networks at some point in time, it only made sense to get stuck in and test them all against one another.
And, wouldn't you know it, the day I decided to get my testing done, my home internet went down and forced me down to a coffee shop, giving me ample time to test each DNS provider there, then again at home once the ISPs gods were shining upon me once more.
I tested each DNS provider at each location using the same script, making sure to clear the DNS each time, and averaged the results.
Each test used the same PowerShell script designed to resolve DNS across five different but extremely well-known domains (Google, BBC, Reddit, Amazon, GitHub), then averaged out the speed across five runs.
If you want to try it out at home, here is the PowerShell script:
-
$domains = @("google.com","bbc.co.uk","reddit.com","amazon.com","github.com") -
$times = $domains | ForEach-Object { (Measure-Command { Resolve-DnsName -Name $_ -ErrorAction SilentlyContinue }).TotalMilliseconds } -
$avg = [math]::Round(($times | Measure-Object -Average).Average, 1) -
Write-Host "Average: $avg ms"
You could even swap out the domains or add more; it's entirely up to you. Just make sure to clear the DNS cache before you start using the Clear-DnsClientCache command, which makes sure you've cleaned out any past testing information and cached data.
Round 1: Café DNS, and a result that didn't make sense
Everything wasn't right
So, as mentioned, I had to head down to a café to run my first set of tests. Frustrating as it was, it did give me an opportunity to run my PowerShell script on a different network, with some interesting results.
Interestingly, the coffee shop DNS actually came out on top of all three DNS providers, resolving at an average of 21ms. Cloudflare came close behind at 23ms. Quad9 trailed at 46ms. And NextDNS was initially fine, but then completely broke, delivering a batch of queries averaging over 1,400ms.
I'm pretty sure there was a single stalled lookup in that particular batch, but it meant my testing there was all over the shop and wasn't accurate enough; it certainly made me mistrust everything else I'd measured.
Round 2: Home network
It all worked out in the end
By the afternoon, my home network was up and running again, so it was time to run the same script and check the difference in results. This time, Quad9 results were all over the shop.
Cloudflare: roughly 8ms. NextDNS: roughly 7.5ms, recovering completely from its café meltdown. Quad9's first batch came back at 16ms, dragged up by a handful of stragglers in the 25-45ms range sitting alongside results as low as 3ms — a much wider spread than the other two.
It didn't seem entirely right based on other Quad9 DNS testing I've done, so I ran the testing again. I generally rate Quad9 highly for DNS, and its built-in malware and phishing protection is well worth using; second time out, it returned roughly 6ms on average, which is much better.
The Quad9 batch was definitely problematic overall, mind. But then, DNS is noisy by nature, especially over a small sample using a local network. Settling into a tight, consistent cluster is a more trustworthy number than a first pass with wild outliers.
Side-by-side results
Three resolvers, two networks, two different rankings
|
Resolver |
Café Wi-Fi |
Home network |
|---|---|---|
|
Cloudflare |
~23ms |
~8.1ms |
|
Quad9 |
~46ms |
~6.1ms |
|
NextDNS |
broken/unreliable |
~7.5ms |
The results don't give a strong "X is the fastest DNS resolver." It's more indicative that your DNS resolution will vary depending on where you're sitting.
Quad9 went from the slowest of the three on café Wi-Fi to the fastest at home. NextDNS went from unusable to competitive. Cloudflare was the most consistent performer across both, never winning outright but never falling apart either.
Part of the reason is that all three use anycast — the same IP address routes you to whichever physical server is "closest" in network terms, which isn't necessarily closest geographically. That routing depends on your ISP's peering arrangements, the venue's own network setup if you're on public Wi-Fi, and a dozen other variables you've got no visibility into and no control over.
That's why my home network and a high-street café, both in the same town, gave me wildly different rankings for the same three services. The resolver isn't getting faster or slower, but the path to it is.
So, which DNS provider should you use?
Like I always say, speed isn't the only factor
Simply put, when it comes to DNS, speed isn't the only feature to consider.
Quad9's malware and phishing blocking is genuinely useful and a big part of why I keep coming back to it, speed aside. Cloudflare's been consistently reliable across every network I've tested it on, which counts for something even without a speed crown. NextDNS gives you the most configurability if you want to build your own blocklists.
The best option is to test your own network and base your decision on that, rather than testing at my end; it only takes a moment and will give you much clearer results that you can really work from.
I ran a DNS speed test and Google's 8.8.8.8 wasn't even in the top two
The only way to find the fastest DNS is to test it yourself.