FID (First Input Delay) の改善
FIDとは(初回入力遅延とは)
PageSpeed Insights に出てくる Core Web Vitals の一つ First Input Delay
解説ページである Web Vitals を見てみると
First Input Delay は「最初の入力までの遅延」のこと.
「応答性を測定して、ユーザーが最初にページを操作しようとする場合に感じるエクスペリエンスを定量化します」と書いてある通り,閲覧者が操作できるようになるまでの時間を表す.
確かにいくら表示が高速でも,その後操作できないということでは結局イライラは収まらないので,必要な指標と言える.
First Input Delay (FID): measures interactivity. To provide a good user experience, pages should have a FID of less than 100 milliseconds.
「ページのFIDが100ミリ秒未満である必要があります。」といっている.
具体的には触れるようにするまでかかってもよい時間は 100ms までだ,とのこと.
First Input Delay の改善
では,この FID の改善をしてみよう.
Optimize First Input Delay のページによれば,FID を改善するためには TBT を改善するのがよいと書いてある.
「英々辞典の輪廻」かと思うが,TBT とは Total Blocking Time のこと.
TBT は「マウスのクリック、画面のタップ、キーボードの押下などのユーザー入力への応答がブロックされている合計時間を測定します。」と日本語訳はなっている.
- Reducing JavaScript payloads with code splitting
- removing unused code
- efficiently loading third-party JavaScript
要は javascript を何とかしろと言っている.
リンクを張ったので詳しく知りたい方はその先のページを参照してください.
javascript のコードを分割して読み込む
コードを分割してモジュールとして書いておいて,そのコードにある関数を使う時だけ,そのファイル(モジュール)を読み込みに行くべき.
以下で少しだけ説明する.
未使用のコードは削除するべき
npm などのパッケージマネージャを使った場合,使っていないバンドルは読み込まないようにするべきだし,読み込まないようにするプラグインがあるよ,とアドバイスしている.
しかし,普通のホームページで npm を使っているようなところはあるのだろうか?
これは大規模ECサイトなどに向けて書かれた記事だろうか?
ちなみに弊社の「検索エンジン順位チェックツールのChrome拡張機能」は npm を使っている.
サードパーティーのコードはうまく読み込む
まず,本当にそのライブラリが必要かを考えて不要なら削除するべきだと言っていて,
次にそのスクリプト(コード)を読み込むタイミングを考え直せと言っている.
javascript 読み込み時に async と defer の指定を提案している.
どちらも非同期でスクリプトを読み込みにいく.
メインスレッドで javascript を読み込みに行くと DOM の構築が遅れるので基本的に非同期で読み込みにいくのは DOM の構築を妨げないという意味でよい解決法となる.
async は非同期でスクリプトを読み込んだ後,DOM 構築を止めてでもスクリプトの実行を優先する.
defer は非同期でスクリプトは読み込むが DOM構築が終わるまで待機していて,DOM構築が終わった後にスクリプトを実行する.
つまり,すべての要素が出来てからではないとそのスクリプトを実行したときに問題が起こる場合は defer を選択するしかない.
逆に言うと,そういう制約がないなら,async で良いということになる.
FID FAQ
PageSpeed Insights 対策
PageSpeed Insights 対策の一覧.他の対策は以下を見てください.- CLS (Cumulative Layout Shift) とは
- LCP (Largest Contentful Paint) とは
- Youtube での複数動画を埋め込みページの高速化
- オフスクリーン画像の遅延読み込み
- ウェブフォント読み込み中の全テキストの表示
- 次世代フォーマットでの画像の配信
- 第三者コードの影響を抑えてください
- 静的なアセットと効率的なキャッシュポリシーの配信
- FCP (First Contentful Paint) とは
- テキスト圧縮の有効化
- タップ ターゲットのサイズが適切に設定されていません
- 不適切なアスペクト比の画像が表示されています
- リンクはクロールできません
- 背景色と前景色には十分なコントラスト比がありません
- リンクに識別可能な名前が指定されていません
- 適切なサイズの画像
- ページ上で視認性の高い動画は検出されませんでした
- 「INP の問題」の改善方法
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.