Ana içeriğe geç
Blog
23 Mayıs 2026
10 Dk.

React Server Components: SEO ve Hız Avantajı 2026

React Server Components anlatıldı: 2026'da bundle boyutunu nasıl yarıya indirir, SEO'yu anında indekslenebilir yapar ve hangi projelerin gerçekten ihtiyacı vardır.

Cagri Ersöz – Gründer & Creative Director, Storyable Werbeagentur Hannover

Cagri Ersöz

Cagri Ersöz, Hannover'deki dijital ajans Storyable'ın kurucusu ve genel müdürüdür. Satış psikolojisine dayalı web tasarımı ve full-stack geliştirme (Vue.js, Nuxt, React) deneyimiyle KOBİ'ler için 50'den fazla dijital projeyi hayata geçirmiştir. Uzmanlık alanları: dönüşüm optimizasyonu, yapay zeka entegrasyonu ve veri odaklı pazarlama.

Şimdi İletişime Geç

React bundle'ın 800 kilobyte. Bunun 600 KB'ı tarayıcının asla çalıştırmayacağı kod – tarih formatlama, date kütüphaneleri, Markdown parser. React Server Components bunu kökünden değiştiriyor.

RSC, React 19 ile stabil; Next.js 14'te üretim hazır; ve 2026'da yeni standart oluyor. Yine de oradaki React projelerinin %80'i hâlâ tarayıcıda render ediyor. Senin için fırsat tam burada: Bugün React Server Components'a geçen, hâlâ klasik Client-Side render eden rakibe karşı ölçülebilir performans ve SEO üstünlüğü kazanır.

Bağlam: Storyable'da öncelikli olarak Nuxt 3 ve Vue ile inşa ediyoruz. Aynı mimari prensibi – Server ve Client bileşenlerin ayrımı, Streaming, Hydration azaltma – Vue ekosisteminde Nuxt Islands ve Nitro Server Components olarak adlandırılıyor. Burada RSC için anlattıklarımız yapısal olarak her iki dünya için geçerli.

React Server Components nedir – ve ne değildir?

Server Component, yalnızca sunucuda çalışan bir React bileşenidir. Orada render edilir, sonuç seri hale getirilmiş bir akış olarak tarayıcıya gönderilir, biter. Tarayıcının bu bileşen için yüklediği, parse ettiği veya çalıştırdığı hiçbir JavaScript kodu yoktur.

Bu klasik Server-Side Rendering (SSR) gibi geliyor. Ama değil.

KonseptNe olurTarayıcıda JavaScript?
CSR (Client-Side Rendering)Tarayıcı boş HTML yükler, sonra JS, sonra renderEvet – komple uygulama
SSR (Server-Side Rendering)Sunucu HTML render eder, gönderir, tarayıcı hidrasyon yaparEvet – komple uygulama tekrar
SSG (Static Site Generation)Build-zamanı HTML, CDN'de, tarayıcıda hidrasyonEvet – komple uygulama
RSC (React Server Components)Sunucu yalnızca Server bileşenleri render eder, akış gönderir, tarayıcı yalnızca Client bileşenleri hidre ederYalnızca Client bileşenleri

Belirleyici fark: SSR, hidrasyon yapabilmek için HTML ve komple JavaScript bundle'ını gönderir. RSC'de UI'ın büyük kısmı Client'ta JS olarak hiç gerekmediği için – hiç gönderilmez.

"use client" direktifi

RSC modelinde her şey varsayılan olarak Server Component'tir. Tarayıcı API'leri, state veya event handler gerekiyorsa dosyayı açıkça işaretlersin:

"use client"
import { useState } from "react"

export function CartButton() {
  const [count, setCount] = useState(0)
  return <button onClick={() => setCount(c => c + 1)}>{count}</button>
}

Yalnızca bu bileşen – ve import ettiği her şey – Client bundle'a girer. Geri kalan? Sunucuda kalır.

Client vs. Server Components: Hangi mantık nereye ait?

En zor zihinsel geçiş bu. Yıllarca React dünyası her şeyi tarayıcıda hesapladı. RSC seni soruyu sormaya zorlar: "Bunun gerçekten tarayıcıya ihtiyacı var mı?"

Server Component, daima:

  • Bileşenden doğrudan veritabanı sorguları (await db.users.findOne())
  • Markdown render, syntax highlighting (Shiki, MDX)
  • Tarih formatlama, uluslararasılaştırma
  • API anahtarları, secrets, env değişkenlerine erişim
  • Render başına değişmeyen ağır markup

Client Component, zorunlu:

  • useState, useEffect, useReducer
  • Event handler (onClick, onChange)
  • Tarayıcı API'leri (window, localStorage, navigator)
  • Animasyon, Drag & Drop, canlı güncellemeler

Genel kural: Tarayıcıya ihtiyaç yoksa sunucuya aittir. Tipik e-ticaret projelerinde RSC bileşenlerin yaklaşık %60-70'ini sunucuya kaydırır – bundle üzerinde doğrudan etki ile. Bu seviyede performans inşa eden, mantıklı olarak profesyonel Web App geliştirmede tutarlı şekilde uyguladığımız mimariden faydalanır.

Sık başlangıç hatası: Bir Server Component'i Client Component'e import etmek. Bu doğrudan çalışmaz – yalnızca children slot'ları veya prop'lar üzerinden mümkündür. React build hatası fırlatır. Bileşen hiyerarşisini bilinçli olarak kök düğümden planla: Server dış, Client iç, asla tersi değil.

RSC JavaScript bundle'ını nasıl drastik azaltır?

İşte performans çekici. Gerçek bir projeden örnek – tablolar, grafikler ve filtreli bir dashboard:

MimariJS Bundle (gzipped)Time to Interactive
Klasik SPA (Vite + React)480 KB4.2 sn
Next.js Pages Router (SSR)420 KB3.6 sn
Next.js App Router (RSC)145 KB1.3 sn

Neden? Tablo mantığı (sıralama, sayfalama, tarih formatlama) sunucuda yürütülür. Bundle'a yalnızca etkileşimli kısım girer: Filter dropdown'ları, sort butonları. Yüzlerce yerine birkaç kilobyte.

2024 projelerinde bizde düzenli olarak bundle bombası olmuş üç kütüphane – RSC ile ortadan kalkıyor:

  1. date-fns / dayjs – Tarih formatlama sunucuya ait. RSC: tarayıcıda 0 KB
  2. react-markdown / marked – Markdown'dan HTML'e sunucuda render. RSC: 0 KB
  3. lodash – Bir listede _.groupBy kullanıyorsan sunucuda çalışır. RSC: 0 KB

Mobil için sonuç: 4G ağda throttling ile 145 KB'lık uygulama 2 saniyenin altında yüklenir. 480 KB'lık uygulama 5+ saniye alır. Bu üç saniye bounce rate ve dönüşüm üzerinde belirleyici. Performans konusunu ciddiye alan, yüklenme süresi, performans ve e-ticaret cirosu cluster'ımızı okumalı – RSC, orada anlatılan performans bütçelerinin mantıksal devamı.

SEO Avantajı: Bekleme yerine anında indeksleme

İşte arama motoru optimizasyonundan para kazanan herkes için heyecan verici kısım. JavaScript SEO cluster'ımızda ayrıntılı anlattık: Googlebot JavaScript'i iki fazda tarar. Faz 1 ilk HTML'i alır, Faz 2 (pahalı render) günler sonra ve yalnızca crawl bütçesi yetiyorsa gelir.

Klasik bir Client-Side React uygulaması Faz 1'de yalnızca boş bir <div id="root"></div> gönderir. İçerik? Yok. Google beklemek, render planlamak, JS çalıştırmak – ve umarım indekslemek zorunda.

RSC ile:

<!-- Googlebot'un doğrudan gördüğü Faz-1 HTML'i -->
<article>
  <h1>React Server Components: SEO Avantajı 2026</h1>
  <p>React bundle'ın 800 kilobyte...</p>
  <h2>React Server Components nedir?</h2>
  <!-- Komple makale metni, hazır render edilmiş -->
</article>

Google bunu tarar. İndeksler. Anında. Faz 2 yok, bekleme yok, crawl bütçesi israfı yok. SPA için günler süren süreç, RSC ile saniyeler – tam olarak Entity SEO ve Topical Authority'nin 2026 için zorunlu kıldığı şey: erişilebilir, hızlı indekslenebilir içerik.

React SPA çalıştırıyor ve Search Console'da "Discovered – currently not indexed" görüyor musun? Bu render edilmemiş içeriğin tipik parmak izidir. Mimari yapını ücretsiz 30 dakikalık denetimle inceleyelim – RSC'nin indeksleme sorunlarını çözüp çözmeyeceğini söyleyelim. Randevu al.

Streaming ve Suspense: Boş ekran olmadan progresif render

Klasik SSR'nin sorunu: Herhangi bir şeyi tarayıcıya göndermeden önce tüm verileri bekler. Yavaş bir API tüm sayfayı bloklar – kullanıcı beyaza bakar.

RSC + Streaming bunu çözer. Sunucu HTML'i her bölge hazır oldukça parça parça gönderir. Suspense async bölgeleri işaretler:

// app/dashboard/page.jsx (Server Component)
import { Suspense } from "react"
import { SlowAnalytics } from "./SlowAnalytics"
import { FastHeader } from "./FastHeader"

export default function Dashboard() {
  return (
    <main>
      <FastHeader /> {/* Anında render edildi */}
      <Suspense fallback={<AnalyticsSkeleton />}>
        <SlowAnalytics /> {/* Yavaş API'yi bekler ama header'ı bloklamaz */}
      </Suspense>
    </main>
  )
}

Kullanıcının gördüğü:

  1. 0 ms: Header ve layout görünür
  2. 800 ms: Analytics için skeleton animasyonu
  3. 2200 ms: Gerçek analytics verisi skeleton'u değiştirir

2200 ms boş ekran yerine kullanıcı 0 ms'de anlamlı bir şey görür. Largest Contentful Paint (LCP) drastik düşer – doğrudan Core Web Vitals zaferi.

E-ticaret için oyun değiştirici: Ürün galerisi önce stream olur, yavaş yorumlar sonra gelir. Kullanıcı ürünü anında görür, kaydırabilir, satın alabilir.

React Server Components ne zaman fazlalık – dürüst değerlendirme

İhtiyacın olmayan bir aleti satmıyoruz. RSC her projede mantıklı değil.

RSC değer:

  • Veri yoğun web uygulamaları (dashboard'lar, SaaS, pazaryerleri)
  • Dinamik kataloglu, kişiselleştirilmiş önerili e-ticaret
  • İçerik ağırlıklı platformlar (dergiler, arama fonksiyonlu bloglar, forumlar)
  • Şu an 400+ KB bundle'ı olan ve mobilde performans çeken projeler

RSC fazlalık:

  • 5-10 sayfalık klasik kurumsal kartvizit siteleri
  • Form ve takipli saf pazarlama landing page'leri
  • Karmaşık etkileşimsiz statik bloglar (Astro veya Nuxt SSG burada genelde daha iyi)
  • Vue/Svelte/Solid ile çalışan projeler – migrasyon kazançtan pahalı
Storyable Felsefesi

Mimari kararlar use case'i takip eder, hype'ı değil. Storyable platformlarını Nuxt 3 (App Router'lı Next.js'in Vue muadili) ile inşa ediyoruz; ve Hannover'deki müşterilerimiz için – ister webdesign sitesi, ister online shop, ister karmaşık web uygulaması – iş problemini çözen mimariyi seçiyoruz. Bazen Next.js'te RSC mimarisi. Bazen Nuxt ile iyi eski SSG. Asla "Twitter feed'inden trend konu".

Dürüst migrasyon maliyeti değerlendirmesi

Bugün mevcut bir React SPA'yı RSC'ye migre etmek istiyorsan, gerçekçi planla:

  • Küçük uygulama (< 20 route): 2-4 hafta, App Router'a komple refactor
  • Orta uygulama (20-50 route): 6-10 hafta, kademeli migrasyon mümkün
  • Büyük uygulama (50+ route): 3-6 ay, paralel mimari gerekli

Karmaşıklık RSC'nin kendisinde değil, tanımlamada: Hangi bileşenler Server kalabilir, hangileri Client olmalı? Asıl değerli iş bu analiz – ve hattan bir daha hiç göndermediğin her bundle kilobyte'ında kendini öder.

Hannover'de birçok orta ölçekli müşterinin hâlâ 2021-2022 React SPA'larında oturduğunu, bugün mobil performans sorunları yaşadığını ve bu yüzden lokal SEO sıralamalarını kaybettiğini görüyoruz. Webdesign'da stratejik modernizasyonu ciddiye alan, 2026'da en azından bir mimari analiz yapmalı – RSC ya da eşdeğer alternatifler artık "olur mu" değil, "ne zaman" sorusudur.

Sonuç: React Server Components 2026'da yeni performans standardı

React Server Components kenar yenilik değil – iki gerçek soruna cevap: şişkin JavaScript bundle'ları ve dinamik uygulamaların SEO indekslemesi. 2026'da yeni bir Web App inşa eden veya mimarisini gözden geçiren, RSC'ye (veya Nuxt'taki Vue muadiline) yer vermek zorundadır.

Üç çıkarım:

  1. Bundle boyutu: RSC tipik React bundle'larını yarıya veya üçte bire indirir. Doğrudan mobil LCP zaferi.
  2. SEO: Sunucu render'lı içerik anında indekslenir – Faz 2 beklemesi yok, crawl bütçesi sorunu yok.
  3. UX: Streaming + Suspense boş ekranı eler ve uygulamaları teknik olduğundan daha hızlı hissettirir.

Ama: Mimari iş problemini takip eder. Kartvizit sitesi Server Components'a ihtiyaç duymaz. 50.000 veri kaydıyla SaaS platformu duyar. Burada doğru karar veren, iki yıl sonra hâlâ stabil ve hızlı bir teknik temel inşa eder – yıllık yeniden inşa edilmek yerine.

Cagri Ersöz
Cagri Ersöz

React Server Components senin projen için – mantıklı mı yoksa fazlalık mı?

Mevcut React mimarini ücretsiz 45 dakikalık atölyede analiz ediyoruz: Bundle boyutu, Search Console crawl durumu, mobil performans. Dürüst değerlendirme alıyorsun – RSC'ye migrasyon, Nuxt Islands veya basitçe SSG. Satış sunumu yok, yalnızca mimari netliği.

Sıkça Sorulan Sorular

Bu konuyla ilgili en önemli soruların hızlı cevapları

React Server Components nedir?+
React Server Components (RSC) yalnızca sunucuda render edilen ve tarayıcıya hiçbir zaman JavaScript göndermeyen bileşenlerdir. Çalıştırılabilir kod yerine seri hale getirilmiş hazır UI akışı gönderirler. Bu hem bundle boyutunu küçültür hem Time-to-Interactive'i hem de SEO indekslemesini hızlandırır.
Server ve Client Component arasındaki fark nedir?+
Server Components yalnızca sunucuda çalışır, doğrudan veritabanına erişebilir ama etkileşim sunmaz (useState, useEffect yok). Client Components tarayıcıda çalışır, etkileşimlidir ama bundle maliyeti vardır. RSC seni açık ayrıma zorlar – tarayıcıya ihtiyaç duymayan her bileşen sunucuya aittir.
React Server Components SEO'yu iyileştirir mi?+
Evet. RSC HTML'i sunucuda render ettiği ve Googlebot bu HTML'i ilk geçişte (JavaScript çalıştırmadan) taradığı için içerik anında indekslenir. Sade Client-Side React uygulaması Google'ın pahalı render kuyruğundan geçmek zorundadır – bu günler sürebilir. RSC bunu tamamen bypass eder.
React Server Components için Next.js şart mı?+
RSC üretim hazır olarak şu an yalnızca App Router mimarili framework'lerde stabildir – özellikle Next.js 14+ ve hazırlanmakta olan Remix. Saf Vite-React henüz RSC'yi stabil desteklemez. Vue/Nuxt yığınları için Nuxt Islands ve Nitro Server Components mimari olarak eşdeğer çözüm sunar.
React Server Components ne zaman gereksiz kaçar?+
Basit pazarlama siteleri, statik landing page'ler veya az etkileşimli klasik kurumsal sitelerde karmaşıklık nadiren değer. Saf Static Site Generation (SSG) yeter. RSC avantajını ancak veri yoğun web uygulamalarında ortaya koyar – sunucu verisi ile odaklı etkileşim adacıklarının karışımında.
Streaming ve Suspense RSC'de ne yapar?+
Streaming, sunucu parçaları hazır oldukça HTML'i tarayıcıya parça parça gönderir – en yavaş API'yi beklemek yerine. Suspense alanları async olarak işaretler ve veri gelene kadar fallback UI render eder. Sonuç: Kullanıcı header'ı anında görür, yavaş dashboard widget'ı sonradan gelir. Boş ekran yok, skeleton çölü yok.
İlgili Yazılar

İlgili Yazılar

Bu konu alanından diğer yazılar