最初のバイトまでの時間(TTFB)

Time to First Byteは、ナビゲーションの開始から、ブラウザーが最初のレスポンスのバイトを受け取るまでの時間です。ネットワーク、接続、リダイレクト、キャッシュ、サーバーの処理が含まれます。

待ち時間に含まれるもの

Time to First Byte(TTFB)は、クライアントがHTTPレスポンスの先頭を受け取るまで待つ時間です。ブラウザーのナビゲーションでは、この間にリダイレクト、DNSの名前解決、接続とTLSの確立、ネットワークの遅延、キャッシュの処理、サーバーの処理が含まれることがあります。

そのため、TTFBが遅くても、原因は1つに特定できません。同じURLでも、近くにあるキャッシュ済みのレスポンスと、アプリケーションまで届く遠いリクエストでは、通る経路が異なる場合があります。

リクエストと最初のレスポンスのバイトが待ち時間にあたります。ナビゲーションのタイミングには、接続の確立も含まれることがあります。

遅延の場所を特定する

まず、ブラウザーのウォーターフォールで、ドキュメントのリクエストを見ます。残りの待ち時間をアプリケーションのせいにする前に、リダイレクトと接続の確立を確認します。サーバーのタイミング情報やログがあれば、ブラウザーが計測した値と比べます。

同じ場所からリクエストを繰り返し、キャッシュヒット、キャッシュミス、認証付きのリクエストのどれだったかを記録します。比較は、同じ条件の場合に限ります。ウォームなキャッシュの結果を、以前のコールドなリクエストと比べて、アプリケーションの改善として示してはいけません。

原因のレイヤーを変更する

リダイレクトチェーンなら、経路を短くします。バックエンドの処理が繰り返されているなら、キャッシュやアプリケーションの変更が候補です。接続の遅延は、別の調査が必要です。想定した原因を試し、変更後に同じ条件のリクエストで比較します。

TTFBは、ページの読み込みが終わる前の指標です。レスポンスが始まったあとも、画像、スタイル、JavaScriptによって、有用なコンテンツの表示や操作が遅れることがあります。これらの段階は、別々に確認します。

FAQ

TTFBは、サーバーの処理時間だけを測るのですか?
いいえ。ブラウザーで観測したTTFBには、リダイレクト、接続の確立、ネットワークの遅延、キャッシュの挙動、サーバーの処理が含まれます。
なぜコールドとウォームの両方でテストするのですか?
キャッシュによって、レスポンスの経路は大きく変わります。比較できるように、キャッシュの状態を記録します。