Next.jsで「使用していないJavaScriptの削除」に別pageのjsが含まれている場合

公開日時

Next.jsで作ったサービスのトップページを PageSpeed Insights で分析したところ67点だった。

lighthouse1

SSGかつ数件のデータをリスト表示しているだけなので、もっと良い点になると思っていたが悲しい結果になってしまった。

「改善できる項目」を確認すると「使用していないJavaScriptの削除」に別ページのjsが含まれており、かつこのjsのサイズが大きかった。

トップページからこの別ページにはLinkを設定していた。

lighthouse2

next/Linkはデフォルトでprefetchが有効だということを思い出し、これが原因だと気づいた。

そこで↓のようにprefetchの無効化を実施。

<Link href="/some" prefetch={false}>
  Some Page
</Link>

再度PageSpeed Insightsで分析したところ94点まで改善した。

lighthouse3

アクセス頻度が低いページへのリンクの場合はprefetchを無効化するのを忘れないようにしよう。


Related #next.js

SharedArrayBuffer updates in Android Chrome 88 and Desktop Chrome 92

クロスオリジン分離対応を実施

VercelのPreview環境に固定のサブドメインを割り当てる

X-Robots-Tagは付与されないので注意

react-hook-formとReact Datepickerを組み合わせる

Hook FormのControllerを使う

next exportで書き出した静的サイトのconsoleに _next/data/xxx/.json 404エラーが出力される

Next.jsバージョンをv10.0.4にアップデートした