Interaction to Next Paintについて
Interaction to Next Paintとは何ですか?
Interaction to Next Paint は、タップ、クリック、キー入力などの操作を行ってから、ページ上で視覚的な反応が現れるまでにかかる時間を測定します。操作の瞬間から、画面が次に更新される瞬間までの時間です。
これは、ページが反応していないように感じられる状態を捉える指標です。開かないメニューや、最初は何も起こらなかったために2回押されたボタンなどがその例です。この遅延は、ほとんどの場合、メインスレッドが別の処理で忙しくなっていることが原因です。
2024年3月にCore Web Vitalsの指標となり、First Input Delayに取って代わりました。この変更が重要だったのは、旧指標が最初のインタラクションの処理開始前の遅延だけを測定していたためです。そのため、最初は素早く応答したものの、その後処理が遅くなったページでも、実際より良い評価を受けていました。
良好なINPとは?
Googleでは、200ミリ秒以下を「良好」、200~500ミリ秒を「改善が必要」、500ミリ秒を超える場合を「低品質」としています。これも、実際のインタラクションにおける75パーセンタイルを基準としています。
LCPとは異なり、これはページの読み込みごとに1回だけ測定されるものではありません。訪問者は1回のセッション中に何度も操作を行うため、INPはそれらの操作の中で最も遅いものに近い値を報告します。そのため、ページは平均的な状態ではなく、最も遅い瞬間に基づいて評価されます。
このため、3つの指標の中で最もごまかしにくい指標です。テストに対してページを素早く読み込めるようにすることはできますが、セッション全体を通して応答性を維持できるかどうかは、そのページの作り方に左右されます。
INPが悪化する主な原因
INPの問題は、ほぼ常にJavaScriptに起因します。具体的には、訪問者がページを操作しようとしているときに、メインスレッドをブロックする長時間タスクが原因です。
- 処理を譲る前に、負荷の高いイベントハンドラーが同期的に処理を実行している。
- ページの準備が整ったように見えても、大規模なスクリプトの解析と実行がまだ続いている。
- サードパーティ製のタグ(チャットウィジェット、アナリティクス、A/Bテスト、広告スクリプト)が同じスレッドを奪い合っている。
- 長いリストの再レンダリングなど、インタラクションによって負荷の高いレイアウト処理が引き起こされている。
- フレームワークが、インタラクションによって実際に変更された範囲を超えてページを再レンダリングしている。
サードパーティには特に注意が必要です。ページの中で誰も管理していない部分であり、誰かがデプロイしなくても変更される部分だからです。
改善方法
- 長時間実行されるタスクを分割し、処理の合間にブラウザへ処理を返して、画面を描画できるようにします。
- インタラクションの結果をまず表示し、その後に残りの処理を実行します。
- 初回のインタラクションに不要な処理は、特にサードパーティ製スクリプトを優先して遅延させます。
- タグマネージャーを監査します。ほとんどのサイトには、何年も必要とされていないタグが含まれています。
- 1つの要素が変更されただけなのに、セクション全体を再レンダリングするのは避けます。
- ノートパソコンよりもメインスレッドがはるかに飽和しやすい、ミッドレンジのスマートフォンでテストします。
このツールがチェックする項目
INPテストは、実際の訪問者がChromeで収集した測定値である、ページに関するGoogleのフィールドデータを読み取り、上記のしきい値に対してどの位置に該当するかを表示します。
INPは実際に誰かが操作した場合にのみ測定できるため、訪問者の操作が少ないページや、単に読むだけのページでは利用できない可能性が最も高い指標です。これは失敗を意味するものではなく、まだ報告できるデータがないということです。
次に行うこと
レスポンシブ対応はスクリプトの問題なので、まずはページ上で実行されているものから確認しましょう。
JavaScriptエラーでエラーを確認し、
ページリクエストツールを使って読み込まれている個別ファイルの数を確認し、完全な
サイト監査で何も完全に壊れていないことを確認してください。