推測で直さず、範囲の確認 → 計測 → どこが遅いかの切り分け → 1つずつ直す → 効果の確認 → 劣化を防ぐ、の順で進める。
「サイトが遅い」と言われたら、いきなりコードを直さず、どこが・どれだけ遅いかを計測してから直します。思い込みで直すと、効かない作業に時間を使ったり、別のところを遅くしたりします。
| 段階 | やること | 道具の例 |
|---|---|---|
| 1. 範囲と再現 | どの画面か・全員か一部か・いつからか(リリースや流入の変化)。遅い人の端末・回線・地域 | 問い合わせの内容、リリース履歴 |
| 2. 計測 | 実際の利用者の数字(RUM)で、どの指標(LCP・INP・CLS・TTFB)が悪いかを見る。平均ではなく p75・p95 | RUM(web-vitals ライブラリ・APM)、Search Console |
| 3. どこが遅いか | フロント(JS・画像・描画)/通信(CDN・リダイレクト)/サーバー(API・DB)のどれかに分ける | 開発者ツールの Network・Performance、Lighthouse、APM のトレース |
| 4. 仮説を立てて直す | 効果が大きく手間が小さい順に。1回に1つだけ変えて、何が効いたか分かるようにする | 下の各トピックの手段 |
| 5. 効果を確かめる | 同じ条件(端末・回線の制限)で前後を比べ、リリース後は RUM で本番の数字を確かめる | Lighthouse を複数回、RUM のグラフ |
| 6. 劣化を防ぐ | バンドルサイズや指標に上限(バジェット)を決め、CI とアラートで戻らないようにする | Lighthouse CI、size-limit、RUM のアラート |
報告するときは「LCP の p75 が 4.1 秒 → 2.3 秒(原因:トップの画像が 1.2MB で優先度が低かった)」のように、指標・前後の数字・原因をセットにします。性能のテストの進め方は QA の性能のテスト、サーバー側の深掘りは SRE のパフォーマンスチューニングも参考になります。
面接ではこう答える
性能の問題は、推測で直さずに計測から始めます。まずどの画面がいつから遅いかを確かめ、実際の利用者の数字でどの指標が悪いかを見ます。次にフロント・通信・サーバーのどこが遅いかを分け、効果が大きい順に1つずつ直して、同じ条件で前後を比べます。最後にバジェットや CI で劣化を防ぎ、指標と前後の数字と原因をセットで記録します。
Webとの関わり「サイトが重い」という問い合わせや、リリース後の性能の劣化に対応するときの基本の手順。