TechBlog
記事一覧に戻る
Next.jsのSSG/SSRの違いを理解する
2026年2月14日
Next.js

Next.jsのSSG/SSRの違いを理解する

Next.jsの3つのレンダリング方式(SSG、SSR、CSR)について、それぞれの特徴と使い分けを学びました。

Next.jsのSSG/SSRの違いを理解する

Next.jsを触っていると、SSG / SSR / CSR という言葉が必ず出てきます。

最初は「結局どれも画面が表示されるなら同じでは?」と思っていましたが、実際は “いつ・どこでHTMLを作るか” が違い、そこから 表示速度・SEO・サーバー負荷・実装の考え方 まで変わってきます。

この記事では、Next.jsの3つのレンダリング方式(SSG、SSR、CSR)について、特徴と使い分けを自分なりに整理します。


そもそも「レンダリング方式」の違いって何?

ざっくり言うと、違いはこれです。

  • SSG:ビルド時にHTMLを作っておく(先に作り置き)
  • SSR:リクエストのたびにサーバーでHTMLを作る(毎回作る)
  • CSR:最初は空に近いHTMLを返して、ブラウザでJSが描画する(後から作る)

つまり「HTMLがいつ生成されるか」がキモです。


SSG(Static Site Generation):ビルド時にHTMLを作る

特徴

  • ビルド時にページのHTMLを生成して、静的ファイルとして配信する方式
  • CDNに載せやすく、表示が速い
  • HTMLが最初からあるので、SEOにも強い
  • ただし、内容を更新したい場合は 再ビルドが必要(またはISRで補う)

向いているケース

  • 変更頻度が高くないページ
  • ブログ記事、ドキュメント、会社概要、LP など

イメージ

「完成品を倉庫に置いておいて、注文が来たら即渡す」みたいな感じです。


SSR(Server Side Rendering):リクエストごとにHTMLを作る

特徴

  • アクセスされるたびにサーバーがHTMLを生成する方式
  • ユーザーごとに内容を変えたい(ログイン情報、権限、地域など)時に強い
  • ただし毎回サーバーで作るので、負荷が増えやすい
  • レスポンス速度も、SSGよりは不利になりがち(設計次第)

向いているケース

  • 「常に最新」が重要なページ
  • ユーザーごとに内容が変わるページ
  • ECの在庫・価格が頻繁に変わるページ、管理画面の一覧 など

イメージ

「注文が来たら、その場で料理して提供する」感じです。


CSR(Client Side Rendering):ブラウザで描画する

特徴

  • 最初に返ってくるHTMLはシンプル(場合によってはほぼ空)
  • その後、ブラウザでJavaScriptが動いてデータを取りに行き、画面を作る
  • 画面の切り替えがスムーズで、アプリっぽい体験にしやすい
  • ただし、初回表示はJSの読み込みがある分遅くなることがある
  • SEOは工夫が必要(最近は改善されているが、基本的にSSG/SSRより考慮点が多い)

向いているケース

  • ログイン後に使うダッシュボード(SEO不要)
  • 画面操作が中心のWebアプリ
  • フィルタや検索など、ユーザー操作が多いUI

イメージ

「材料だけ渡して、調理は客の席(ブラウザ)でやってもらう」感じです。


3つの使い分け(結論)

判断基準をシンプルにすると、こうなります。

① SEOが必要で、内容があまり変わらない → 

SSG

  • ブログ記事、LP、サービス紹介など

② SEOが必要で、内容が頻繁に変わる or ユーザーごとに変わる → 

SSR

  • 最新情報が重要、ログイン状態で表示が変わるページなど

③ SEOより操作体験が重要 → 

CSR

  • 管理画面、ダッシュボード、社内ツールなど


まとめ

  • SSG:ビルド時にHTML生成 → 速い・SEO強い(更新は再ビルド)
  • SSR:リクエストごとにHTML生成 → 常に最新・ユーザー別表示に強い(負荷増)
  • CSR:ブラウザで描画 → 操作が快適(初回表示とSEOに注意)

Next.jsを使う上で大事なのは「どれが正解か」ではなく、

ページごとに最適なレンダリングを選ぶことだと思いました。