Webページの表示速度を向上させるためのテクニックの一つにrel="preload"
があります。
これは、ページの読み込み時に優先的に取得したいリソース(画像・フォント・スクリプトなど)を事前に読み込むための仕組みです。
この記事ではrel="preload"
について、以下の内容を図やサンプルコードを用いてわかりやすく解説します。
rel="preload"
とはrel="preload"
の基本的な使い方rel="preload"
のas
属性rel="preload"
を使うメリットrel="preload"
を使う際の注意点rel="preload"
のブラウザ対応状況preload
とprefetch
の違い
rel="preload"とは
rel="preload"
は、HTMLの<link>
要素で使用される属性です。通常、ブラウザはHTMLの解析を進めながら必要なリソースを順次取得しますが、rel="preload"
を指定すると、ブラウザが「このリソースは重要だから、すぐに取得しておこう!」と認識し、優先的に読み込みを開始します。
例えば、Webページの「最初に表示される画像」や「重要なフォント」などをあらかじめ取得しておけば、ページの表示速度が向上し、ユーザー体験の向上につながります。
preload
は「プリロード」と読み、その名の通り、プリ
(先行)+ロード
(読み込み)という意味になります。
rel="preload"の基本的な使い方
以下のコードでは、ヒーロー画像(hero.jpg
)をpreload
で先読みすることで、表示の遅延を防いでいます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>Preload Image Example</title>
<!-- 画像を事前に読み込む -->
<link rel="preload" href="hero.jpg" as="image" />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<h1>画像を `preload` で先読み</h1>
<!-- 事前に読み込んだ画像を表示 -->
<img src="hero.jpg" alt="Hero Image" class="hero" />
</body>
</html>
各属性の説明
属性 | 説明 |
---|---|
rel="preload" | プリロードを指定 |
href="hero.jpg" | 読み込むリソースのURLを指定 |
as="image" | リソースの種類を指定(例: image , font , script , style など) |
このように設定すると、<img>
タグでhero.jpg
を表示する際、すでにpreload
済みなので素早く表示されます。
では実際に、rel="preload"
を指定していない場合と指定した場合でhero.jpg
の読み込みタイミングが変わっているかを確認してみましょう。
rel="preload"を指定していない場合
rel="preload"
を指定していない場合、通常、ブラウザは以下のプロセスが完了するまでhero.jpg
のダウンロードを開始しません。
- HTMLを解析して
<link rel="stylesheet">
を検出 - CSS(
style.css
)をダウンロード - ダウンロードした
styles.css
をパース .image
のセレクタが適用されるimg
要素を特定hero.jpg
のダウンロード開始
Google ChromeのDevTools(デベロッパーツール)の[Network]タブで確かめてみましょう。

上記のように、styles.css
を読み込んだ後にhero.jpg
のダウンロードが開始されているのが分かります。
rel="preload"を指定した場合
rel="preload"
を指定すると、HTMLの解析時点でhero.jpg
のダウンロードが始まります。同じようにDevToolsの[Network]タブで確かめてみましょう。

上記のように、hero.jpg
がstyles.css
の前にダウンロードされているのが分かります。
rel="preload"のas属性
preloadを適用できるリソースは画像だけではありません。as
属性を適切に指定することで、さまざまなリソースを事前読み込みできます。
リソースの種類 | as の値 | 用途の例 |
画像 | as="image" | 画像ファイル |
CSS | as="style" | メインのスタイルシート |
JavaScript | as="script" | 重要なスクリプト(非モジュール) |
フォント | as="font" | Webフォント(crossorigin 必須) |
メディア | as="video" / as="audio" | 動画や音声ファイル |
Fetch | as="fetch" | APIリクエスト(例: JSONデータ) |
補足
なお、Webフォントをpreload
する際は、以下の様にcrossorigin
を付けないと適切に読み込めない場合があります。
<link rel="preload" href="/fonts/custom-font.woff2" as="font" type="font/woff2" crossorigin="anonymous">
rel="preload"を使うメリット
rel="preload"
を使うメリットを以下に示します。
- ページの表示速度を向上
- ユーザーがページを開いたときに、必要なリソースをすぐに表示できる。
- レンダリングブロックを回避
- 例えば、Webフォントを
preload
すれば、フォントが表示されるまでの遅延を防ぐ。
- 例えば、Webフォントを
- 重要なリソースを優先的に読み込む
- 通常の読み込み順序に関係なく、特定のリソースを事前にロードできる。
rel="preload"を使う際の注意点
rel="preload"
を使う際の注意点を以下に示します。
as
属性の指定が必須as
属性を適切に指定しないと、リソースの優先度が正しく設定されません。例えば、フォントの場合はas="font"
、スクリプトの場合はas="script"
を設定する必要があります。
- 不要なリソースをプリロードしない
preload
で指定したリソースは優先度が上がるため、多用すると逆にページのパフォーマンスを悪化させる可能性があります。本当に必要なリソースのみプリロードしましょう。また、preload
したリソースが実際に使用されないと無駄なダウンロードになります。
- キャッシュの影響を考慮する
- すでにキャッシュされているリソースを
preload
しても、あまり効果がありません。preload
の対象は「キャッシュにないが、すぐに必要なリソース」に限定するのがベストです。
- すでにキャッシュされているリソースを
rel="preload"のブラウザ対応状況
rel="preload"
は多くの最新ブラウザでサポートされていますが、一部の古いブラウザでは対応していません。
ブラウザ | 対応状況 |
---|---|
Chrome | ✅対応済み |
Firefox | ✅対応済み |
Edge | ✅対応済み |
Safari | ✅対応済み |
IE11 | ❌未対応 |
最新の対応状況はCan I Useで確認できます。
preloadとprefetchの違い
preload
は「すぐに使うリソース」を事前に読み込む仕組みです。一方で、prefetch
は「次のページなどで使うかもしれないリソース」を事前に読み込むための仕組みです。
属性 | 目的 |
---|---|
rel="preload" | 現在のページですぐに使うリソースを先読み |
rel="prefetch" | 次のページなどで使う可能性のあるリソースを先読み |
本記事のまとめ
この記事ではrel="preload"
について、以下の内容を説明しました。
rel="preload"
とはrel="preload"
の基本的な使い方rel="preload"
のas
属性rel="preload"
を使うメリットrel="preload"
を使う際の注意点rel="preload"
のブラウザ対応状況preload
とprefetch
の違い
お読み頂きありがとうございました。