Next.js 15 Desteği 21 Ekim 2026'da Bitiyor: Next.js 16'ya Geçiş Rehberi ve Kırıcı Değişiklikler

Alesta WEB

Next.js 15 Desteği 21 Ekim 2026'da Bitiyor: Next.js 16'ya Geçiş Rehberi ve Kırıcı Değişiklikler

Kısa cevap: Next.js 15'in desteği 21 Ekim 2026'da bitiyor. Next.js destek politikasına göre her ana sürüm ilk yayımlanmasından itibaren iki yıl bakım (Maintenance LTS) alır; 15.x 21 Ekim 2024'te çıkmıştı. Bu tarihten sonra 15.x için güvenlik yaması garanti edilmiyor. 15.x hattının son sürümü 14 Ekim'de çıkan 15.5.28. Yapılacak iş Next.js 16'ya geçmek: en az Node.js 20.9 ve TypeScript 5.1 gerekiyor, senkron params/cookies() erişimi tamamen kaldırıldı, middleware dosyası proxy oldu, Turbopack varsayılan derleyici, next lint kaldırıldı ve next/image varsayılanları değişti. Resmî codemod işin büyük kısmını yapıyor.

Dizüstü bilgisayar ekranında kod düzenleyici (Code editor on a laptop screen)
Resmî codemod işin büyük kısmını yapıyor, ama derleme geçti diye geçiş bitmiş sayılmıyor. Fotoğraf: Mohammad Rahmani / Unsplash

21 Ekim neden önemli? (Why the date matters)

Next.js'in destek politikası iki aşamalı. Yeni ana sürüm çıkınca o sürüm Active LTS olur ve yeni özellik, hata düzeltmesi, güvenlik yaması alır. Bir önceki ana sürüm Maintenance LTS'e geçer ve yalnız kritik hata düzeltmeleri ile temel güvenlik güncellemelerini alır. Bakım süresi, sürümün ilk yayımlanmasından itibaren iki yıl.

SürümYayınDurumSon sürüm
16.x21 Ekim 2025Active LTS16.4.2 (15 Ekim 2026)
15.x21 Ekim 2024Maintenance LTS → 21 Ekim 2026'da biter15.5.28 (14 Ekim 2026)
14.x26 Ekim 2023Desteklenmiyor14.2.35

Politika "nadir durumlarda, hatanın ciddiyetine göre" destek dışı sürümlere de yama çıkarılabileceğini söylüyor; ama buna güvenmek bir plan değil. Son iki ayda üst üste güvenlik sürümleri geldiğini Next.js Ekim 2026 güvenlik güncellemesi yazımızda anlattık; 15.x'te kalan bir site bundan sonraki açıkta yamasız kalabilir.

Geçişten önce: gereksinimler (Requirements)

GereksinimNext.js 16
Node.jsEn az 20.9.0 (Node.js 18 desteklenmiyor)
TypeScriptEn az 5.1.0
TarayıcılarChrome 111+, Edge 111+, Firefox 111+, Safari 16.4+
React19.2 (App Router en güncel React Canary'yi kullanır)

Sunucunuz hâlâ Node.js 18 kullanıyorsa önce onu yükseltin. Node.js tarafındaki değişiklikler için Node.js 26 LTS geçiş rehberimize bakabilirsiniz.

Codemod ile yükseltme (Using the codemod)

Python
# Ana yükseltme codemod'u
npx @next/codemod@canary upgrade latest

# Senkron params / cookies() / headers() kullanımı kaldıysa
npx @next/codemod@canary next-async-request-api .

# Tip yardımcılarını üretmek (PageProps, LayoutProps, RouteContext)
npx next typegen

Ana codemod şunları yapıyor: next.config'teki Turbopack ayarını üst düzeye taşıyor, next lint'ten ESLint CLI'a geçiriyor, middleware'i proxy'ye çeviriyor, kararlı hâle gelen API'lerden unstable_ önekini kaldırıyor. Asenkron istek API'leri codemod'unu ayrıca çalıştırmak gerekiyor.

Codemod tek başına yetmez: kodun çalıştığını test etmeden "bitti" denmemeli. Resmî kılavuz da "yeşil bir derleme tek başına çalışma zamanı sorunlarını kapatmaz" diye uyarıyor.

Kırıcı değişiklikler (Breaking changes)

Senkron istek API'leri tamamen kalktı

Next.js 15'te geçici uyumluluk vardı; 16'da cookies(), headers(), draftMode(), params ve searchParams yalnız await ile okunabiliyor:

JavaScript
export default async function Sayfa(props: PageProps<'/blog/[slug]'>) {
  const { slug } = await props.params
  const sorgu = await props.searchParams
  return <h1>{slug}</h1>
}

Aynı değişiklik opengraph-image, icon gibi görsel üreten dosyalarda ve sitemap fonksiyonundaki id parametresinde de var: id artık bir Promise ve dize döner. Çoklu site haritası üreten projelerde Number(await id) dönüşümü unutulursa site haritası bozulur.

middleware → proxy

middleware.ts dosyasının ve dışa aktarılan middleware fonksiyonunun adı proxy oldu. Dikkat: proxy yalnız Node.js çalışma zamanında çalışır, edge desteklenmez. Edge middleware kullanıyorsanız dosyayı körü körüne yeniden adlandırmayın, şimdilik middleware olarak bırakın.

Turbopack varsayılan

next dev ve next build artık Turbopack ile çalışıyor. Projede özel bir webpack yapılandırması varsa (bir eklenti de eklemiş olabilir) derleme bilerek hata verir. Seçenekler: yapılandırmayı Turbopack'e taşımak ya da next build --webpack ile devam etmek.

revalidateTag ikinci argüman istiyor

JavaScript
// Eski
revalidateTag('haberler')

// Yeni
revalidateTag('haberler', 'max')

Anında güncelleme gerekiyorsa Server Action içinde updateTag kullanılıyor. updateTag yalnız Server Action'da çalışır; bir API route'unda çağrılırsa hata verir. Cron veya webhook ile önbellek yenileyen uç noktalarda bu ayrıma dikkat edin.

Diğerleri

  • Paralel route slotlarının hepsinde default.js zorunlu; yoksa derleme başarısız olur.
  • next dev çıktısı .next/dev dizinine yazılıyor; dev ve build aynı anda çalışabiliyor.
  • scroll-behavior: smooth artık sayfa geçişlerinde ezilmiyor; eski davranış için <html data-scroll-behavior="smooth">.
  • next build çıktısındaki size ve First Load JS sütunları kaldırıldı.

next/image varsayılanları (Image defaults)

AyarNext.js 15Next.js 16
minimumCacheTTL60 saniye4 saat (14.400 sn)
qualitiesTüm değerlerYalnız [75]
imageSizes16 dahil16 çıkarıldı
maximumRedirectsSınırsız3
Yerel IP optimizasyonuAçıkKapalı (dangerouslyAllowLocalIP)
Sorgu dizeli yerel görselSerbestlocalPatterns.search gerekli

En çok sorun çıkaran qualities: koddaki quality={80} en yakın izinli değere (75) çekilir, doğrudan /_next/image?q=80 isteği ise 400 döner. Farklı kalite kullanıyorsanız images.qualities dizisine ekleyin. images.domains da kullanımdan kalktı; yerine remotePatterns.

Kaldırılan özellikler (Removals)

  • AMP: next/amp, useAmp ve amp yapılandırması tamamen kaldırıldı.
  • next lint: Komut ve next.config'teki eslint seçeneği yok; next build artık lint çalıştırmıyor. ESLint veya Biome'u doğrudan kullanın.
  • Runtime config: serverRuntimeConfig ve publicRuntimeConfig kalktı; ortam değişkenleri (NEXT_PUBLIC_ öneki) kullanılıyor.
  • experimental.dynamicIO ve experimental.useCache: Yerine üst düzey cacheComponents. Bunu açmak basit bir yeniden adlandırma değil, Cache Components modelini benimsemek demek.

Kontrol listesi (Checklist)

  1. Node.js 20.9+ ve TypeScript 5.1+ kurulu mu?
  2. Ayrı bir dalda codemod'ları çalıştırın, codemod'un bıraktığı hata yorumlarını ve UnsafeUnwrapped dönüşümlerini temizleyin.
  3. Özel webpack ayarı varsa Turbopack'e taşıyın veya --webpack kullanın.
  4. Edge middleware'i proxy'ye çevirmeden önce çalışma zamanını kontrol edin.
  5. Görsel isteklerini test edin: kalite değerleri, uzak kaynak listesi, yönlendirme yapan görsel adresleri.
  6. revalidateTag çağrılarına ikinci argüman ekleyin.
  7. Site haritası ve OG görselleri üreten fonksiyonlarda asenkron id/params kullanın, üretilen adresleri açıp kontrol edin.
  8. CI betiklerinde next lint kaldıysa değiştirin.
  9. Canlıya almadan önce derlemeyi ayrı dizinde yapın, sonra yer değiştirin; çalışan sitenin .next dizininde derleme yapmayın.

Alesta WEB olarak yönettiğimiz Next.js projelerinde sürüm geçişini bu sırayla yapıyoruz; en sık takıldığımız yerler updateTag'in yalnız Server Action'da çalışması ve görsel kalite listesi oldu. Web projeniz için destek isterseniz web yazılım hizmetlerimize bakabilirsiniz.

Sık sorulan sorular

21 Ekim'den sonra sitem çalışmaz mı?

Çalışmaya devam eder. Bitecek olan, yeni güvenlik açıklarına yama gelme garantisi.

Next.js 15.5.28'de kalırsam ne olur?

Bilinen açıklar kapalı, ama bundan sonra bulunacak açıklar için yama garantisi yok. Geçişi birkaç hafta içinde planlamak en güvenli yol.

Pages Router kullanıyorum, etkileniyor muyum?

Evet, destek süresi ana sürüme bağlı. Pages Router 16'da da destekleniyor; Node.js, görsel varsayılanları, AMP ve runtime config değişiklikleri sizi de etkiler.

Geçiş ne kadar sürer?

Küçük bir App Router projesinde codemod ve testlerle birkaç saat. Özel webpack ayarı, edge middleware ve çok sayıda dinamik route varsa daha uzun.

İlgili yazılar: Next.js 16.4.1 / 15.5.28 güvenlik güncellemesi · Next.js 16 yenilikleri · React 19 ve React Compiler · Web yazılım hizmetleri · İletişim

Kapak fotoğrafı: Emile Perron / Unsplash

Hazır mısınız?

Projenizi birlikte planlayalım

Haber sitesi, adisyon, QR menü ya da kurumsal web sitesi — ihtiyacınızı dinleyelim, demo hesabı açalım ve yazılı teklifimizi iletelim. Görüşme ücretsizdir.

WhatsAppAra