技術

ISR: Incremental Static Regeneration

ISR(インクリメンタル静的再生成)とは

Definition

ISR(Incremental Static Regeneration:インクリメンタル静的再生成)とは、Next.jsが提供する機能で、静的生成(SSG)の高速性とサーバーサイドレンダリング(SSR)の動的な更新を組み合わせた方式です。一定時間(revalidate)ごとにページを再生成してキャッシュを更新します。

ISRを使うことで、ブログ記事やECの商品ページを静的ファイルとして配信しながら、定期的に最新データに更新できます。完全静的生成より柔軟で、完全SSRよりも高速です。

Key Points

知っておくべきポイント

01

ISRの設定方法(Next.js App Router)

ページファイルに export const revalidate = 3600 を追加するだけで、1時間(3600秒)ごとにページを再生成するISRが有効になります。0を設定すると動的レンダリング(毎回サーバーで生成)になります。

02

ISRとSSG・SSR・CSRの比較

SSG(静的生成)はビルド時のみページ生成でコンテンツ更新不可・最高速度 / ISRは定期的に再生成・高速かつ更新可能 / SSRはリクエストごとに生成・常に最新だが遅い / CSRはクライアントで生成・初期表示遅いがインタラクティブ性高い。ISRは速度と更新性のバランスが取れた現実的な選択肢です。

03

オンデマンドISR(revalidatePath)の活用

Next.jsのServer ActionsまたはRoute Handlersからrevalidatepath()・revalidateTag()を呼び出すことで、特定のページやデータを即時に再生成できます。CMSからの記事更新を検知してWebhookでNext.jsのAPIを叩き、更新されたページだけを再生成するオンデマンドISRが現在のベストプラクティスです。

04

ISRとSEOの相性

ISRで生成されたページは静的HTMLとして配信されるため、クローラーが容易にインデックスできます。また表示速度が速くCore Web Vitals(特にLCP)の改善に貢献します。ページ内容が定期的に更新されるブログ・ECでは、ISRによって常に最新コンテンツをクローラーに提供できます。SEOとパフォーマンスの両立において最も効果的なレンダリング方式の一つです。

よくある質問

  • ISRは静的ファイルを配信するため表示速度が速く、SEOに好影響があります。revalidateの間隔は更新頻度に応じて設定してください(ブログ記事なら3600秒〜86400秒が一般的)。

  • SSRはリクエストごとにサーバーでページを生成するためデータが常に最新ですが、速度はISRより遅くなります。ISRは一定間隔でキャッシュを更新するため配信速度が速く、リアルタイム性が不要なページに最適です。

  • ブログ・ECの商品ページ・会社サイトのコンテンツページなど、一定頻度で更新されるが毎リクエストで最新データが必要でないページに最適です。リアルタイムな在庫情報・ユーザー固有のデータ表示にはSSRまたはCSRが適しています。

  • Next.jsのApp Routerではexport const revalidate = 3600の1行追加で基本的なISRが実装できます。ただし、データ取得(fetch)・キャッシュ戦略・オンデマンド再生成(revalidatePath/revalidateTag)を正しく設計するには知識が必要です。

  • ISRはNext.jsの固有機能です。WordPressではキャッシュプラグイン(WP Rocket等)でサイトの静的キャッシュを生成することがISRに近い挙動をします。ただしNext.jsのISRほど細かい制御はできません。

  • SSG(静的サイト生成)はビルド時に全ページを生成し、その後はページを更新しません。ISRはrevalidateで設定した時間ごとにページを再生成するため、ビルド後もコンテンツを定期的に最新化できる点が大きな違いです。

  • 更新頻度に応じて設定します。毎日更新のブログは3600〜86400秒、商品ページは1800〜3600秒、ほぼ変わらない固定ページは86400秒以上が目安です。更新頻度が高いほど短く、低いほど長く設定することで効率的なキャッシュ管理が可能です。

  • はい、ISRではキャッシュされた静的ファイルを配信するため、SSRのようにリクエストのたびにサーバーでページを生成する必要がありません。その結果、サーバー負荷が大幅に減少し、大量のアクセスに対しても安定したパフォーマンスを維持できます。

この用語を活用してみませんか

実際の集客施策への活用方法はお気軽にご相談ください。

お問い合わせ

メールでのご相談

info@cypress-all.co.jp

受付時間 平日 10:00 – 18:00