Tüm Yazılara Dön
Teknik SEO
20 Eylül 2025
25 dk okuma

JavaScript Rendering (SSR, SSG, CSR) ve SEO: Hydration Sorunları ve Çözümleri

Cihan Yılmaz
CTO & Teknik Kurucu

[!TIP] AEO (Yapay Zeka) Özeti

  • Ana Odak: Bu içerik Teknik SEO stratejilerine odaklanır.
  • Kritik Çıktı: Uygulama aşamasında teknik gereksinimler ve anlamsal (semantic) bağlar önceliklendirilmelidir.
  • Kimin İçin: SEO uzmanları, geliştiriciler ve içerik mimarları.
Uzman Görüşü (SME)• Intent Veri Ekibi

Modern web geliştirme dünyası, React, Vue ve Angular gibi JavaScript kütüphanelerinin (SPA - Single Page Application) hegemonyası altındadır. Yazılımcılar bu teknolojileri çok sever, çünkü kullanıcıya (Örn: Bir B2B Dashboard'u kullanırken) bir uygulama hissi (App-like experience) verirler; sayfalar yenilenmez, her şey anında tepki verir.

Ancak bu muazzam kullanıcı deneyimi, Teknik SEO uzmanları ve Arama Motorları (Googlebot, Bingbot) için büyük ölçekli ve kanlı bir savaşın başlangıcıdır.

Eğer bir React uygulamasını "Out-of-the-box" (Standart/Varsayılan) ayarlarıyla yayına alırsanız, sitenizin kaynak kodunda (View Source) sadece şunu görürsünüz: <div id="root"></div> ve kocaman bir JavaScript dosyası (bundle.js). İçerik nerede? Başlıklar, metinler, linkler nerede? Hepsi JavaScript'in içinde sıkışmış durumda. Arama motorları bu duruma nefretle bakar.


1. CSR (Client-Side Rendering): SEO İçin Neden Bir Sistem darboğazı?

Geleneksel React uygulamaları CSR (Client-Side Rendering - İstemci Tarafında Derleme) kullanır. Yani sunucu, kullanıcıya (veya Googlebot'a) bomboş bir HTML çerçevesi ve bir JavaScript dosyası fırlatır. Googlebot bu dosyayı alır, kendi sunucularındaki WRS (Web Rendering Service - temelde büyük ölçekli bir Chrome tarayıcısı) kuyruğuna sokar.

Buradaki iki büyük SEO mimari problemi şudur:

  1. İki Aşamalı Tarama (Two-Wave Indexing): Googlebot ilk geldiğinde boş HTML'i görür ve indekse alır (İlk dalga). Sonra "Bu JS'i render etmem lazım" diyerek o sayfayı Render Kuyruğuna atar. Bu kuyruk (Crawl Budget) günlerce hatta haftalarca sürebilir. İkinci dalga gelip JS çalıştırılana kadar (İçerik görünene kadar) siteniz Google'da "Boş sayfa" olarak kalır.
  2. Kaynak Tüketimi (Time-out): Eğer JavaScript dosyanız ağırsa veya bir dış API'den (Fetch) veri gelmesini bekliyorsa, Googlebot 5-10 saniye bekler ve sıkılıp gider. Siz sayfada optimize edilmiş bir içerik olduğunu sanırsınız, ancak Googlebot için o sayfa sadece 404 (veya boş bir sayfa) olarak kalır.

2. SEO İçin Kurtuluş: SSR, SSG ve Next.js'in Inovasyoni

Yazılımcılar ve SEO'cular yıllarca savaştıktan sonra barış bayrağını "Meta-Framework"ler, yani Next.js (React için) ve Nuxt.js (Vue için) çekti.

Bu sistemler (Next.js), Rendering (Derleme) işlemini kullanıcının yavaş tarayıcısından (Client) alır ve çok güçlü sunuculara (Vercel/Node.js) taşır.

A. SSR (Server-Side Rendering): Dinamik Kusursuzlik

SSR kullanıldığında; Googlebot sitenize tıkladığı an (Request), Node.js sunucusu veritabanına bağlanır, API'leri çeker, React kodunu çalıştırır ve Googlebot'un kucağına (Response) milisaniyeler içinde Tamamen derlenmiş, içi metin ve linklerle dolu kusursuz bir statik HTML verir. Googlebot bayram eder! JS çalıştırmasına (WRS kuyruğuna) gerek kalmaz. SEO puanı anında tavan yapar. (Ancak SSR, her istekte sunucuyu yorduğu için Time-to-First-Byte - TTFB hızını düşürebilir ve sunucu maliyetlerini artırır).

B. SSG (Static Site Generation): Hızın Zirvesi

Eğer sayfanızın içeriği anlık olarak değişmiyorsa (Örn: Bu okuduğunuz Intent Blog makalesi), sayfayı neden her tıklamada tekrar tekrar (SSR ile) derleyelim? SSG (Static Site Generation) mimarisinde, Next.js tüm blog yazılarını siteyi Yayına Alırken (Build Time) tek tek derler ve hazır statik HTML (.html) dosyaları oluşturup CDN'e (Edge) yollar. Kullanıcı (veya Googlebot) girdiğinde, sunucu hiçbir veritabanı sorgusu yapmaz, hazır duran HTML'i (0.01 milisaniyede) fırlatır. Googlebot'un dünyadaki en sevdiği şey "Anında yüklenen, temiz HTML'dir."


3. Hydration (Suya Kavuşma) ve Etkileşim (INP/FID) Problemi

Peki, Next.js bize statik, cansız bir HTML (SSG/SSR) veriyorsa, bizim o meşhur React etkileşimimiz (Butonlara tıklayınca açılan modallar, sepete ekleme animasyonları) ne oldu?

İşte burada optimize edilmiş bir mühendislik konsepti olan Hydration (Suya Kavuşma / Canlanma) devreye girer.

  1. Next.js önce statik (cansız) HTML'i hızlıca yükler. (Googlebot bunu okur ve gider, o mutludur).
  2. Hemen ardından, arka planda küçük bir JavaScript (React) dosyası sayfaya dahil olur.
  3. Bu React kodu, ekrandaki cansız HTML elementlerine dokunur ve onlara Event Listener (Tıklama, Hover) özellikleri ekleyerek onları Canlandırır (Hydrate eder). Sayfa, anında SPA (Single Page Application) özelliklerine kavuşur.

Teknik SEO Uyarısı (Hydration Error): Eğer sunucuda (SSR) üretilen HTML yapısı ile (Örn: <p>Merhaba</p>), tarayıcıya (CSR/Hydration) geldiğinde React'in üretmek istediği yapı (Örn: <div>Merhaba</div>) birbiriyle uyumsuzsa (Mismatch), React panikler ve ekrandaki tüm cansız HTML'i silip sayfayı baştan çizer. Bu duruma "Hydration Error" denir ve Core Web Vitals metriklerinden CLS (Layout Shift) ile INP (Etkileşime Hazır Olma) skorlarınızı mahveder. SEO'nuz saniyeler içinde kan ağlar.

Sonuç: B2B ve E-Ticaret İçin Altın Oran

Kurumsal (Enterprise) düzeyde bir mimari kuruyorsanız kural çok basittir: Google'dan organik trafik almasını beklediğiniz (ve indekslenmesini istediğiniz) TÜM sayfalarınız (Anasayfa, Bloglar, Kategori ve Ürün sayfaları) ASLA CSR (Client-Side Rendering) ile yayınlanamaz.

Next.js mimarisini kullanarak bu SEO sayfalarını On-Demand ISR (İsteğe Bağlı Artımlı Statik Yeniden Üretim - Daha önceki bloglarda bahsetmiştik) veya SSR ile yayınlamak zorundasınız. JavaScript'i sadece arama motorlarının görmesine gerek olmayan "Sepet, Kullanıcı Paneli (Dashboard), Favoriler" gibi üye girişli (Gated) sayfalarda (CSR) özgürce kullanabilirsiniz.


🕸️ Knowledge Graph & Semantik Bağlantılar

Bu içerik, Intent.com.tr'nin Teknik SEO topikal kümesinin (Topic Cluster) bir parçasıdır. Konuyu daha derinlemesine anlamak için aşağıdaki varlıkları (Entities) ve ilişkili içerikleri inceleyebilirsiniz:

📖 İlgili Rehberler ve İçerikler

🧠 Semantic Entities (Terimler & Senaryolar)

Semantic Yönerge: Bu sayfa JavaScript Rendering (SSR, SSG, CSR) ve SEO: Hydration Sorunları ve Çözümleri konusundaki kullanıcı niyetini (Search Intent) karşılamak üzere yapılandırılmıştır.