Find the fastest public DNS resolver for your connection with a private, browser-based benchmark.
DNS Benchmark measures encrypted DNS-over-HTTPS (DoH) round trips entirely in your browser, compares 21 public resolvers, and recommends providers for different needs. There is no backend, account, analytics, cookie, or tracking script.
- Location-specific results — warm-up plus 8 timed probes per resolver, tested in batches of 5.
- Practical recommendations — best overall, fastest, gaming, streaming, privacy, security, family, ad blocking, business, and developer DNS.
- Useful result views — fastest-provider summary, latency chart, detailed rankings, feature comparison, and benchmark history.
- Setup help — step-by-step guides for Windows, macOS, Linux, and Android, including copyable commands and generated configuration downloads.
- Copy and print — copy a CSV summary of your results and a print-friendly view of the page.
- Installable PWA — responsive, offline-capable interface with light and dark themes.
- Private by design — preferences and benchmark history remain in browser
localStorage.
Note
Browser benchmarks measure DoH request latency, not raw UDP/TCP DNS latency. Network conditions, browser scheduling, resolver load, and geographic routing can affect results, so rerun the benchmark at different times before changing a network-wide DNS configuration.
The site is a single-page app with four sections in the top navigation: Benchmark, Results, Setup guides, and Learn.
- Open the Benchmark page.
- (Optional) Expand Choose providers and untick any resolvers you want to skip. Your selection is saved in your browser and reused on later runs.
- Click Run benchmark. Each resolver is warmed up once, then probed 8 times with up to 5 probes running in parallel and a 4-second timeout. Providers without a DoH endpoint are marked static and shown for reference only.
- When the run finishes (about 30 seconds), you're taken to the Results page.
The Results page gives you several ways to interpret the run:
- Fastest card — the lowest-latency resolver for your location; click it for a detail popover.
- Run info — how long the benchmark took and an estimate of your current DNS latency for comparison.
- Latency chart — average latency for every tested resolver, colored by band (see scoring below).
- Recommendations — a provider for each use case: best overall, fastest, gaming, streaming, privacy, security, family, ad blocking, business, and developer, each with strengths and drawbacks.
- Latency over time — per-probe latency for the top 5 resolvers so you can spot jitter and consistency.
- Full ranking — every resolver ranked with average latency, reliability, score, and band; click a provider name for a detail popover (DoH/DoT support, logging policy, DNSSEC, notes, and more).
- Feature comparison — a side-by-side grid of DoH, DoT, DNSSEC, malware/ad blocking, family filtering, IPv6, anycast, logging, and country across all tested resolvers.
- Copy results — copy a clean, formatted text summary of your results — run info, ranking table, and recommendations — to share or paste anywhere.
Open Setup guides. Your OS is detected automatically, and you can switch between Windows, macOS, Linux, and Android tabs. Each guide provides:
- Step-by-step instructions with copyable commands.
- A downloadable configuration: a
resolv.conffor Linux, a PowerShell script for Windows, a shell script for macOS, or a settings note for Android. - A Switch provider button to rerun the benchmark and pick a different resolver.
Open Learn for plain-language explanations of what DNS is, why speed and privacy matter, and how to choose a provider. Use the starter buttons ("I want faster internet", "I want more privacy", "I'm just curious") to jump to the relevant section, and read the FAQ at the bottom.
Tip
Results and preferences are kept only in your browser's localStorage. Reopen the site anytime to see your last benchmark on the Results page.
- Location-specific results — warm-up plus 8 timed probes per resolver, tested in concurrent batches of 5. Runs measure encrypted DoH round-trips from your browser, so results reflect your network and geographic location rather than a fixed server.
- 21 public resolvers — compares Cloudflare, Google, Quad9, AdGuard, NextDNS, and more, with a side-by-side comparison of DoH/DoT support, DNSSEC, malware/ad blocking, family filtering, IPv6, anycast, logging policy, and jurisdiction.
- Practical recommendations — best overall, fastest, gaming, streaming, privacy, security, family, ad blocking, business, and developer DNS, each with the reasoning, strengths, and drawbacks behind the pick.
- Useful result views — a fastest-provider summary card, latency bar chart, per-probe latency-over-time chart, detailed ranking table with provider detail popovers, and a feature comparison grid.
- Setup help — step-by-step guides for Windows, macOS, Linux, and Android, including copyable commands and generated configuration downloads.
- Copy and print — copy a clean, formatted summary of your results to the clipboard and use the print-friendly layout for a clean PDF or hard copy.
- Installable PWA — responsive, offline-capable interface with light and dark themes, installable from your browser's menu.
- Private by design — preferences and benchmark history remain in browser
localStorage; no backend, account, analytics, cookie, or tracking script.
Each tested resolver receives a weighted score:
| Component | Weight |
|---|---|
| DoH latency | 40% |
| Reliability and consistency | 25% |
| Privacy | 15% |
| Security features | 15% |
| Global availability | 5% |
Latency colors are relative to the best result in the current run:
- Green: average latency is no more than 1.5× the best result.
- Yellow: average latency is no more than 3× the best result.
- Red: average latency is more than 3× the best result.
- Untested: the resolver was unreachable or has no benchmarkable DoH endpoint.
The benchmark is a decision aid rather than a guarantee. Review each provider's privacy policy and filtering behavior before adopting it.
- Bun 1.3.14 or newer
git clone https://github.com/TechTronixx/dns-benchmark.git
cd dns-benchmark
bun install
bun run devVite prints the local development URL in the terminal.
| Command | Purpose |
|---|---|
bun run dev |
Start the Vite development server |
bun run test |
Run the Vitest test suite once |
bun run test:watch |
Run tests in watch mode |
bun run typecheck |
Check the TypeScript project |
bun run build |
Type-check and create the production build in dist/ |
bun run preview |
Preview the production build locally |
bun run icons |
Regenerate PWA icons from public/favicon.svg |
src/
data/ Provider metadata, setup guides, and educational content
engine/ Probing, baseline measurement, scoring, and recommendations
state/ Application state and benchmark orchestration
styles/ Design tokens, base styles, components, and print styles
ui/ Router, views, and DOM components
utils/ Formatting, platform detection, and downloads
tests/ Vitest unit tests
public/ Fonts, favicon, and PWA icons
- Vite 8.2
- TypeScript 5.9 in strict mode
- Vitest 4.1 with jsdom
- vite-plugin-pwa 1.3
- Vanilla DOM and inline SVG components—no frontend framework or chart dependency
- Static production output suitable for Vercel or any static host
DNS Benchmark does not send benchmark results to an application server. It does not store IP addresses or include analytics and tracking scripts. Theme preference, excluded providers, and benchmark history are stored locally in your browser.
During a benchmark, the browser sends cache-busting requests directly to the selected providers' public DoH endpoints. Those providers can observe requests according to their own policies. Consult a provider's privacy policy before using its service.
Bug reports and focused pull requests are welcome. Before submitting a change, run:
bun run test
bun run typecheck
bun run buildKeep provider metadata evidence-based and include an authoritative source when changing privacy, security, filtering, or availability claims.
Licensed under the MIT License.