FCP First Contentful Paintガイド — 初回レンダリングの測定

First Contentful Paint (FCP) について学びます。測定対象、LCPとの違い、1.8秒以下の高速な認知読み込みを実現する戦略を解説します。

Supplementary Metrics

詳細な説明

First Contentful Paint (FCP) の解説

FCPは、ナビゲーションからブラウザがDOMの最初のコンテンツをレンダリングするまでの時間を測定します。テキスト、画像、SVG、または白でないcanvas要素が対象です。ユーザーが画面上で何かが起きていると初めて見える瞬間です。

FCPとLCPの違い

指標 測定対象 良好な閾値
FCP 最初のあらゆるコンテンツのレンダリング ≤ 1.8秒
LCP 最大のコンテンツ要素のレンダリング ≤ 2.5秒

FCPをブロックするもの

  1. サーバー応答時間(TTFB) — 最初のバイトが到着するまでFCPは開始できない
  2. レンダリングブロッキングCSS — ブラウザは<link>タグのすべてのCSSをダウンロード、解析、適用してからレンダリングする
  3. レンダリングブロッキングJavaScriptasyncdeferなしの<head>内の<script>タグ
  4. 大きなHTMLペイロード — 非常に大きなHTMLドキュメントは解析に時間がかかる

最適化戦略

<!-- クリティカルな上部CSSをインライン化 -->
<style>
  body { margin: 0; font-family: system-ui; }
  .hero { min-height: 100vh; }
</style>

<!-- 非クリティカルCSSを遅延 -->
<link rel="preload" href="/styles/full.css" as="style" onload="this.onload=null;this.rel='stylesheet'">

サーバーサイドレンダリング(SSR)または静的サイト生成(SSG)を使用して、サーバーから意味のあるHTMLを送信します。

ユースケース

FCP最適化は、ユーザーが即座の視覚的フィードバックを期待するすべてのサイトで重要です。検索エンジンのランディングページ、モバイルWebアプリ、プログレッシブWebアプリ(PWA)がすべて高速なFCPの恩恵を受けます。

試してみる — Web Vitals Reference

フルツールを開く