TTFB
Time to First Byte(TTFB)は、ユーザーがページへの移動を開始してから、サーバーのレスポンスの最初の1バイトがブラウザに届くまでの時間を測定します。これはサーバーの応答性を反映し、FCPやLCPなどの下流の読み込み指標に直接影響します。
TTFBは、ページリクエストの開始からレスポンスの最初のバイトが到達するまでにかかる経過時間であり、サーバーの応答性を診断する指標として機能します。
web.devによると、値が0.8秒(800ms)以下であれば良好で、1.8秒を超えるものは不良とされ、75パーセンタイルで測定されます。
これには、リダイレクト、DNSルックアップ、接続とTLSネゴシエーション、サーバー処理時間が含まれます。
これはCore Web Vitalではありませんが、FCPやLCPのようなユーザー中心の指標より前に発生するため、それらの進行速度を左右します。
CDNの利用、キャッシュ、リダイレクトの削減、より強力なサーバーインフラによって改善できます。
概要
TTFBは、ユーザーがページへのナビゲーションを開始した瞬間から経過する時間を測定します(startTime) からサーバーのレスポンスの最初のバイトが届く瞬間まで(responseStart)。言い換えると、ブラウザーが実際のコンテンツを受け取る直前に発生する待ち時間のすべてを捉えるもので、サーバーがリクエストにどれだけ速く反応するかを示す応答性の指標です。
TTFB が重要なのは、他のあらゆる読み込み指標よりも先に発生するからです。最初のバイトの到着が遅れると、First Contentful Paint(FCP)や Largest Contentful Paint(LCP)などの下流の指標もそれに伴って遅れます。そのため TTFB は、ページ読み込みパフォーマンスのスタートラインとして機能します。
しきい値と構成要素
web.dev では、TTFB に関して次のしきい値を推奨しています。75パーセンタイルのユーザーを基準に測定した場合、0.8秒(800ms)以下の値は良好であり、1.8秒を超える値は不良です。ほとんどのサイトでは 0.8 秒以下を目標にすることが推奨されます。
TTFB は単一の処理ではなく、いくつかの段階の合計です。
リダイレクト: 他のURLを経由してルーティングするのにかかった時間
Service worker の起動時間(該当する場合)
DNS ルックアップ: ドメイン名を IP アドレスに解決すること
接続と TLS ネゴシエーション: サーバーとの安全な接続を確立すること
サーバー処理時間: リクエストを送信してから最初のレスポンスバイトが生成されるまでの間隔
念頭に置いておくべき点の一つは、TTFB は診断用の指標であり、Core Web Vitalsの一部ではないということです。サーバーサイドレンダリングを使用するサイトでは、TTFB がやや高くなることがありますが、それでも FCP と LCP はより良好になる場合があります。そのため、TTFB の数値は、サイトが主要コンテンツをどのように配信しているかとあわせて判断するのが最適です。
最適化テクニック
web.dev の TTFB 最適化に関するガイダンスでは、以下のアプローチが推奨されています。
ホスティングとサーバーインフラ: 十分なメモリと最新のバックエンドスタックを備えたホスティングを選ぶことから始めます。
CDN を使用する: コンテンツをユーザーの近くにあるエッジサーバーへ配信し、レイテンシを削減するとともに、HTTP/2 および HTTP/3、最適化された TLS ネゴシエーション、自動圧縮の利点を得ます。
キャッシュ: 適切な
Cache-Controlヘッダーを使用して、エッジでコンテンツをキャッシュします。トラフィックの多いサイトでは、キャッシュの有効期間が短くても TTFB を大幅に改善できる場合があります。リダイレクトをなくす: 誤ったスキームや末尾スラッシュの欠落によって発生する同一オリジンのリダイレクトを削除し、HSTS ヘッダーを使用して HTTP から HTTPS へのリダイレクトを減らします。
マークアップをストリーミングする: 完全な応答を送信するのを待つ代わりに、サーバーでレンダリングされた出力をチャンクごとに段階的に送信します。
103 Early Hints: バックエンドがまだ処理中の間に、レンダリングに必要なリソースをブラウザに事前に通知します。
バックエンドを監視する:
Server-Timingヘッダーを使用して、実際の条件下でのデータベースクエリ、レンダリング、キャッシュのパフォーマンスを測定します。
基準
この定義、0.8秒と1.8秒のしきい値、構成要素、およびCore Web Vitalsからの除外は、Google の公式 web.dev ドキュメント「Time to First Byte (TTFB)」に従っています。最適化手法は、web.dev の「Optimize Time to First Byte」ガイドに基づいています。