DNS プリフェッチ (DNS Prefetch) とは、ブラウザがユーザーのクリックを予測して、リンク先ドメインの DNS 解決 (ドメイン名から IP アドレスへの変換) を事前に実行しておく最適化技術です。実際にリンクをクリックしたとき、DNS 解決が完了済みのため、ページ表示が数十〜数百ミリ秒速くなります。
DNS 解決には通常 20 〜 120 ミリ秒かかります。モバイル回線ではさらに長くなることもあります。DNS プリフェッチはこの待ち時間をゼロにする技術です。HTML の head 内に <link rel="dns-prefetch" href="//example.com"> と記述するだけで有効になります。
短縮 URL のリダイレクト速度を改善する手段として DNS プリフェッチは有効です。短縮 URL をクリックすると、まず短縮 URL サービスのドメインの DNS 解決が行われ、次にリダイレクト先ドメインの DNS 解決が行われます。リダイレクト先のドメインを事前にプリフェッチしておけば、2 回目の DNS 解決を省略でき、体感速度が向上します。
DNS プリフェッチに関連する技術として、preconnect (DNS 解決 + TCP 接続 + TLS ハンドシェイクを事前実行)、prefetch (リソース全体を事前ダウンロード)、prerender (ページ全体を事前レンダリング) があります。リソース消費と効果のバランスでは、dns-prefetch が最も軽量で副作用が少ないため、外部ドメインへのリンクが多いページで積極的に使えます。
注意点として、DNS プリフェッチは DNS サーバーへのリクエストを増加させます。ページ内のすべての外部リンクにプリフェッチを設定すると、DNS サーバーへの負荷が増えるため、重要なリンク先に絞って設定するのが望ましいです。関連書籍は Amazon でも探せます。