日本語

プリロード、プリフェッチ、プリコネクトなどのリソースヒントを使用して、ウェブサイトの読み込み時間を最適化し、グローバルなユーザーエクスペリエンスを向上させる方法を学びましょう。

リソースヒントでウェブサイトの速度を向上させる:プリロード、プリフェッチ、プリコネクト

今日のペースの速いデジタル世界では、ウェブサイトの速度が最も重要です。ユーザーは、ウェブサイトが迅速に読み込まれ、即座に応答することを期待しています。読み込みが遅いと、ユーザーエクスペリエンスが悪化し、直帰率が高くなり、最終的にはビジネスの損失につながります。リソースヒントは、開発者がブラウザにどのリソースが重要で、どのように優先順位を付けるかを伝えることで、ウェブサイトの読み込み時間を最適化するのに役立つ強力なツールです。この記事では、3つの主要なリソースヒントであるpreloadprefetchpreconnectを調査し、実装のための実践的な例を提供します。

リソースヒントの理解

リソースヒントは、ウェブページが必要とするリソースについてブラウザに指示するディレクティブです。これにより、開発者はブラウザにクリティカルリソースを事前に通知でき、ブラウザは通常よりも早くそれらを取得または接続できるようになります。これにより、読み込み時間を大幅に短縮し、知覚されるパフォーマンスを向上させることができます。

3つの主要なリソースヒントは次のとおりです。

プリロード:クリティカルリソースの優先順位付け

プリロードとは?

Preloadは宣言的なフェッチであり、ブラウザに現在のナビゲーションに必要なリソースをできるだけ早く取得するように指示できます。これは、CSSまたはJavaScriptを介して読み込まれる画像、フォント、スクリプト、またはスタイルシートのように、ブラウザによって検出が遅れるリソースに特に役立ちます。これらのリソースをプリロードすることにより、レンダリングをブロックするのを防ぎ、ウェブサイトの知覚される読み込み速度を向上させることができます。

プリロードの使用時期

preloadは以下に使用します。

プリロードの実装方法

HTMLドキュメントの<head>セクションで<link>タグを使用してpreloadを実装できます。

<link rel="preload" href="/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="/styles/critical.css" as="style">
<link rel="preload" href="/scripts/app.js" as="script">
<link rel="preload" href="/images/hero.jpg" as="image">

説明:

例:フォントのプリロード

ウェブサイトで使用されるカスタムフォント「OpenSans」があるとします。プリロードがない場合、ブラウザはCSSファイルを解析した後にのみこのフォントを検出します。これにより、正しいフォントでテキストをレンダリングするのに遅延が生じる可能性があります。フォントをプリロードすることで、この遅延を解消できます。

<link rel="preload" href="/fonts/OpenSans-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous">

例:クリティカルCSSファイルのプリロード

ウェブサイトに初期表示のレンダリングに不可欠なクリティカルCSSファイルがある場合、それをプリロードすることで知覚されるパフォーマンスを大幅に向上させることができます。

<link rel="preload" href="/styles/critical.css" as="style">

プリロードのベストプラクティス

プリフェッチ:将来のニーズを予測する

プリフェッチとは?

Prefetchは、将来のナビゲーションまたはインタラクションで必要となる可能性が高いリソースをブラウザに取得するように指示するリソースヒントです。現在のページに必要なリソースに焦点を当てるpreloadとは異なり、prefetchはユーザーの次の動きを予測します。これは、後続のページやコンポーネントの読み込み速度を向上させるのに特に役立ちます。

プリフェッチの使用時期

prefetchは以下に使用します。

プリフェッチの実装方法

HTMLドキュメントの<head>セクションで<link>タグを使用してprefetchを実装できます。

<link rel="prefetch" href="/page2.html">
<link rel="prefetch" href="/images/product.jpg">
<link rel="prefetch" href="/scripts/modal.js">

説明:

例:次のページのプリフェッチ

ウェブサイトに複数ステップのフォームのような明確なユーザーフローがある場合、現在のステップでユーザーが次のステップに移動する際に、次のステップのリソースをプリフェッチできます。

<link rel="prefetch" href="/form/step2.html">

例:モーダルウィンドウのリソースのプリフェッチ

ウェブサイトでモーダルウィンドウが使用されており、開かれたときにさらにリソースを読み込む場合、ユーザーエクスペリエンスをスムーズにするためにそれらのリソースをプリフェッチできます。

<link rel="prefetch" href="/scripts/modal.js">
<link rel="prefetch" href="/styles/modal.css">

プリフェッチのベストプラクティス

プリコネクト:早期接続の確立

プリコネクトとは?

Preconnectは、重要なサードパーティサーバーとの早期接続を確立できるリソースヒントです。接続の確立には、DNSルックアップ、TCPハンドシェイク、TLSネゴシエーションなど、いくつかのステップが含まれます。これらのステップは、それらのサーバーからのリソースの読み込みにかなりの遅延を追加する可能性があります。Preconnectを使用すると、これらのステップをバックグラウンドで開始できるため、ブラウザがサーバーからリソースを取得する必要があるときに、接続がすでに確立されています。

プリコネクトの使用時期

preconnectは以下に使用します。

プリコネクトの実装方法

HTMLドキュメントの<head>セクションで<link>タグを使用してpreconnectを実装できます。

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://cdn.example.com">

説明:

例:Google Fontsへのプリコネクト

ウェブサイトがGoogle Fontsを使用している場合、https://fonts.gstatic.comにプリコネクトすることで、フォント読み込みの遅延を大幅に減らすことができます。

<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

Google Fontsはフォントを提供するためにCORSを使用するため、ここでのcrossorigin属性は重要です。

例:CDNへのプリコネクト

ウェブサイトがCDNを使用して静的アセットを提供している場合、CDNのホスト名にプリコネクトすることで、それらのアセットの読み込み遅延を減らすことができます。

<link rel="preconnect" href="https://cdn.example.com">

プリコネクトのベストプラクティス

最適なパフォーマンスのためのリソースヒントの組み合わせ

リソースヒントの真の力は、それらを戦略的に組み合わせることにあります。以下に実用的な例を示します。

CDNでホストされているカスタムフォントを使用し、クリティカルなJavaScriptファイルを読み込むウェブサイトを想像してください。

  1. CDNへのプリコネクト:フォントとJavaScriptファイルをホストするCDNへの早期接続を確立します。
    <link rel="preconnect" href="https://cdn.example.com" crossorigin>
  2. フォントのプリロード:FOUTを防ぐためにフォントの読み込みを優先します。
    <link rel="preload" href="https://cdn.example.com/fonts/myfont.woff2" as="font" type="font/woff2" crossorigin="anonymous">
  3. JavaScriptファイルのプリロード:JavaScriptファイルが必要なときに利用できるように、その読み込みを優先します。
    <link rel="preload" href="https://cdn.example.com/scripts/app.js" as="script">

リソースヒント分析ツール

いくつかのツールは、リソースヒントの効果を分析するのに役立ちます。

一般的な落とし穴と回避策

リソースヒントの将来

リソースヒントは常に進化しており、ブラウザ仕様に新しい機能や改善が追加されています。リソースヒントの最新の開発動向を把握することで、ウェブサイトのパフォーマンスをさらに最適化できます。たとえば、modulepreloadはJavaScriptモジュールのプリロード専用の新しいリソースヒントです。また、リソースヒントのpriority属性により、他のリソースに対するリソースの優先順位を指定できます。これらの機能のブラウザサポートはまだ進化しているため、実装する前に互換性を確認してください。

結論

リソースヒントは、ウェブサイトの読み込み時間を最適化し、ユーザーエクスペリエンスを向上させるための強力なツールです。preloadprefetchpreconnectを戦略的に使用することで、ブラウザにクリティカルリソースを事前に通知し、遅延を削減し、ウェブサイトの知覚されるパフォーマンスを向上させることができます。クリティカルリソースを優先し、リソースヒントを賢明に使用し、常に変更のパフォーマンスへの影響をテストすることを忘れないでください。この記事で概説されているベストプラクティスに従うことで、ウェブサイトのパフォーマンスを大幅に向上させ、世界中のユーザーに優れたエクスペリエンスを提供できます。