【タイムトゥインタラクティブ】

Time to Interactive(TTI) とは?

最終更新:
💡 見えてるのに押せない——そのモヤモヤが終わる瞬間を測る指標

ページが操作に安定して反応できる状態になるまでの時間を推定するラボ用のパフォーマンス指標。Lighthouse 10で指標から外され、現在はLCP・TBT・INPなどが推奨されている。

📌 このページのポイント
TTI:操作に反応できる時点の推定FCPTTI時間長いタスク静かな区間:5秒以上50msを超えるタスクなし進行中のGETリクエストは2件以下その直前の最後の長いタスクの終了がTTI長いタスクがなければFCPの時点Lighthouse 10で削除。今はTBT・INPなどを確認
時間幅は模式的。TTIはラボでの推定で、以後すべての操作が即座に反応する保証ではない。
ひよこ ひよこ
ページは表示されてるのにボタンを押しても反応しないときがあるよね?
ペンギン先生 ペンギン先生
それがまさにTTIが測ろうとしていた状態だよ!画面は描画されてるけど、裏でJavaScriptがまだ大量に実行中でメインスレッドが忙しいから、クリックにすぐ反応できないんだ
ひよこ ひよこ
TTIはどうやって判定してるの?
ペンギン先生 ペンギン先生
FCPから先を見て、50msを超えるLong Taskがなく、進行中のGETリクエストも2件以下という「静かな区間」が5秒以上続く場所を探すんだ。見つかったら、その直前にあった最後のLong Taskが終わった時点がTTIだよ。Long TaskがなければFCPと同じ値になるね
ひよこ ひよこ
どうすればTTIを速くできるの?
ペンギン先生 ペンギン先生
最大の敵はJavaScriptの量だよ。コード分割(Code Splitting)で初期読み込みを減らす、Tree Shakingで未使用コードを除去する、重い処理はWeb Workerに逃がすなどが効果的だね。これはTTIの後継指標を改善するときにも役立つよ
ひよこ ひよこ
後継指標って、TTIはもう使われていないの?
ペンギン先生 ペンギン先生
Lighthouseでは、バージョン10でTTIが指標から削除されたよ。外れ値的なネットワークリクエストやLong Taskに敏感すぎて、値のばらつきが大きかったからなんだ。今は表示の速さをLCP、ラボでの操作の妨げをTBT、実際のユーザーの操作への反応をINPで見るのがおすすめだね。INPはCore Web Vitalsの1つで、ページ滞在中のクリックやキー入力から次の描画までの遅れを見るから、TTIとは同じ数値として比べないようにしようね
もっと詳しく知りたい人へ

TTIの代わりに出てくるTBTは、TTIと何が違う?

TTIは「いつ落ち着いたか」という時点、TBTは「その間どれだけ入力を妨げたか」という合計時間だよ。TBTはFCPからTTIまでのLong Taskについて、50msを超えた部分だけを足し合わせる。たとえば250ms、90ms、155msのLong Taskなら200+40+105で345msになる。ラボ環境でのINPの目安として使われるよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「TTI」って出てきたら「ページが操作に反応できるようになるまでの時間の目安(今は後継指標が主流)」と思えればだいたいOK!
📖 おまけ:英語の意味
「Time to Interactive」 = 操作可能になるまでの時間
💬 Interactive(対話的・操作可能)になるまでのTime(時間)で、「見た目」ではなく「使える」タイミングを測ろうとした指標だよ

参考資料

← 用語集にもどる