待ち時間に含まれるもの
Time to First Byte(TTFB)は、クライアントがHTTPレスポンスの先頭を受け取るまで待つ時間です。ブラウザーのナビゲーションでは、この間にリダイレクト、DNSの名前解決、接続とTLSの確立、ネットワークの遅延、キャッシュの処理、サーバーの処理が含まれることがあります。
そのため、TTFBが遅くても、原因は1つに特定できません。同じURLでも、近くにあるキャッシュ済みのレスポンスと、アプリケーションまで届く遠いリクエストでは、通る経路が異なる場合があります。
遅延の場所を特定する
まず、ブラウザーのウォーターフォールで、ドキュメントのリクエストを見ます。残りの待ち時間をアプリケーションのせいにする前に、リダイレクトと接続の確立を確認します。サーバーのタイミング情報やログがあれば、ブラウザーが計測した値と比べます。
同じ場所からリクエストを繰り返し、キャッシュヒット、キャッシュミス、認証付きのリクエストのどれだったかを記録します。比較は、同じ条件の場合に限ります。ウォームなキャッシュの結果を、以前のコールドなリクエストと比べて、アプリケーションの改善として示してはいけません。
原因のレイヤーを変更する
リダイレクトチェーンなら、経路を短くします。バックエンドの処理が繰り返されているなら、キャッシュやアプリケーションの変更が候補です。接続の遅延は、別の調査が必要です。想定した原因を試し、変更後に同じ条件のリクエストで比較します。
TTFBは、ページの読み込みが終わる前の指標です。レスポンスが始まったあとも、画像、スタイル、JavaScriptによって、有用なコンテンツの表示や操作が遅れることがあります。これらの段階は、別々に確認します。