Since my ISP thought was a good idea to modify their resolver responses to push me to their own "search engine", I realized the importance of the free DNS projects that Google, OpenDNS and others are offering.
They give you an un-modified DNS experience that you may not get from your ISP. In addition to that, some players also block malicious domains and offer an option to block certain domain categories (mostly adult content) for families and kids.
That's all awesome as now we have a variety of options to choose from.
However, DNS performance is critical for your own Internet experience, so before you choose a provider, we recommend testing it to see how fast it will load from your location. In this article, we will compare the raw performance of a few popular providers from multiple locations throughout the world and see how they fare against each other.
Unfiltered DNS + Optional Blocking of malicious domains:
Filtered / Safe DNS — Blocking Adult content for families / children:
As far as locations, we tested from these 14 locations from around the globe:
I divided the test into 2 phases to see how it would fare against each other. First, I did the basic ping test. Ping's help us measure latency and distance between our testing servers and their DNS servers. Second, we actually measure the cached DNS lookup for a couple domains: Google.com, Yahoo.com and Medium.com and compared all the players.
TLDR: Google was the most stable and with the best average performance across all locations. Quad9 is pretty strong and faster than Google in multiple locations. OpenDNS is still pretty good across the US, but not as fast in Asia and South America. CleanBrowsing and Norton are pretty consistent and with good performance across all locations. Yandex is for Russia only. But see for yourself.
The DNS lookup test was done using the dig utility and extracting the "Query time" from the results. For each domain we tested it a 5 times, with a few minutes within each one. We removed the worst response and averaged the others (to reduce the chance of a latency from our test location affect the results).
#1 Google: 9.538 msec#2 CleanBrowsing: 9.923 msec#3 Quad9: 26.07 msec#4 Norton: 32.76 msec#5 OpenDNS: 38.10 msec#6 OpenDNS_Family: 40.69 msec#7 Yandex: 160.7 msec
NewYork #1 Google: 1 msec #1 Quad9: 1 msec #3 CleanBrowsing: 4 msec #4 Norton: 6 msec #5 OpenDNS: 17 msec #6 OpenDNS_Family: 21 msec #7 Yandex: 104 msec
Toronto #1 Quad9: 1 msec #2 Google: 10 msec #3 OpenDNS: 25 msec #4 OpenDNS_Family: 28 msec #4 CleanBrowsing: 28 msec #6 Norton: 29 msec #7 Yandex: 123 msec
Montreal #1 CleanBrowsing: 16 msec #2 Quad9: 17 msec #3 Google: 18msec #4 Norton: 25 msec #5 OpenDNS: 27 msec #6 OpenDNS_Family: 27 msec #7 Yandex: 116 msec
Atlanta #1 Quad9: 1 msec #2 Google: 2 msec #3 CleanBrowsing: 19 msec #4 OpenDNS: 21 msec #5 OpenDNS_Family: 30 msec #6 Norton: 24 msec #7 Yandex: 133 msec
Dallas #1 Google: 2 msec #2 CleanBrowsing: 2 msec #3 Norton: 3 msec #4 OpenDNS_Family: 7 msec #5 OpenDNS: 16 msec #6 Quad9: 30 msec #7 Yandex: 147 msec
SanFrancisco #1 Norton: 2 msec #2 CleanBrowsing: 9 msec #3 Google: 10 msec #4 Quad9: 26 msec #5 OpenDNS: 40 msec #6 OpenDNS_Family: 40 msec #7 Yandex: 175 msec
London #1 Quad9: 1 msec #2 CleanBrowsing: 3 msec #3 Norton: 4 msec #4 Google: 8 msec #5 OpenDNS_Family: 15 msec #6 Yandex: 34 msec #7 OpenDNS: 42 msec
Paris #1 CleanBrowsing: 6 msec #2 Quad9: 7 msec #3 OpenDNS_Family: 10 msec #4 Google: 11 msec #5 Norton: 20 msec #6 OpenDNS: 23 msec #7 Yandex: 39 msec
Amsterdam #1 Google: 1 msec #1 Quad9: 1 msec #3 CleanBrowsing: 9 msec #4 Norton: 13 msec #5 OpenDNS: 14 msec #6 OpenDNS_Family: 14 msec #7 Yandex: 29 msec
Frankfurt #1 Quad9: 1 msec #2 OpenDNS: 9 msec #3 Google: 10 msec #4 Norton: 11 msec #4 CleanBrowsing: 14 msec #6 OpenDNS_Family: 20 msec #7 Yandex: 35 msec
SaoPaulo #1 CleanBrowsing: 5 msec #2 Google: 15 msec #3 Norton: 113 msec #4 OpenDNS: 126 msec #5 OpenDNS_Family: 127 msec #6 Quad9: 179 msec #7 Yandex: 238 msec
Tokyo #1 OpenDNS: 1 msec #2 CleanBrowsing: 5 msec #3 Norton: 8 msec #4 Google: 18 msec #5 OpenDNS_Family: 36 msec #6 Quad9: 65 msec #7 Yandex: 309 msec
Singapore #1 OpenDNS_Family: 1 msec #2 Google: 2 msec #2 Quad9: 2 msec #2 OpenDNS: 2 msec #5 CleanBrowsing: 4 msec #6 Norton: 9 msec #7 Yandex: 269 msec
Sydney #1 CleanBrowsing: 5 msec #2 Quad9: 7 msec #3 Google: 16 msec #4 OpenDNS: 131 msec #5 OpenDNS_Family: 153 msec #6 Norton: 159 msec #7 Yandex: 339 msec
All those providers, except for Yandex, have an anycast network, so they performed very well. Yandex seems to be restricted to Russia, so had very high ping times compared to the others. We removed them from the results as their ping tests were way above 100ms for all locations.
Norton does not allow ICMP, so could not be tested.
We consider any response under 5ms to be pretty strong and equal between each other as they are undistinguished for the end user. Responses between 5-20ms are acceptable (OK) and anything between 20ms-100ms we consider to be slow. Ping responses higher than 100ms get a FAIL as it means there is not presence on that location (or somewhere close by).
Winners
All providers performed really well, but both Google and Quad9 got 1st 5 times out of the 14 locations. CleanBrowsing came out in 3rd, being the faster in 3 locations.
However, when we consider the average across allow all locations, Quad9 did not perform as well, as it had very high ping time from Sao Paulo, Tokyo and Dallas. Considering the averages, those were the winners:
Google: 2.332 msCleanBrowsing: 3.545 msOpenDNS: 11.93 msOpenDNS_Family: 13.34 msQuad9: 21.73 ms
Those number are not very fair with OpenDNS as they performed very well, except for Sao Paulo, which skewed the results. If we remove Sao Paulo the numbers change to:
Google: 2.318CleanBrowsing: 3.473OpenDNS: 4.233OpenDNS_Family: 5.675Quad9: 9.941
In any event, go ahead and check for yourself:
NewYork #1 Quad9: 0.900 ms #2 Google: 1.59 ms #3 CleanBrowsing: 2.98 ms #OK OpenDNS: 9.11 ms #OK OpenDNS_Family: 9.01 ms
Toronto #1 Quad9: 0.467 ms #2 OpenDNS: 0.378 ms #3 OpenDNS_Family: 0.379 ms #4 Google: 0.749 ms #5 CleanBrowsing: 1.78 ms
Montreal #1 CleanBrowsing: 9.21 ms #2 Google: 9.91 ms #OK OpenDNS: 16.5 ms #OK OpenDNS_Family: 16.5 ms #OK Quad9: 16.6 ms
Atlanta #1 Quad9: 0.585 ms #2 Google: 0.947 ms #OK CleanBrowsing: 11.2 ms #OK OpenDNS: 12.3 ms #SLOW OpenDNS_Family: 24.2 ms
Dallas #1 OpenDNS: 0.961 ms #2 OpenDNS_Family: 0.905 ms #3 Google: 1.09 ms #4 CleanBrowsing: 1.19 ms #SLOW Quad9: 29.9 ms
SanFrancisco #1 CleanBrowsing: 2.13 ms #2 OpenDNS: 2.34 ms #3 OpenDNS_Family: 2.37 ms #4 Quad9: 2.70 ms #5 Google: 2.92 ms
London #1 Quad9: 0.936 ms #2 OpenDNS: 1.54 ms #3 CleanBrowsing: 2.18 ms #4 Google: 2.91 ms #5 OpenDNS_Family: 8.12 ms
Paris #1 Google: 4.51 ms #2 CleanBrowsing: 4.53 ms #3 OpenDNS_Family: 4.57 ms #4 OpenDNS: 4.69 ms #5 Quad9: 7.05 ms
Amsterdam #1 Google: 0.317 ms #2 OpenDNS: 0.852 ms #3 Quad9: 0.906 ms #4 OpenDNS_Family: 1.62 ms #5 CleanBrowsing: 4.85 ms
Frankfurt #1 Google: 1.07 ms #2 CleanBrowsing: 1.29 ms #3 Quad9: 1.37 ms #4 OpenDNS: 1.41 ms #5 OpenDNS_Family: 1.59 ms
SaoPaulo #1 Google: 2.51 ms #2 CleanBrowsing: 4.49 ms #FAIL OpenDNS: 112 ms #FAIL OpenDNS_Family: 113 ms #FAIL Quad9: 175 ms
Tokyo #1 CleanBrowsing: 1.15 ms #2 OpenDNS: 1.23 ms #3 OpenDNS_Family: 1.27 ms #4 Google: 1.81 ms #SLOW Quad9: 65.4 ms
Singapore #1 Quad9: 1.25 ms #2 CleanBrowsing: 1.57 ms #3 Google: 1.58 ms #4 OpenDNS_Family: 1.61 ms #5 OpenDNS: 1.92 ms
Sydney #1 Google: 0.738 ms #2 CleanBrowsing: 0.992 ms #3 Quad9: 1.18 ms #4 OpenDNS_Family: 1.64 ms #5 OpenDNS: 1.81 ms