CSR、SSR、SSG、ISR の違いと使い分けを説明できますか

画面の HTML を「いつ」「どこで」作るかの違いとして 4 つを並べ、検索に出したいか、内容がどれだけ変わるかで選ぶ、と答える問い。それぞれの弱点も添えます。

答えてみる

面接官に「CSR、SSR、SSG、ISR の違いと使い分けを説明できますか」と聞かれたつもりで、答えを見る前に自分の言葉で答えます。

声に出して答えた人は「書かずに答えを見る」で開けます。

解説を読む

聞かれ方から関連するコースまで、この問いの解説を全部ここに置いています。

こう聞かれます

  • 「CSR、SSR、SSG、ISR の違いと使い分けを説明できますか」
  • 「管理画面とブログでは、作り方を変えますか」
  • 「SPA で作ったページが検索に出にくいと言われました。どうしますか」

面接官が見ている点

  • 4 つを「HTML をいつ、どこで作るか」という 1 本の軸で説明できるか
  • 検索に出したいか、内容がどれくらいの頻度で変わるか、で選べるか
  • それぞれの弱点 (最初の表示の遅さ、サーバーの負担、古い内容が出る) まで言えるか

短い答え

  • 4 つの違いは、画面の HTML をブラウザで作るか (CSR)、頼まれるたびにサーバーで作るか (SSR)、先に作り置くか (SSG)、作り置きを時々作り直すか (ISR) です。
  • 検索に出さなくてよい管理画面は CSR、毎回内容が変わり検索にも出したいページは SSR、あまり変わらないブログや LP は SSG か ISR、と分けます。
  • 1 つのサイトの中でもページごとに混ぜてよく、速さ、サーバーの負担、内容の新しさのどれを優先するかで決めます。

少し詳しい答え

4 つの違い

レンダリングとは、データから画面の HTML を組み立てることです。4 つは、それを「いつ」「どこで」やるかが違います。

方式いつ、どこで作るか向いているページ
CSRブラウザが JavaScript を受け取ってから作るログイン後の管理画面、操作の多い画面
SSR頼まれるたびにサーバーで作る利用者ごと、時刻ごとに中身が変わり、検索にも出したいページ
SSG公開の前 (ビルドのとき) に作り置くブログ、LP、説明のページ
ISR作り置きを、決めた間隔や合図で作り直す記事や商品の一覧のように、時々だけ変わるページ

CSR は、最初に届く HTML がほぼ空で、JavaScript が動いてから中身が出ます。画面の切り替えは速いですが、最初の表示が遅くなりがちで、検索エンジンや SNS の共有の札に中身が伝わりにくいことがあります。

SSG で作り置いた HTML は、ただのファイルなので、CDN (利用者の近くで配る中継の仕組み) からそのまま返せて速く、サーバーもほとんど要りません。

選び方とトレードオフ

  • CSR の弱点最初の表示が遅く、検索に出にくいことがある。検索に出さない画面なら気になりません
  • SSR の弱点頼まれるたびに作るので、サーバーの負担と費用が増え、サーバーが遅いと画面も遅くなります
  • SSG の弱点中身を変えるたびに作り直しが要ります。ページが多いと作り直しに時間がかかります
  • ISR の弱点作り直すまでの間は、少し古い内容が出ます。在庫の数のように、古いと困る値には向きません

迷ったら、「検索に出したいか」と「内容がどれくらい変わるか」の 2 つで決めます。検索に出したく、ほとんど変わらないなら SSG、時々変わるなら ISR、利用者ごとに毎回違うなら SSR、検索が要らないなら CSR、という順に考えます。

最近のフレームワーク (Next.js など) では、1 つのサイトの中でページごとに方式を選べます。たとえば、LP は SSG、ログイン後のダッシュボードは CSR、商品の詳しいページは ISR、のように混ぜます。

話すときは、自分が作った物のページを 1 つ選び、「このページは検索に出したく、内容は週に数回しか変わらないので作り置きにした」のように、選んだ理由と一緒に話します。

よくある間違い

  • 「SSR が一番良い」と言う サーバーの負担と費用が増えます。変わらないページは作り置きのほうが速く安く済みます
  • 検索に出したいページを CSR だけで作る最初に届く HTML に中身が無く、検索や共有の札に伝わりにくいことがあります
  • ISR で古い内容が出ることを忘れる在庫や値段のように、古いと困る値は、その部分だけ毎回取りにいきます

深掘りの問い

  • 「SSR で遅いとき、何を疑いますか」 サーバーでのデータの取り出しが遅い、毎回同じ物を作っている、を疑い、取り出しをまとめる、結果をキャッシュする、変わらない部分は作り置く、と答えます
  • 「ハイドレーションとは何ですか」サーバーで作った HTML に、ブラウザ側で JavaScript をつないで、押せる、動く状態にすること、と答えます
  • 「ページの一部だけ毎回新しくしたいときは」ページは作り置きにし、変わる部分だけをブラウザやサーバーで後から取りにいく、と答えます

確認日 2026年10月24日

技術面接問題の一覧へ戻る