クリティカルレンダリングパスパフォーマンスバジェット

高速な初回描画のためにクリティカルレンダリングパスをバジェット管理。レンダーブロッキングCSS、同期JavaScript、フォント読み込み、ファーストビューリソース優先順位の各パイプラインステージにバジェットを設定。

Advanced

詳細な説明

クリティカルレンダリングパスバジェット

クリティカルレンダリングパス(CRP)は、ブラウザがHTML、CSS、JavaScriptを画面上のピクセルに変換するために行うステップのシーケンスです。

CRPバジェットテンプレート

リソース バジェット
HTML(ファーストビュー) < 14 KB
クリティカルCSS(インライン) < 14 KB
head内同期JS 0 KB
プリロードフォント < 30 KB
レンダーブロッキング合計 < 28 KB

14 KB制限はTCPスロースタートに由来します — 初期輻輳ウィンドウでは最初のラウンドトリップで約14 KBを許可します。

14 KBが重要な理由

最初のTCP接続で、サーバーは約10のTCPセグメント(14,600バイト)を送信できます。クリティカルリソースがこのウィンドウに収まれば、最初のレンダリングは1回のラウンドトリップで発生できます。

最適化戦略

クリティカルCSSのインライン化:

  • CriticalやCrittersなどのツールでファーストビューCSSを抽出
  • <head>内の<style>タグにインライン化
  • フルスタイルシートは非同期に読み込み

レンダーブロッキングJSの排除:

  • すべてのスクリプトを<body>の最下部に移動
  • DOM アクセスが必要なスクリプトにはdeferを使用
  • 独立したスクリプトにはasyncを使用

ユースケース

CRPバジェットは1秒未満のFCPが必要なサイトに不可欠です。ニュースサイト、コンテンツアグリゲーター、知覚速度で競合するサイトは、レンダーブロッキングリソースを明示的にバジェット管理することで恩恵を受けます。クリティカルリソースを14 KB以下に保つことで、最初の描画が1回のネットワークラウンドトリップで発生し、ほぼ瞬時の知覚読み込みを実現します。

試してみる — Performance Budget Tracker

フルツールを開く