カテゴリ: Next.js 更新日: 2026/03/29

Next.js SSG(Static Site Generation)の仕組みを初心者向けに解説!ビルド時にHTML生成する方法とは

Next.js SSGとは?ビルド時にHTML生成する方式を解説
Next.js SSGとは?ビルド時にHTML生成する方式を解説

先生と生徒の会話形式で理解しよう

生徒

「先生、Next.jsのSSGって何ですか?初めて聞きました」

先生

「SSGとはStatic Site Generationの略で、ウェブサイトのページをあらかじめ作っておく仕組みです」

生徒

「あらかじめ作るって、どういうことですか?」

先生

「普通のページはアクセスされるたびに内容を作りますが、SSGはビルドするときにHTMLを作るので、アクセスしたときにすぐ表示できるんです」

生徒

「なるほど、じゃあ表示が速くなるんですね!」

先生

「そうです、特にブログや会社の紹介ページのように内容が頻繁に変わらない場合に便利です」

1. Next.js SSGとは?ビルド時にHTMLを生成する仕組み

1. Next.js SSGとは?ビルド時にHTMLを生成する仕組み
1. Next.js SSGとは?ビルド時にHTMLを生成する仕組み

Next.jsのSSGは、ウェブページを事前に作っておく仕組みです。通常のウェブサイトは、アクセスした人のブラウザに情報を表示するためにサーバーでページを作ることが多いですが、SSGでは開発時にHTMLを生成します。これにより、アクセス時の表示速度が非常に速くなり、検索エンジンでも評価されやすくなります。

2. getStaticPropsでデータを取得する

2. getStaticPropsでデータを取得する
2. getStaticPropsでデータを取得する

SSGでは、ページを作るときに必要なデータをNext.jsのgetStaticPropsという関数で取得します。この関数はビルド時に呼ばれ、ページで使うデータを準備します。


export async function getStaticProps() {
  const data = { title: "Next.js SSGの例", content: "これはSSGで作られたページです。" };
  return { props: { data } };
}

function Page({ data }) {
  return (
    <div>
      <h1>{data.title}</h1>
      <p>{data.content}</p>
    </div>
  );
}

export default Page;
(ページに「Next.js SSGの例」と表示され、その下に「これはSSGで作られたページです。」と出ます)

3. SSGのメリットとデメリット

3. SSGのメリットとデメリット
3. SSGのメリットとデメリット

SSGのメリットはページの表示速度が速く、SEOに強いことです。一方で、頻繁にデータが変わる場合は都度ビルドが必要なので、更新に時間がかかるのがデメリットです。

4. getStaticPathsで動的ページを作る

4. getStaticPathsで動的ページを作る
4. getStaticPathsで動的ページを作る

ブログの個別ページのように動的なURLを持つ場合、getStaticPathsを使ってどのページをビルドするか指定します。


export async function getStaticPaths() {
  return {
    paths: [
      { params: { id: "1" } },
      { params: { id: "2" } }
    ],
    fallback: false
  };
}

export async function getStaticProps({ params }) {
  return { props: { postId: params.id } };
}

function Post({ postId }) {
  return <h1>投稿ID: {postId}</h1>;
}

export default Post;
(アクセスURL /posts/1 では「投稿ID: 1」、/posts/2 では「投稿ID: 2」と表示されます)

5. SSGとCSR、SSRの違い

5. SSGとCSR、SSRの違い
5. SSGとCSR、SSRの違い

Next.jsには他にCSR(Client Side Rendering)やSSR(Server Side Rendering)があります。CSRはブラウザで処理し、SSRはアクセス時にサーバーで作ります。SSGはビルド時に作るので、一番表示が速く安定しています。

6. SSGの実際の使いどころ

6. SSGの実際の使いどころ
6. SSGの実際の使いどころ

SSGはブログ、商品紹介、会社情報ページなど更新が少ないページに向いています。また、表示速度が重要なランディングページやキャンペーンページにも最適です。

7. 簡単なSSGページの作成例

7. 簡単なSSGページの作成例
7. 簡単なSSGページの作成例

export async function getStaticProps() {
  return { props: { message: "Hello SSG!" } };
}

function HelloPage({ message }) {
  return <h1>{message}</h1>;
}

export default HelloPage;
(画面に「Hello SSG!」と表示されます)

8. SSGで画像やリストを表示する例

8. SSGで画像やリストを表示する例
8. SSGで画像やリストを表示する例

export async function getStaticProps() {
  const items = ["リンゴ", "バナナ", "オレンジ"];
  return { props: { items } };
}

function FruitList({ items }) {
  return (
    <ul>
      {items.map((item, index) => <li key={index}>{item}</li>)}
    </ul>
  );
}

export default FruitList;
(リストとして「リンゴ」「バナナ」「オレンジ」が表示されます)

9. SSGとISR(Incremental Static Regeneration)の組み合わせ

9. SSGとISR(Incremental Static Regeneration)の組み合わせ
9. SSGとISR(Incremental Static Regeneration)の組み合わせ

SSGで作ったページも、revalidateを使えば、一定時間ごとに更新できます。これをISRと呼び、頻繁に変わるデータにも対応できます。


export async function getStaticProps() {
  return {
    props: { time: new Date().toLocaleTimeString() },
    revalidate: 10
  };
}

function TimePage({ time }) {
  return <p>生成時刻: {time}</p>;
}

export default TimePage;
(ページを表示すると生成時刻が出ます。10秒経つと新しい時刻で再生成されます)

まとめ

まとめ
まとめ

今回はNext.jsのSSG(Static Site Generation)について、初心者向けに詳しく解説しました。SSGはビルド時にHTMLを生成する仕組みであり、アクセスした瞬間に高速でページを表示できるのが最大の特徴です。ブログや会社情報、商品紹介ページなど、頻繁に内容が更新されないウェブサイトに特に向いています。また、検索エンジンに評価されやすい構造を作ることができるため、SEOの観点でも有効です。SSGを活用する際は、Next.jsのgetStaticPropsでページに必要なデータを事前に取得し、動的ページの場合はgetStaticPathsでビルド対象を指定することがポイントです。

さらに、SSGはCSR(Client Side Rendering)やSSR(Server Side Rendering)とは異なり、サーバー負荷を減らしつつ、ユーザーに安定した表示速度を提供できます。必要に応じてISR(Incremental Static Regeneration)を組み合わせることで、頻繁に更新されるデータにも対応可能です。画像やリストなどのコンテンツもビルド時に準備しておくことで、ページ表示をさらに高速化できます。Next.jsを使うことで、Reactのコンポーネント構造を活かしながら、簡単にSSGページを作成できる点も魅力です。

具体例として、getStaticPropsでデータを取得し、ページコンポーネントで表示する方法を紹介しました。簡単なテキストやリストの表示から、動的なURLの生成まで、段階的に理解することでSSGの仕組みが自然に身につきます。さらに、ISRを使えば生成済みのページを定期的に更新できるため、静的サイトの利点を維持しつつ最新情報を提供することが可能です。これにより、ユーザー体験の向上とSEO対策の両立が実現できます。


export async function getStaticProps() {
  const data = { title: "SSGまとめ例", items: ["Next.js", "SSG", "ISR"] };
  return { props: { data } };
}

function SummaryPage({ data }) {
  return (
    <div>
      <h1>{data.title}</h1>
      <ul>
        {data.items.map((item, index) => <li key={index}>{item}</li>)}
      </ul>
    </div>
  );
}

export default SummaryPage;
(画面に「SSGまとめ例」と表示され、その下に「Next.js」「SSG」「ISR」のリストが表示されます)
先生と生徒の振り返り会話

生徒

「先生、SSGのまとめを読んで、仕組みやメリットがだんだん理解できました」

先生

「良いですね。SSGはビルド時にページを作るので表示が速く、SEOにも有利な点が重要です」

生徒

「動的ページやISRの使い方もわかってきました。どんな場面で使うかの判断もしやすいです」

先生

「その通りです。ブログや会社情報ページのように内容が頻繁に変わらない場合はSSGが最適ですし、ISRで更新頻度の高いページにも対応できます」

生徒

「Reactコンポーネントを使ったサンプルも見て、ページの作り方が実感できました」

先生

「Reactのコンポーネントを活用することで、SSGページも効率的に作成できます。データ取得やリスト表示の例を通して、実際に手を動かすことが理解を深めるコツです」

生徒

「なるほど、SSGを理解すると、ページ表示速度やSEO対策の重要性もよくわかります」

先生

「そうです。Next.jsのSSGは、表示速度、SEO、更新管理のバランスがとれた方法なので、初心者にも理解しやすく実践しやすい技術です。今回学んだことをもとに、自分のプロジェクトで試してみるとさらに理解が深まります」

カテゴリの一覧へ
新着記事
New1
Next.js
Next.js SSG(静的サイト生成)が高速な理由を徹底解説!CDN×静的ファイル配信で速いNext.jsサイト
New2
Next.js
Next.js SSG(Static Site Generation)の仕組みを初心者向けに解説!ビルド時にHTML生成する方法とは
New3
React
ReactのState管理ベストプラクティス!初心者でもわかる再レンダリング最適化の考え方
New4
React
Reactのプロジェクト構成をわかりやすく解説!初心者でも理解できるsrcとpublicディレクトリ
人気記事
No.1
Java&Spring記事人気No1
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.2
Java&Spring記事人気No2
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.3
Java&Spring記事人気No3
Next.js
Next.jsのダッシュボード構造におけるLayout設計を徹底解説!初心者でも理解できるLayoutとTemplateの使い方
No.4
Java&Spring記事人気No4
React
ReactのContext APIとReduxの違いを初心者向けに徹底比較!どちらを使うべきか完全解説
No.5
Java&Spring記事人気No5
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.7
Java&Spring記事人気No7
React
Reactのプロジェクト構成をわかりやすく解説!初心者でも理解できるsrcとpublicディレクトリ
No.8
Java&Spring記事人気No8
Next.js
Next.jsとReactの役割の違いを完全解説!初心者でもわかるNext.jsとReactの基本