パフォーマンス
ルール
- Core Web Vitals: LCP < 2.5秒、INP < 200ms、CLS < 0.1
- ファーストビューより下の画像や重いコンポーネントは遅延読み込み:
React.lazy()、next/dynamic - ルートをコード分割 — 各ページは自身のコードのみを読み込む
- 画像を最適化: WebP/AVIF 形式、適切なサイズ設定、
sizesを指定したnext/image - バンドル分析:
@next/bundle-analyzer— 大きな依存関係を特定 - キャッシュ: HTTP キャッシュヘッダー、再訪問時の Service Worker、stale-while-revalidate
- データベース: 頻繁にクエリされるカラムにインデックスを作成、
EXPLAIN ANALYZEを使用して低速クエリを特定 - レイアウトシフトの回避: 画像、動画、埋め込み要素に明示的な寸法を設定