【えすえすじー】

SSG(静的サイト生成) とは?

最終更新:
💡 アクセスされる前に、ページのHTMLを作っておく

ビルド時などにHTMLを事前生成し、静的ファイルとして配信する方式。SSRとの違い、動的機能との組み合わせ、更新の方法を解説します。

📌 このページのポイント
SSG:先にHTMLを作り、後で届ける記事・テンプレート生成の材料HTMLなどを生成ビルド時など静的ファイル配信サーバー・CDNなどブラウザーHTMLなどを表示事前に生成・配置配置要求応答閲覧時JavaScript・APIの動的機能も組み合わせられる
上段で事前生成したファイルを配置し、下段で要求に応じて届けます。CDNは配信方法の一つです。更新には再生成や反映が必要で、速度・費用・安全性は構成や運用にも依存します。
ひよこ ひよこ
SSGは、いつHTMLを作るの?
ペンギン先生 ペンギン先生
典型的にはビルド時に、記事やテンプレートからHTMLを生成する。そのファイルを配信先へ置き、閲覧時に届ける。アクセスのたびにHTMLを組み立てるSSRと区別する。
ひよこ ひよこ
CDNがないと、使えない?
ペンギン先生 ペンギン先生
静的ファイルを配信できるサーバーなどで使える。CDNは配信方法の一つだ。SSGはHTMLを生成する方式で、CDNという製品や設備の名前ではない。
ひよこ ひよこ
必ず速くて安くなる?
ペンギン先生 ペンギン先生
同じHTMLを繰り返し生成する負荷を減らせるが、一律の保証ではない。画像やJavaScriptの量、通信、配信先やビルドの構成も、速度と費用に影響する。
ひよこ ひよこ
記事を更新したら、どうなる?
ペンギン先生 ペンギン先生
通常は再生成して配信先へ反映する。変更したソースだけで公開済みのHTMLは変わらない。Next.jsのISRのように、全体を再ビルドせず静的内容を更新する仕組みもある。
ひよこ ひよこ
検索やコメントは、付けられない?
ペンギン先生 ペンギン先生
付けられる。ブラウザーのJavaScriptで検索したり、APIから最新の情報を取得したりできる。静的なページと動的な機能を組み合わせ、API側の認証や権限も設計する。
ひよこ ひよこ
どのページもSSGにすべき?
ペンギン先生 ペンギン先生
表示内容や更新方法に応じて決める。共通の記事は事前生成し、ログイン中の個別情報などは別の方式で扱うこともある。Astroも事前生成と、必要なページのサーバー描画を組み合わせられる。
もっと詳しく知りたい人へ

静的ファイルだけなら、安全対策は不要?

不要にはなりません。公開ファイルに秘密を入れないこと、依存する部品やビルド環境の管理、ブラウザーで動くコードや接続先APIの対策などが必要です。リクエストごとのHTML生成がないことと、サイト全体に危険がないことは別です。

ページ数が増えたら、ビルド時間は必ず比例する?

テンプレートの処理やデータ取得、画像処理、並列化、キャッシュなどにも依存するため、単純な比例とは限りません。実際のビルドを測り、どこに時間がかかるかを調べます。ISRも利用する実行環境や配信方式の制約を確認します。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SSG」って出てきたら「ページのHTMLを事前に作り、静的ファイルとして配信する方式」と思えばだいたいOK!
📖 おまけ:英語の意味
「Static Site Generation」 = 静的サイト生成
💬 事前に生成したページを静的ファイルとして配信します。静的という言葉は、画面が一切動かないことや、通信がないことを意味しません。

参考資料

← 用語集にもどる