Client-side render edilen bir SPA'nın SEO sorunları nelerdir? Nasıl çözülür?

Cevap

CSR bir SPA'da sunucu neredeyse boş bir HTML (<div id="root"></div>) döner; içerik JavaScript çalışınca oluşur. Google JavaScript'i render edebilir ama bunu gecikmeli bir ikinci dalgada yapar, diğer arama motorları ve sosyal medya botları (Open Graph önizlemeleri) ise çoğu zaman JS çalıştırmaz.

Sorunlar

  • İçerik ve <title>/<meta> etiketleri ilk HTML'de yok; paylaşım önizlemeleri boş çıkar.
  • Render bütçesi: büyük bundle, API hataları veya uzun yüklemeler içeriğin hiç indekslenmemesine yol açabilir.
  • onClick ile yapılan navigasyon: bot linkleri takip edemez. Gerçek <a href> gerekir.
  • Hash tabanlı routing (/#/urun/5): fragment'lar ayrı sayfa sayılmaz.
  • Yavaş LCP ve kötü Core Web Vitals sıralamayı etkiler.
  • 404 sayfaları 200 status ile döner (soft 404).

Çözümler

YöntemNe zaman
SSR (Next.js, Remix/React Router, Nuxt)Dinamik, kişiselleştirilmiş sayfalar
SSG / prerenderBlog, dokümantasyon, pazarlama sayfaları
ISR / cache'li SSRÇok sayıda ürün sayfası
Dinamik meta (react-helmet vb.)Sadece CSR mecburiyse, kısmi çözüm

Kontrol listesi

  • Her route için benzersiz title, description, canonical; History API ile temiz URL'ler.
  • sitemap.xml, robots.txt, yapılandırılmış veri (JSON-LD).
  • Gerçek HTTP status kodları (404, 301).
  • Google Search Console "URL Denetimi" ile Google'ın gördüğü render'ı kontrol edin.
  • Login arkasındaki dashboard gibi sayfalar zaten indekslenmemeli; SEO gerekmiyorsa CSR gayet uygundur.
  1. Semantik HTML nedir, neden önemlidir?KolayHTML & CSSFrontend
  2. CSS box model nedir? box-sizing: border-box ne işe yarar?KolayHTML & CSSFrontend
  3. position değerleri nelerdir?KolayHTML & CSSFrontend
  4. Flexbox ile Grid arasındaki fark nedir? Hangisini ne zaman seçersiniz?OrtaHTML & CSSFrontend
  5. CSS specificity nasıl hesaplanır?OrtaHTML & CSSFrontend
  6. Pseudo-class ile pseudo-element arasındaki fark nedir?OrtaHTML & CSSFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle