DNS検索が遅い原因と解決方法 — Chrome・Windows・Macで即効改善

DNS検索時間とは?なぜ重要なのか
DNS検索時間とは、デバイスがドメイン名(例:example.com)をIPアドレス(例:93.184.216.34)に変換するのにかかるミリ秒数のことです。この名前解決はデータ転送の前に行われるため、DNSが解決されるまでブラウザは1バイトも送信できません。
一般的なDNS検索は、DNSサーバー、ネットワーク状況、結果がキャッシュされているかどうかに応じて20〜120msかかります。DNSが遅いと、すべてのウェブサイト、すべてのAPIコール、ブラウザが読み込むすべてのリソースに遅延が発生します。50の外部リソースを読み込むページでは、DNS遅延だけで合計1〜5秒が追加される可能性があります。
Googleの調査によると、ページ読み込み時間が1秒から3秒に増加すると、離脱率は32%に上昇します。5秒になると90%に跳ね上がります。DNS遅延は、このような問題を引き起こす隠れたボトルネックであることが多いのです。
DNS検索が遅くなる原因
根本原因を理解することで、適切な解決策を選択できます。デバイスやネットワークでDNS検索が遅くなる最も一般的な原因は以下の通りです。
ISPのDNSサーバーが遅い — ほとんどのISPは過負荷状態のDNSリゾルバを運用しており、1クエリあたり80〜200msかかります。これが家庭ユーザーのDNS遅延の最大の原因です。
古い・破損したDNSキャッシュ — OSやブラウザが古いエントリをキャッシュしていると、即座のキャッシュヒットではなく、繰り返し遅い検索が強制されます。
地理的距離 — DNSサーバーが別の大陸にある場合、すべてのクエリが数千キロメートルの往復を必要とし、50〜200msの遅延が追加されます。
CNAMEチェーン — CNAMEリダイレクトごとに追加のDNS検索が発生します。3つのCNAMEチェーンでは、最終IPに到達するまで3回の連続検索が必要です。
低いTTL値 — 60秒のような短いTTL(Time-to-Live)値は、キャッシュ結果を使用する代わりに、デバイスが常にDNSを再クエリすることを強制します。
VPNやプロキシの干渉 — VPNはDNSクエリを独自のサーバー経由でルーティングしますが、通常のDNSより遅い場合や遠い場合があります。
ネットワーク混雑 — ネットワークトラフィックが多い場合やルーターが過負荷になると、DNSパケットの損失や再送信が発生し、数秒の遅延が追加されます。
IPv6フォールバックの問題 — 一部のネットワークはまずIPv6 DNSを試み、失敗するとIPv4にフォールバックします。これにより、すべてのリクエストで検索時間が2倍になります。
現在のDNS検索時間を測定する方法
修正する前に、現在のDNS速度を測定して、修正後と比較できるようにしましょう。DNS検索時間を確認する3つの簡単な方法を紹介します。
方法1:dig コマンドを使用(Mac/Linux)
dig コマンドは、DNSクエリ時間をミリ秒単位で正確に表示します:
# Query your current DNS server
dig google.com
# Look for "Query time" at the bottom:
# ;; Query time: 24 msec
# Test a specific DNS server
dig @1.1.1.1 google.com
dig @8.8.8.8 google.com
dig @9.9.9.9 google.com方法2:nslookup を使用(Windows)
Windowsの nslookup はデフォルトでクエリ時間を表示しませんが、PowerShellを使って測定できます:
# Measure DNS lookup time in PowerShell
Measure-Command { Resolve-DnsName google.com } | Select-Object TotalMilliseconds
# Test with a specific DNS server
Measure-Command { Resolve-DnsName google.com -Server 1.1.1.1 } | Select-Object TotalMilliseconds方法3:Chrome DevToolsを使用
Chromeはすべてのネットワークリクエストに対してDNS検索時間を表示します:
任意のウェブサイトを開き → F12 を押してDevToolsを開き → Network タブに移動 → 任意のリクエストをクリック → Timing セクションを確認します。DNS Lookup の行に、そのドメインのDNS解決にかかった正確な時間が表示されます。
DNS検索時間が常に100msを超えている場合、DNSサーバーが遅い状態です。以下の修正方法が役立ちます。
解決策1:より高速なDNSサーバーに切り替える
これは最も効果的な解決策です。ISPのDNSサーバーは通常80〜200msで応答しますが、CloudflareやGoogleなどのパブリックDNSサーバーは8〜20msで応答します。これはすべてのDNSクエリに対する10倍の速度改善です。
各プラットフォームでDNSサーバーを変更する方法を説明します:
Windows 10/11でDNSを変更する
設定を開く → ネットワークとインターネット → ネットワークの詳細設定
アクティブな接続をクリック(Wi-FiまたはEthernet) → ハードウェアのプロパティ
DNS サーバーの割り当ての横にある編集をクリック
自動から手動に切り替え → IPv4を有効にする
優先DNSを `1.1.1.1` に設定、代替DNSを
1.0.0.1に設定保存をクリックして、
digまたはPowerShellでテスト
macOSでDNSを変更する
システム設定を開く → ネットワーク → Wi-Fi(またはアクティブな接続)
接続しているネットワークの横の詳細をクリック
サイドバーのDNSをクリック
既存のエントリを削除して、
1.1.1.1と1.0.0.1を追加OKをクリックして適用
LinuxでDNSを変更する
systemd-resolvedを使用しているほとんどのLinuxディストリビューションの場合:
# Edit the resolved config
sudo nano /etc/systemd/resolved.conf
# Add or modify these lines:
[Resolve]
DNS=1.1.1.1 1.0.0.1
FallbackDNS=8.8.8.8 8.8.4.4
# Restart the service
sudo systemctl restart systemd-resolved
# Verify the change
resolvectl status解決策2:DNSキャッシュをフラッシュする
古いまたは破損したDNSキャッシュは、デバイスに古いエントリの使用や、失敗して再試行する新しい検索の実行を強制します。キャッシュをフラッシュすると、保存されたDNSエントリがすべてクリアされ、DNSサーバーへの新しいクエリが強制されます。
お使いのOSに対応するコマンドを実行してください:
# Windows (Command Prompt as Administrator)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Linux (systemd-resolved)
sudo resolvectl flush-caches
# Verify cache is empty (Windows)
ipconfig /displaydns解決策3:ブラウザのDNSプリフェッチを有効にする
DNSプリフェッチは、リンクをクリックする前にブラウザにドメイン名を解決するよう指示します。リンクにカーソルを合わせたり、ページが読み込まれたりすると、ブラウザがバックグラウンドでリンク先ドメインのDNSを事前に解決します。クリックする頃にはDNSはすでに解決済みなので、待ち時間はゼロです。
最新のブラウザの多くはDNSプリフェッチがデフォルトで有効になっていますが、無効になっている場合があります。確認と有効化の方法を説明します。
ChromeのDNSプリフェッチ設定
Chromeでは、DNSプリフェッチはプリロード機能の一部です:
Chromeを開く → 設定 → プライバシーとセキュリティ → ページのプリロード
有効にする 「ページをプリロードして閲覧と検索を高速化」
これにより、アクセスする可能性が高いリンクに対して、DNSプリフェッチ、TCP事前接続、ページのプリレンダリングが有効になります
FirefoxのDNSプリフェッチ設定
FirefoxはDNSプリフェッチをサポートしていますが、意図せず無効になっている場合があります:
アドレスバーに
about:configと入力してEnterを押す検索して
network.dns.disablePrefetchを探す`false` に設定されていることを確認する(false = プリフェッチが有効)
同様に確認
network.dns.disablePrefetchFromHTTPS— HTTPSサイトでもfalseに設定
解決策4:Chromeの内部DNSキャッシュをクリアする
Chromeは、OSのDNSキャッシュとは別に独自のDNSキャッシュを保持しています。OSのDNSキャッシュをフラッシュした後でも、Chromeは内部キャッシュの古いエントリを使用し続ける場合があります。
ChromeのDNSキャッシュをクリアするには:
Chromeを開き、アドレスバーに
chrome://net-internals/#dnsと入力「Clear host cache」をクリックしてChromeの内部DNSエントリをフラッシュ
同様に
chrome://net-internals/#socketsにアクセスし、「Flush socket pools」をクリックして残留接続を閉じるChromeを再起動して完全に新しいDNS状態にする
解決策5:ルーターでDNSを設定する
ルーターでDNSを変更すると、ネットワーク上のすべてのデバイス(スマートフォン、タブレット、スマートTV、ゲーム機)に高速DNSサーバーが適用されます。個別に設定する必要はありません。
ほとんどのルーターでDNSを変更する方法:
ブラウザを開き
192.168.1.1または192.168.0.1(ルーターの管理ページ)にアクセスルーターの管理者資格情報でログイン(変更していない場合は、ルーター本体のシールを確認)
DNS設定を見つける — 通常はWAN設定、インターネット設定、またはDHCP設定の下にあります
プライマリDNSを `1.1.1.1` に、セカンダリDNSを
1.0.0.1に変更保存してルーターを再起動して変更を適用
解決策6:CNAMEチェーンを削減する(サイト運営者向け)
CNAMEチェーンを削減するには、CNAMEフラットニング(ALIASレコードとも呼ばれる)を使用します。これはDNSサーバーレベルでCNAMEチェーンを解決し、最終的なIPアドレスを直接返します。Cloudflare、AWS Route 53、DNSimpleはすべてCNAMEフラットニングをサポートしています。
DNS RobotのDNS検索ツールを使用してCNAMEチェーンを確認できます。ドメインを入力してCNAMEレコードをチェックし、チェーンが存在するか確認してください。
www.example.com → CNAME → example.com.cdn.cloudflare.net
→ CNAME → cdn-123.cloudflare.net
→ A → 104.21.55.123
# That is 3 DNS lookups instead of 1!
# Each adds 20-80ms of latency.解決策7:TTL値を増加させる(サイト運営者向け)
TTL(Time to Live)は、DNSリゾルバがドメインのレコードをキャッシュする時間を制御します。60秒のような低いTTLでは、すべてのリゾルバが毎分権威DNSサーバーに再クエリする必要があります。3600秒(1時間)のような高いTTLでは、結果が1時間キャッシュされ、即座に提供されます。
影響は大きく、TTLを60秒から3600秒に増加させると、ピーク時に権威サーバーへのDNS検索を98%削減できます。
| TTL値 | キャッシュ期間 | 最適な用途 |
|---|---|---|
| 60 | 1分 | 頻繁に変更されるレコード(フェイルオーバー、負荷分散) |
| 300 | 5分 | 時々変更されるレコード |
| 3600 | 1時間 | 安定したレコード(推奨デフォルト) |
| 86400 | 24時間 | ほとんど変更されないレコード(MX、TXT) |
DNSサーバー速度比較(2026年ベンチマーク)
Cloudflare(1.1.1.1)は、世界最速のパブリックDNSリゾルバとして一貫して上位にランクインしています。Google Public DNSがそれに続きます。両方とも暗号化クエリのためのDNS over HTTPS(DoH)とDNS over TLS(DoT)をサポートしています。
GRC DNS Benchmarkツール(Windows用)を使用して、お住まいの地域に最適なDNSサーバーをベンチマークできます。Mac/Linuxでは dig @1.1.1.1 google.com と dig @8.8.8.8 google.com を実行して応答時間を比較できます。
| DNSプロバイダー | プライマリIP | セカンダリIP | 平均応答時間 | プライバシー | セキュリティ機能 |
|---|---|---|---|---|---|
| Cloudflare | 1.1.1.1 | 1.0.0.1 | ~11ms | IPログ記録なし | DNSSEC, DoH, DoT |
| Google Public DNS | 8.8.8.8 | 8.8.4.4 | ~14ms | 48時間後にログ匿名化 | DNSSEC, DoH, DoT |
| Quad9 | 9.9.9.9 | 149.112.112.112 | ~20ms | IPログ記録なし | DNSSEC, マルウェアブロック |
| OpenDNS | 208.67.222.222 | 208.67.220.220 | ~23ms | フィルタリング用にログ | コンテンツフィルタリング, DNSSEC |
| 一般的なISP DNS | 環境により異なる | 環境により異なる | ~80-200ms | 環境により異なる | 基本のみ |
DNSが高速化されたことを確認する方法
DNS検索時間が80〜200ms(ISP DNS)から10〜20ms(Cloudflare/Google)に低下するはずです。DNS RobotのPingツールを使用してDNSサーバーへの遅延を直接測定することもできます。1.1.1.1 にpingを送信して、以前のISP DNSサーバーIPと比較してください。
# Mac/Linux: Compare before and after
dig google.com # Should show lower query time
dig amazon.com # Test multiple domains
dig github.com
# Windows PowerShell
Measure-Command { Resolve-DnsName google.com } | Select-Object TotalMilliseconds
# Check Chrome DevTools
# Open any page → F12 → Network tab → look at DNS Lookup timing今すぐDNS速度を確認しましょう
DNS Robotの無料DNS検索ツールを使用して、世界中の複数のサーバーからDNS解決時間を測定できます。DNSが世界中でどれだけ速く解決されるかを確認してください。
Try DNS検索Frequently Asked Questions
50ms以下が良好、20ms以下が優秀です。100msを超えると遅いとされ、ブラウジング速度に明らかな影響が出ます。おすすめdnsであるCloudflare(1.1.1.1)などのパブリックDNSサーバーは、通常10〜15msで応答します。