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

TTFBが測定するもの、なぜCore Web Vitalsではないのか、LCPとFCPをどのように制限するか、良いとされる値、そして遅いサーバーレスポンスを修正する方法。

初回公開:2026年6月26日 · 最終更新:2026年8月3日 · Advanced
言語

初回バイトまでの時間は、リクエストの開始からレスポンスの最初のバイトが到着するまでの時間です。リダイレクト時間、サービスワーカーの起動、DNSルックアップ、接続とTLSネゴシエーション、そしてリクエスト自体の合計です。これはCore Web Vitalsではなく、診断用の基礎的な指標であり、FCPとLCPの主要な入力です。web.devは≤0,8秒(良好)を目標とし、>1,8秒を不良としています。これはフィールド指標とラボ指標の両方です。Lighthouseの「サーバーレスポンス時間の短縮」監査はより狭く、完全なTTFBではなく、約600ミリ秒を超えるサーバー時間にフラグを立てます。Lighthouse 13では「ドキュメントリクエストの遅延」インサイト内にあります。CDN、エッジ/HTMLキャッシュ、より高速なホスティング、リダイレクトの削減、Early Hints、効率的なTLSで修正してください。そして、高いTTFBが必ずしも遅いサイトを意味するわけではないことを覚えておいてください。

TL;DR — TTFBは、リクエストの開始から応答の最初のバイトが届くまでの時間です。リダイレクト時間、サービスワーカーの起動、DNSルックアップ、接続とTLSネゴシエーション、そして最初のバイトまでのリクエスト自体の合計です。これはCore Web Vitalではありません。FCPとLCPに影響を与える、基礎的で診断的な指標です。web.devによると、良好は≤0,8秒、不良は>1,8秒(75パーセンタイル)です。フィールド指標とラボ指標の両方です。Lighthouseの「サーバーの応答時間の短縮」監査はより狭く、約600msを超えるサーバー時間をフラグしますが、完全なTTFBではありません。Lighthouse 13以降は「ドキュメントリクエストの遅延」インサイト内にあります。CDN、エッジ/HTMLキャッシュ、より高速なホスティング、リダイレクトの削減、103 Early Hints、効率的なTLSで修正します。また、TTFBが高いからといって、必ずしもサイトが遅いとは限りません。

TTFBが実際に測定するもの

TTFBは、ページへのナビゲーションを開始してから、応答の最初のバイトが届き始めるまでの時間を測定します。よくある誤解は、これを純粋なバックエンド処理時間と見なすことです。そうではありません。最初のバイトが返ってくる前に完了しなければならないすべての合計です。

  1. リダイレクト時間
  2. サービスワーカーの起動時間(該当する場合)
  3. DNSルックアップ
  4. 接続とTLSネゴシエーション
  5. リクエスト — 応答の最初のバイトが届くまでの間

サーバー処理も含まれますが、接続確立のオーバーヘッド全体も含まれます。この違いは、ツールを使い始めた瞬間に重要になります。なぜなら、すべてのツールが同じ部分を測定しているわけではないからです(詳細は後述)。

Evidence for this claim TTFB measures from request start until the first response byte and includes redirect, connection setup, and server-response time. Scope: Current web.dev navigation TTFB definition. Confidence: high · Verified: web.dev: Time to First Byte

Core Web Vitalsではない

最も一般的な誤解なので、はっきり言います。TTFBはCore Web Vitalsではありません。 3つのCore Web Vitalsは、LCP(読み込み)、INP(インタラクティブ性)、CLS(視覚的安定性)です。TTFBは基礎的な診断指標であり、Google自身の説明では「ラボとフィールドの両方で、接続確立時間とWebサーバーの応答性を測定するための基礎的な指標」です。

Googleはまた、優れたTTFBのしきい値を厳密に満たす必要はないと明言しています。Core Web Vitalではないため、「重要な指標で良いスコアを獲得する能力を妨げない限り、サイトが『良好』なTTFBのしきい値を満たすことは絶対に必要ではない」としています。最後の節がポイントです。ほとんどのサイトでは、悪いTTFBは確実に重要な指標を妨げます。

FCPとLCPをどのように制限するか

TTFBは、すべてのユーザー中心の読み込み指標に先行します。First Contentful PaintとLargest Contentful Paintの両方が、その測定にTTFBを含みます。これらの指標の時計は、最初のバイトを待っている間にすでに動いています。web.devはLCPをサブパートに分割しており、TTFBはその最初のものです。そのため、遅いTTFBの上に速いLCPを置くことはできません。

ここで実際のデータが重要になります。HTTP ArchiveのWeb Almanacは、悪いLCPのサイトでは、TTFBだけで約2,27秒を消費していることを発見しました。これは、画像やテキストがレンダリングを開始する前に、2,5秒の「良好なLCP」予算のほぼ全体に相当します。LCPが悪く、ページ上のコンテンツが最適化されているように見える場合、最初に確認するのはTTFBです。

したがって、ランキングへの影響は間接的ですが現実的です。TTFBはGoogleのランキングシグナルではありません(ランキングシグナルはLCP、INP、CLSであり、TTFBはそのセットに含まれていません)。しかし、TTFBはLCPに組み込まれており、LCPはランキングシグナルです。経路はLCPを通り、TTFBを直接通りません。

しきい値:良好、改善が必要、不良

web.devのガイダンス。実際のユーザーの読み込みの75パーセンタイルで測定:

  • 良好: ≤ 0,8秒
  • 不良: > 1,8秒
Evidence for this claim web.dev recommends a TTFB of 0.8 seconds or less; above 1.8 seconds is poor at the 75th percentile. Scope: Current web.dev TTFB guidance; TTFB is diagnostic, not a Core Web Vital. Confidence: high · Verified: web.dev: Time to First Byte

「ほとんどのサイトは、TTFBを0.8秒以下にするよう努めるべきです。」歴史を知っておく価値があります。Googleは2022年に「良好」の基準を500ミリ秒から800ミリ秒に変更し、古いデータは新しい基準で再計算されました。そのため、生の過去のTTFB数値を比較する際は、どのしきい値が使用されたかを確認せずに比較しないでください。

600ミリ秒と800ミリ秒の混乱

これは多くの人を混乱させるので、正確に述べる価値があります。2つの異なる数値が存在します:

  • CrUX / web.devのTTFBしきい値:800ミリ秒。 これは完全なTTFB(DNS + 接続 + TLS + リダイレクト + サーバー時間)のフィールドしきい値です。
  • Lighthouseの「サーバー応答時間の短縮」監査:約600ミリ秒。 これは、ブラウザがメインドキュメントリクエストに対してサーバーが応答するのを約600ミリ秒以上待つ場合にフラグを立てるラボ監査です。重要なのは、サーバー応答時間のみを測定することです。DNS、接続確立、TLSは含まれません。

したがって、Lighthouseの数値はより厳しく見えますが、より狭い範囲を測定しています。ドキュメントが述べるように、「サーバー応答時間は、完全なTime to First Byte(TTFB)の一部にすぎません。」Lighthouse監査の合格をフィールドTTFBが良好である証拠として扱わないでください。また、600 < 800がしきい値の矛盾を意味するとパニックにならないでください。それらは異なるものを測定しています。

バージョンに関する注意:Lighthouse 13の時点で、この監査は単独では存在せず、より広範な「ドキュメントリクエストの遅延」インサイトに統合されています。基礎となる約600ミリ秒のサーバー応答チェックは同じですが、レポートを生成したLighthouseのバージョンによって表示方法が異なります。

フィールドとラボ — 両方

TTFB は、両方の世界で確認できる指標の一つです。フィールドでは、CrUX(実際の Chrome ユーザー)から取得され、PageSpeed Insights や Search Console に表示されます。ラボでは、Chrome DevTools のネットワークパネルのウォーターフォールに「Waiting (TTFB)」と表示され(「ブラウザがレスポンスの最初のバイトを待っている」)、WebPageTest や Lighthouse などのツールでも報告されます。フィールドでの注意点の一つとして、CrUX では TTFB はまだやや実験的な扱いであり、プリレンダリングや bfcache ナビゲーションなどの一部の高度なナビゲーションタイプが除外されるため、フィールドの平均値はユーザーが実際に感じる体感よりもやや悲観的に見えることがあります。

TTFB が高いからといって、必ずしもサイトが遅いわけではない

ここに、しきい値の数字が隠しているニュアンスがあります。サーバーサイドレンダリングのページは、クライアントサイドレンダリングのページよりも高い TTFB を記録しても、より良い FCP と LCP を実現できます。なぜなら、最初のバイトがようやく届いたとき、それはブラウザがすぐに描画できる完全な HTML であり、何かを表示する前に JavaScript バンドルを取得して実行する必要がある薄いシェルではないからです。Google はこれを直接述べています。「a server-rendered site that does not require as much client-side work could have a higher TTFB, but better FCP and LCP values than an entirely client-rendered experience.」 (翻訳) 「クライアントサイドの作業がそれほど必要ないサーバーレンダリングサイトは、完全にクライアントサイドレンダリングの体験よりも TTFB が高くなる可能性がありますが、FCP と LCP の値は優れている可能性があります。」

逆の側面:クライアントサイドレンダリングのシングルページアプリケーションの場合、TTFB によって JavaScript バンドルの読み込みが開始されるタイミングが決まるため、低い TTFB はそこではより重要であり、重要でなくなるわけではありません。TTFB を単独で最適化しないでください。読み込みチェーン全体を最適化し、TTFB が FCP と LCP に与える影響で判断してください。

TTFB を改善する方法

おおよそ優先順位の高い順に:

  • まずはホスティングから。 バックエンドやデータベースのクエリが遅いと、すべてのリクエストにコストがかかります。フロントエンドの作業ではこれを取り除くことはできません。これが最初に検討すべきことです。
  • CDN を使用する。 CDN は近接性の問題を解決します。エッジサーバーの分散ネットワークがリソースをユーザーの物理的に近い場所にキャッシュし、接続と TLS ハンドシェイクの光速によるコストを削減します。これはほとんどのサイトにとって最も ROI の高い修正です。なぜなら、オリジンからの地理的な距離は、バックエンドでは消せない構造的なコストだからです。注意点:キャッシュできない完全に動的でパーソナライズされたコンテンツの場合、CDN はキャッシュヒットのメリットなしにホップを追加します。その場合は、バックエンドの最適化、エッジコンピューティング、またはストリーミングが答えです。
  • HTML をキャッシュする。たとえ短時間でも。 短いキャッシュ時間でも、混雑するサイトでは顕著に効果があります。その時間枠内の最初の訪問者だけがオリジンまでの完全なレイテンシを支払い、他の全員はキャッシュされたコピーを取得します。
  • リダイレクトを排除する。 リダイレクトは TTFB が高くなる一般的な原因です。それぞれが実際のレスポンスが始まる前のラウンドトリップです。自分で制御できるものを削減しましょう。
  • マークアップをブラウザにストリーミングする。 ブラウザは、マークアップが到着したときにチャンク単位でストリーミングされると効率的に処理します。多くの SSR フレームワークはストリーミングをサポートしていますが、オフのままになっています。これをオンにすると、インフラストラクチャの変更なしに動的ページの TTFB を下げることができます。
  • 103 Early Hints を使用する。 103 ステータスコードは、バックエンドがまだマークアップを準備している間にサーバーが送信できる予備的なレスポンスであり、ブラウザにレンダリングに重要なリソースのダウンロードを早期に開始するようにヒントを与えます。これは TTFB 自体を下げるわけではありません。実際、103 は「最初のバイト」と見なされる可能性があります。しかし、高い TTFB の影響を縮小します。Shopify と Cloudflare は、これによる LCP の改善が数百ミリ秒、場合によっては 1 秒近くになったと報告しています。
  • TLS を効率的にネゴシエーションしサービスワーカーの起動を最適化する。 まだ起動していないサービスワーカーは、その起動時間を TTFB に追加します。一度実行されると、そのキャッシュ(stale-while-revalidate、または SPA のアプリシェルモデル)は TTFB を劇的に削減できます。

サイトの実際の状況

これが注目に値する理由は、ウェブ全体にわたる根強い問題だからです。Web Almanacのモバイルにおけるgood-TTFB率は、5年間ほとんど動いていません — 約 41〜42%で推移しており、つまり大多数のモバイルサイトは依然として「良好な」TTFBを達成していないことを意味します。率直に言って、その停滞はチャンスです。LCPに失敗しているサーバー負荷の高いサイトにとって、TTFBは通常、最も効果の高い修正策です。

このページはweb-performanceクラスターの一部であり、Core Web Vitalsの下に位置します。TTFBが影響を与える指標については、Largest Contentful PaintFirst Contentful Paintを参照してください。実際のユーザーとラボで測定するには、 CrUXPageSpeed InsightsLighthouseを参照してください。

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.