正解は「fetchのオプションにnext: { revalidate: 秒数 }を指定する」です。Next.js App Routerではデフォルトでfetchの結果がキャッシュされ、一度取得したデータはビルド時またはリクエスト時の結果が再利用されます。データを定期的に更新するにはISR(Incremental Static Regeneration)の仕組みを使い、fetch("https://...", { next: { revalidate: 3600 } })のように再検証間隔を秒単位で指定します。revalidate: 0は毎回サーバーで再取得、cache: "no-store"はキャッシュ完全無効化を意味します。また、revalidatePath()やrevalidateTag()を使ったオンデマンド再検証も可能で、CMSの更新時などに即座にキャッシュを無効化できます。