Skip to content

Instantly share code, notes, and snippets.

@kobitoDevelopment
Created March 9, 2026 11:52
Show Gist options
  • Select an option

  • Save kobitoDevelopment/5d191325790992a02899df2ac9b32fc0 to your computer and use it in GitHub Desktop.

Select an option

Save kobitoDevelopment/5d191325790992a02899df2ac9b32fc0 to your computer and use it in GitHub Desktop.

Webフォント読み込みの最適化

rel="preload"rel="preconnect" の違い

rel="preconnect"

DNS解決・TCP接続・TLSハンドシェイクを事前に行う。リソース自体のダウンロードは行わない。

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

用途: リソースのURLが確定しないが、接続先オリジンがわかっている場合(例: Typekitのように動的にリソースURLが決まるケース)。

rel="preload"

リソース自体をダウンロードし、ブラウザキャッシュに保存する。preconnect(接続の事前確立)とは別の機能であり、上位互換ではない。

<link rel="preload" href="https://fonts.googleapis.com/css2?family=..." as="style" crossorigin />

用途: リソースのURLが確定している場合。

使い分け

条件 選択
リソースURLが確定している preload
接続先オリジンのみ確定している preconnect

preloadとpreconnectは異なる機能のため、外部オリジンのリソースをダウンロードする場合はpreconnectとpreloadの併記が有効。

font-display の挙動

Webフォントの読み込み完了前にテキストをどう表示するかを制御するプロパティ。Google Fontsの場合、URLパラメータ display= で指定する。

各値の挙動

挙動
block フォント読み込み完了までテキストを非表示にする。読み込み完了後に表示。
swap フォールバックフォントで表示し、読み込み完了後に差し替える。
fallback フォールバックフォントで表示。一定期間内に読み込み完了すれば差し替え、完了しなければフォールバックのまま。
optional フォールバックフォントで表示。次回アクセス時にキャッシュから適用。

参照: CSS Fonts Module Level 4 4.9

FOUT(Flash of Unstyled Text)

ページ表示時にフォント適用前のフォールバックフォントが表示される現象。font-display: swap を指定した場合に発生する。

対策:

  • display=block を指定し、フォント読み込み完了までテキストを非表示にする
  • rel="preload" でフォントCSSをダウンロードし、読み込み時間を削減する

Google Fontsでの指定例

<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preload" href="https://fonts.googleapis.com/css2?family=...&display=block" as="style" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=...&display=block" rel="stylesheet" />
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment