TL;DR
ブラウザがページをリクエストしてから、サーバからレスポンスの最初のバイトを受け取るまでの時間。リクエストの開始からレスポンスの開始までをミリ秒で表す。
仕組み
TTFB には、DNS の名前解決、TCP ハンドシェイク、HTTPS の場合は TLS ハンドシェイクで接続を確立する時間が含まれる。Navigation Timing の値を使うと、次の式で求められる。
TTFB = responseStart - navigationStartweb.dev では、0.8 秒以下を良好、1.8 秒を超えると改善が必要としている。ただし TTFB は Core Web Vitals の指標ではないので、目安として扱う。
例
各ブラウザの開発者ツールで確認できる。Chrome DevTools では、「ネットワーク」タブで任意のリクエストを選び、「タイミング」タブを開くと表示される。
注意点
TTFB が 0.8 秒を超えていても、Largest Contentful Paint など他の指標に悪影響がなければ、必ずしも問題ではない。サーバでレンダリングするサイトは、クライアントの JavaScript で描画する SPA より TTFB が長くなりやすい。