Server Side Rendering (SSR), web sayfalarının HTML içeriğinin sunucu üzerinde oluşturulmasıdır. Tarayıcıya, JavaScript’in içeriği oluşturmasını beklemeden, doğrudan işlenmiş ve hazır bir HTML sayfası gönderilir.
Server Side Rendering Nasıl Çalışır?

Server Side Rendering (SSR), adından da anlaşılacağı gibi, web sayfasının HTML içeriğinin kullanıcının tarayıcısında değil, sunucuda işlenerek hazırlanması yöntemidir. Yani kullanıcı, boş bir sayfa alıp sonra içeriğin yüklenmesini beklemez; sayfa, hazır halde ve hızlıca sunucudan gelir.
Server Side Rendering Ne Yapar?
- İstemciye (browser) bir istek gönderir.
- Sunucu bu isteği alır, gerekli verileri çeker ve HTML’i oluşturur.
- Oluşturulan HTML, doğrudan kullanıcıya gönderilir.
- Tarayıcı bu HTML’yi alır ve ekrana yansıtır.
Yani “önce sayfa, sonra JavaScript” yerine, “önce HTML, sonra JavaScript” yaklaşımıdır.
Basit örnekle açıklayalım
Diyelim ki bir haber sitesine girdin:
- SSR varsa: Manşet haberi, görseller, başlıklar ve metin yüklenmeden önce görünür.
- CSR (Client Side Rendering) varsa: Önce sayfa iskeleti (sadece header ve boş kutular) gelir, sonra haber içerikleri yüklenmeye başlar.
SSR, özellikle ilk yükleme hızı ve arama motorlarının sayfayı anlayabilmesi açısından büyük avantaj sağlar.
SSR Hangi Yapı Taşlarını Kullanır?
| Katman | Görevi |
|---|---|
| Sunucu | İstekleri alır, sayfa içeriğini üretir |
| Template Engine | HTML şablonları üretir (ör: JSX, EJS) |
| Veritabanı/API | Dinamik içerikleri sağlar |
| Frontend Library | Sayfa bileşenlerini tanımlar (React, Vue) |
Modern JavaScript uygulamalarında SSR genellikle Next.js (React için) ya da Nuxt.js (Vue için) gibi framework’ler aracılığıyla yapılır. Bu yapılar hem HTML üretir hem de sonrasında interaktifliği devreye sokar.
SSR ile Client Side Rendering Arasındaki Farklar Nedir?

Server Side Rendering (SSR) ile Client Side Rendering (CSR), modern web uygulamalarının iki temel render (sayfa oluşturma) yaklaşımıdır. Temel fark, HTML çıktısının nerede oluşturulduğudur: sunucuda mı, tarayıcıda mı?
Tanım farkı ile başlayalım:

| Render Yöntemi | HTML Nerede Oluşur? | Sayfa Ne Zaman Görünür? |
|---|---|---|
| SSR | Sunucuda | İstekten hemen sonra |
| CSR | Tarayıcıda (Client Side) | JavaScript yüklendikten sonra |
İşleyiş farkı: Adım adım karşılaştırma
Server Side Rendering (SSR)
- Tarayıcı bir HTTP isteği gönderir.
- Sunucu verileri toplar ve HTML’yi oluşturur.
- Tam sayfa tarayıcıya gönderilir.
- Tarayıcı sayfayı hemen görüntüler.
- JavaScript sonradan yüklenir (interaktivite eklenir).
Client Side Rendering (CSR)
- Tarayıcı temel HTML iskeletini alır (genellikle boş).
- JavaScript dosyaları yüklenir.
- JavaScript çalışır, verileri API’lerden çeker.
- Sayfa tarayıcıda oluşturulur.
- Kullanıcı içerikle daha geç karşılaşır.
Teknik karşılaştırma tablosu
| Kriter | SSR (Sunucu Tabanlı) | CSR (İstemci Tabanlı) |
|---|---|---|
| İlk Görünüm Süresi | Daha hızlı | Daha yavaş |
| SEO Uygunluğu | Yüksek | Düşük / Ek yapı gerekir |
| Sunucu Yükü | Yüksek | Düşük |
| Uygulama Hızı (Etkileşim) | Orta | Yüksek (JS yüklendikten sonra) |
| Kod Karmaşıklığı | Orta | Düşük / Basit SPA mimarisi |
| İlk Yükleme Boyutu | Düşük | Yüksek (JS dosyaları ağır olur) |
| Sosyal Medya Ön İzleme | Uyumlu | Uyumlu değil (meta veriler geç gelir) |
Basit bir örnek: Restoran menü sitesi
Server Side Rendering:
- Sayfa yüklendiğinde tüm menü kalemleri hazır gelir.
- Arama motorları bu menüyü kolayca tarar.
- Paylaştığında, sosyal medya kartı doğru çıkar.
Client Side Rendering:
- Sayfa geldiğinde menü henüz boş olabilir.
- JavaScript çalışana kadar içerik görünmez.
- Google tarayıcı gibi davranmazsa menüyü göremez.
Peki hangisi daha iyi?
- SEO önemliyse → SSR
- Kullanıcı ilk yüklemeyi hızlı hissetsin diyorsan → SSR
- SPA (Single Page App) yapısı gerekiyorsa → CSR
- Uygulama ağırlıklı bir deneyimse (ör: dashboard) → CSR
Ancak günümüzde hibrit çözümler öne çıkıyor. Örneğin Next.js, aynı projede hem SSR hem CSR kullanmana izin verir. Böylece sayfa türüne göre en uygun render yöntemi seçilebilir.
SSR Hangi Teknolojilerle Uygulanır?
Server Side Rendering (SSR), geçmişte yalnızca klasik sunucu tabanlı sistemlerde (örneğin PHP veya .NET) yaygınken, artık modern JavaScript framework’leri sayesinde çok daha esnek ve güçlü hale geldi. Artık sadece içerik değil, tam etkileşimli uygulamalar da sunucuda render edilebiliyor.
En yaygın kullanılan SSR teknolojileri

1. Next.js (React)
- En popüler SSR çözümüdür.
- React bileşenlerini sunucu tarafında render eder.
- API Routes, ISR (Incremental Static Regeneration) ve hybrid rendering özellikleriyle esnektir.
- Shopify, Netflix ve TikTok gibi markalar tarafından kullanılır.

2. Nuxt.js (Vue)
- Vue.js için SSR yetenekleri sağlar.
- Otomatik yönlendirme (routing), meta tag yönetimi ve dinamik içerik sunumu desteklidir.
- İçerik ağırlıklı siteler ve blog yapıları için idealdir.

3. Angular Universal
- Angular uygulamalarını sunucuda render etmek için kullanılır.
- İlk açılış hızını artırmak ve SEO uyumunu geliştirmek için geliştirilmiştir.
- Kurumsal web projelerinde tercih edilir.

4. SvelteKit
- Svelte framework’ünün SSR destekli versiyonudur.
- Hafif, hızlı ve modern bir yapı sunar.
- Henüz genç bir teknoloji olsa da çok hızlı gelişmektedir.
Diğer SSR destekli teknolojiler
| Teknoloji / Platform | Açıklama |
|---|---|
| Express.js + EJS/Pug | Geleneksel Node.js + template engine kombinasyonu |
| Ruby on Rails | Built-in SSR mantığıyla HTML sayfalar üretir |
| ASP.NET MVC | .NET platformu üzerinde SSR sağlar |
| PHP / Laravel | Blade templating engine ile sunucu tarafı render yapılabilir |
Hangi teknoloji hangi projeye uygun?
| Proje Türü | Önerilen SSR Teknolojisi | Neden? |
|---|---|---|
| İçerik ağırlıklı blog / haber sitesi | Nuxt.js / Next.js | SEO uyumu ve hızlı sayfa yükleme |
| Kurumsal web sitesi | Angular Universal | TypeScript desteği ve kurumsal ölçekleme |
| E-ticaret sitesi | Next.js | ISR ve dinamik veri ile esnek yapı |
| Web uygulaması (dashboard vs.) | CSR + SSR (Hibrit) | Kritik sayfalar SSR, dashboard’lar CSR |
| Geliştirici blogu / kişisel site | SvelteKit / Nuxt Content | Hafiflik, basitlik, markdown uyumu |
Yeni nesil yetenekler: Hibrit render
Modern SSR sistemleri artık sadece “sunucu ya da istemci” ayrımı yapmaz. Next.js ve Nuxt 3 gibi framework’ler, her sayfa için ayrı ayrı şunları seçmeye izin verir:
getServerSideProps()→ SSRgetStaticProps()→ Static GenerationuseEffect()→ CSR
Bu da projelerde yüksek performans + iyi SEO + hızlı etkileşim kombinasyonunu mümkün kılar.
SSR SEO Açısından Neden Avantajlıdır?
Server Side Rendering (SSR), SEO uyumu yüksek web sayfaları üretir. Çünkü içerik, JavaScript’in çalışmasını beklemeden doğrudan HTML içinde sunulur. Bu, arama motorlarının sayfa içeriğini daha hızlı ve eksiksiz tarayabilmesini sağlar.
Google sayfanızı nasıl render eder?
Googlebot, modern web sitelerini iki aşamalı bir işlemle işler:
- İlk aşamada HTML içeriği tarar.
- Eğer sayfa JavaScript kullanıyorsa, ikinci aşamada render için bekler.
Bu süreçte:
- JavaScript ağırsa ya da doğru yapılandırılmamışsa, Google içeriği göremez.
- Bu da indeksleme sorunlarına yol açar.
SSR sayesinde bu risk ortadan kalkar. Çünkü HTML, ilk anda tam ve eksiksiz olarak hazırdır.
Neden Google SSR’i tercih eder?
| SEO Faktörü | SSR Etkisi |
|---|---|
| İlk HTML içeriği | Tam olarak gelir, taranabilir olur |
| Meta etiketler | Doğrudan sayfa içinde görünür, sosyal medya uyumu sağlar |
| Hızlı sayfa yükleme | İlk içerik daha hızlı gelir → düşük bounce rate |
| Kanonik URL yönetimi | Dinamik yapılar bile doğru şekilde kontrol edilir |
| Structured Data | Schema verileri HTML içinde sunulabilir |
SSR ile SEO performansı nasıl değişir? (Örnek veri)
Google’un Web.dev üzerindeki verilerine göre:
SSR kullanılan sitelerde arama motoru tarama oranı %32 daha yüksek,
CSR kullanılan sayfalarda ise tarama hatası riski %23 daha fazla.
Ayrıca, SEO uzmanları için temel KPI’lar olan:
- Time to First Byte (TTFB)
- First Contentful Paint (FCP)
- Crawl Budget kullanımı
gibi metriklerde SSR projeleri her zaman daha iyi skorlar üretir.
Örnek kullanım: Blog sayfası
Diyelim ki SEO odaklı bir blog yayınlıyorsun.
- CSR kullanırsan: Google içerikleri görmeden sayfayı indeksleyebilir.
- SSR kullanırsan: Başlıklar, açıklamalar, içerikler ve structured data doğrudan sunulmuş olur.
Bu fark, özellikle düşük otoriteli sitelerde daha hızlı sıralama almak anlamına gelir.
SSR ile sosyal medya uyumu
Sadece Google değil; Facebook, Twitter, LinkedIn gibi sosyal medya platformları da meta tag’leri HTML’den çeker. SSR bu etiketleri sunucu tarafında ürettiği için:
- Open Graph
- Twitter Card
- Meta Description
- Title
gibi veriler doğru ve eksiksiz şekilde sosyal medya ön izlemelerinde görünür.
SSR, SEO başarısını neden hızlandırır?
- İçerik görünürlüğü garanti altına alınır.
- Sayfa yükleme süreleri kısalır.
- Google’ın iş yükü azaltılır.
- Meta tag ve schema gibi veriler doğrudan çıkarılabilir.
SSR Performansa Nasıl Katkı Sağlar?
Server Side Rendering (SSR), sayfanın ilk yükleme süresini kısaltarak kullanıcıya daha hızlı bir deneyim sunar. HTML çıktısı tarayıcıya hazır şekilde gönderildiği için, içerikler daha kısa sürede görünür hale gelir. Bu fark, özellikle ilk izlenim açısından kritiktir.
Performans metrikleri SSR ile nasıl etkilenir?
1. Time to First Byte (TTFB)
→ Tarayıcı isteği gönderdiğinde, ilk yanıtın gelme süresidir.
SSR’de düşüktür. Çünkü HTML içerik doğrudan sunulur.
2. First Contentful Paint (FCP)
→ Sayfadaki ilk içerik öğesinin (metin/görsel) görünme süresi.
SSR’de daha erkendir. Çünkü içerik JavaScript’e bağlı değildir.
3. Largest Contentful Paint (LCP)
→ Sayfadaki en büyük görsel veya metnin yüklenme süresi.
SSR, LCP’yi optimize eder. Sunucu daha ağır içerikleri önden hazırlar.
4. Time to Interactive (TTI)
→ Sayfanın etkileşimli hale gelme süresi.
SSR’de bu biraz daha geç olabilir, çünkü JavaScript sonradan yüklenir.
SSR ile CSR karşılaştırmalı performans tablosu
| Metrik | SSR | CSR |
|---|---|---|
| İlk HTML görünümü | 0.3 – 0.8 saniye | 1.5 – 4 saniye |
| JavaScript bağımlılığı | Düşük | Yüksek |
| Sayfa iskelet süresi | Anında | Gecikmeli |
| API çağrı yükü | Sunucu üzerinde | Tarayıcıya biner |
| Toplam yük süresi | Düşük – Orta | Orta – Yüksek |
Kullanıcı deneyimine etkisi nedir?
- Kullanıcı daha az bekler. İlk içerik hemen görünür.
- Algılanan hız artar. Sayfa “açıldı” hissi daha erken gelir.
- Kullanıcı terk oranı düşer. Boş ekran bekletmesi azalır.
Google’a göre, sayfa yüklemesi 1 saniye uzarsa bounce rate %32 artar.
SSR her zaman daha hızlı mı?
Hayır. SSR, ilk yükleme süresini kısaltsa da:
- Yüksek trafik altında sunucu CPU’su yorulabilir.
- Etkileşimli öğeler için JavaScript’in yüklenmesi gerekir.
Bu yüzden genellikle önbellekleme, CDN kullanımı ve hybrid rendering yöntemleriyle desteklenir.
Performansı optimize eden SSR teknikleri
- Response cache (Edge caching): Sık ziyaret edilen sayfaları statik olarak saklar.
- Incremental Static Regeneration (Next.js): İçeriği SSR gibi sunar ama tekrar hesaplamaz.
- Lazy loading + code splitting: JavaScript sadece gerektiğinde yüklenir.
- Streaming SSR (React 18): HTML çıktısı parça parça gönderilir, sayfa daha da hızlı görünür.
Gerçek dünya örneği: e-ticaret sitesi
Bir e-ticaret sitesinde:
- SSR sayesinde: Ürün görselleri, fiyatlar, açıklamalar kullanıcıya ilk 0.5 saniyede görünür.
- CSR kullansaydı: Boş iskelet görünür, 2–3 saniye içinde ürünler yüklenmeye başlardı.
Kullanıcı daha hızlı karar verir, sitede kalma süresi artar, dönüşüm oranı yükselir.
Hangi Durumlarda SSR Tercih Edilmelidir?
Server Side Rendering (SSR), hızlı içerik sunumu ve SEO uyumu gerektiren projelerde tercih edilmelidir. Özellikle ilk görünümün önemli olduğu, tarayıcıya içerik yetiştirme hızının kullanıcı davranışını etkilediği senaryolarda SSR çok güçlü sonuçlar verir.
SSR’nin tercih edilmesi gereken başlıca durumlar
1. SEO’nun kritik olduğu projeler
- Bloglar, haber siteleri, döküman sayfaları, landing page’ler.
- Google içerikleri doğrudan HTML üzerinden görmelidir.
2. İlk yükleme hızının önemli olduğu sayfalar
- E-ticaret ürün sayfaları, ana sayfalar, kategori sayfaları.
- Kullanıcı deneyimini artırmak ve bounce rate’i azaltmak için ilk içerik hızlı gelmelidir.
3. Sosyal medya ile paylaşımı yapılan sayfalar
- Sayfa, paylaşım anında meta etiketleriyle birlikte hazır olmalıdır.
- Twitter Card, Open Graph gibi yapılar SSR ile tam uyumlu çalışır.
4. Dinamik ama önceden tahmin edilebilen sayfalar
- Ürün detay sayfaları, blog gönderileri gibi URL’si bilinen içerikler.
- SSR bu içerikleri cache’le birlikte sunarak hızı sabit tutabilir.
5. Yüksek trafik alan sayfalarda statik HTML ihtiyacı
- SSR + CDN + cache kombinasyonu ile trafik yükü kontrol altına alınabilir.
- Sayfa üretimi sunucuda olur ama önbellekten servis edilir.
SSR’nin mantıklı olmadığı durumlar
- Gerçek zamanlı dashboard’lar
- Tamamen kullanıcı etkileşimiyle çalışan SPA’lar
- Sadece oturum açmış kullanıcıya özel içerikler (SSR gereksiz yük olur)
- Aşırı etkileşimli oyun ya da grafik ağırlıklı uygulamalar
Bu gibi senaryolarda Client Side Rendering veya Static Site Generation (SSG) daha verimli olabilir.
Karar verirken hangi kriterler önemli?
| Kriter | SSR Uygunluğu |
|---|---|
| SEO önceliği | Yüksek |
| İçerik değişim sıklığı | Orta – Yüksek |
| Kullanıcı etkileşimi seviyesi | Orta düzeyde |
| Paylaşılabilirlik | Gerekiyor |
| Trafik yoğunluğu | Optimize edilebilir |
Gerçek dünya örnekleri
| Proje Türü | SSR Tercihi | Açıklama |
|---|---|---|
| Blog / İçerik sitesi | ✅ | SEO için hızlı HTML sunumu |
| Ürün listeleme sayfası | ✅ | Kullanıcı ilk anı hızlı yaşamalı |
| Yönetim paneli | ❌ | Dinamik veri + kullanıcıya özel içerik |
| Etkileşimli harita | ❌ | JS yoğunluğu yüksek, SSR maliyetli olur |
| Kampanya sayfası | ✅ | Sosyal medya paylaşımlarında meta görünmeli |
Geliştirici ipucu
Next.js gibi hibrit framework’lerde, sayfa bazlı karar verilebilir:
- Ürün detay sayfası →
getServerSideProps()ile SSR yapılır. - Sepet sayfası →
useEffect()ile sadece tarayıcıda yüklenir (CSR).
Bu da SSR’yi sadece ihtiyaç duyulan yerde kullanma esnekliği sağlar.
SSR’in Dezavantajları Nelerdir?
Server Side Rendering (SSR) birçok avantaj sunsa da, her teknoloji gibi bazı sınırlamaları ve dikkat edilmesi gereken yönleri vardır. Özellikle performans, geliştirme süreci ve maliyet açısından bazı zorluklar barındırır.
1. Sunucu Yükü Artar
SSR’de her sayfa isteği, sunucunun gerçek zamanlı HTML üretmesi anlamına gelir. Bu da:
- Yüksek trafikte CPU kullanımını artırır.
- Sunucunun yanıt süresini uzatabilir.
- Ölçeklenebilirliği zorlaştırır.
Örnek: Aynı anda 10.000 kişi bir sayfaya girerse, sunucu 10.000 ayrı HTML çıktısı üretmek zorundadır.
2. Sayfa Etkileşimi Gecikebilir
SSR sayfaları ilk anda içerik gösterir, ama JavaScript sonradan yüklenir. Bu süreç tamamlanana kadar:
- Butonlar çalışmayabilir.
- Sayfa kaydırma ya da filtreleme işlevleri aktif olmayabilir.
- Bu durum “görünen ama donuk” sayfa hissi yaratabilir.
3. Hosting Maliyeti Daha Yüksektir
Statik dosya sunucuları (örn: Vercel, Netlify) çoğu zaman ücretsiz veya ucuzdur. Ama SSR için:
- Node.js destekli sunucular gerekir.
- Daha güçlü işlemcili altyapı istenir.
- Cache ve yük dengeleyici sistemleri gerekebilir.
Bu da özellikle büyük projelerde operasyonel maliyeti artırır.
4. Geliştirme Süreci Karmaşıklaşabilir
SSR’de:
- Hem istemci hem sunucu ortamı düşünülmelidir.
window,documentgibi tarayıcıya özel objeler doğrudan kullanılamaz.- Verilerin doğru lifecycle içinde çekilmesi gerekir.
Bu da özellikle yeni başlayanlar için hata yapma riskini artırır.
5. Gerçek zamanlı içeriklerde verimsiz olabilir
Kullanıcılara özel anlık içerik (ör: kullanıcı panosu, mesajlar, sepet içeriği) SSR ile gönderildiğinde:
- Her kullanıcı için ayrı sayfa üretimi gerekir.
- Bu durum cache kullanmayı zorlaştırır.
- Aynı veri tekrar tekrar hesaplanır.
Bu gibi senaryolarda Client Side Rendering veya API üzerinden veri çekme daha uygundur.
Özetle: SSR’in dezavantajları ne zaman sorun olur?
| Dezavantaj | Etki Alanı | Alternatif / Çözüm |
|---|---|---|
| Yüksek sunucu yükü | Trafik yoğun projeler | CDN cache, ISR, edge rendering |
| Etkileşim gecikmesi | JS ağırlıklı uygulamalar | Hydration optimizasyonu |
| Geliştirme karmaşıklığı | Yeni başlayan ekipler | Framework dokümantasyonları |
| Hosting maliyeti | KOBİ projeleri / düşük bütçe | Static generation + CDN |
| Gerçek zamanlı içerik | Kullanıcı odaklı sayfalar | CSR veya CSR+SSR hibrit yaklaşımı |
SSR ile Statik Site Üretimi (SSG) Arasındaki Fark Nedir?
Server Side Rendering (SSR) ve Static Site Generation (SSG), içerik üretimi açısından farklı zamanlarda çalışan iki render yaklaşımıdır. SSR, HTML’yi her istek anında üretirken, SSG HTML’yi build (derleme) anında oluşturur. Yani biri dinamik, diğeri statiktir.
Temel fark: İçerik ne zaman hazırlanır?
| Özellik | SSR | SSG |
|---|---|---|
| HTML Oluşturma Zamanı | Her istek sırasında | Derleme aşamasında (build time) |
| Hız | İlk yükleme hızlı, ancak sunucuya bağlı | Süper hızlı (CDN’den doğrudan sunulur) |
| SEO Uyumu | Yüksek | Yüksek |
| Dinamik İçerik Desteği | Güçlü | Sınırlı (veri değiştikçe yeniden derleme gerekir) |
| Trafik Karşılaması | Optimize edilmesi gerekir | Yüksek trafik kolayca karşılanır |
SSR ve SSG ne zaman kullanılır?
SSR için ideal senaryolar:
- Ürün detay sayfaları
- Kullanıcıya özel içerikler
- Güncel veri gerektiren sayfalar (ör: fiyat, stok, haber)
- SEO kritik ve dinamik içerik bir aradaysa
SSG için ideal senaryolar:
- Hakkımızda, iletişim, landing page gibi sabit içerikler
- Bloglar (içerik sık değişmiyorsa)
- Dökümantasyon sayfaları
- Kişisel siteler, portfolyolar
Teknik karşılaştırma
| Teknik Kriter | SSR | SSG |
|---|---|---|
| API isteği | Her istek için çağrılır | Derleme sırasında bir kere yapılır |
| CDN Kullanımı | Zorunlu değil, cache ile desteklenir | CDN ile tam uyumludur |
| Yüksek trafik toleransı | Sunucu kaynaklarına bağlıdır | Çok yüksek (statik dosyalar dağıtılır) |
| Güncelleme ihtiyacı | Anlık güncellenir | Yeni build yapılmadan güncellenmez |
| Önbellek kullanımı | Cache stratejileri gerekir | Doğal olarak cache’lenebilir |
Örnek kullanım: Blog sayfası
SSG:
- Yazılar haftada 1 kez güncelleniyorsa
- Build süresi birkaç saniyeyse
- CDN ile global dağıtım hedefleniyorsa
SSR:
- Her yazıya ziyaretçi sayısı gibi gerçek zamanlı veri ekleniyorsa
- İçeriğin kullanıcıya göre değişmesi gerekiyorsa (giriş yapmış kullanıcı)
Hibrit kullanım: En iyi çözüm
Modern framework’ler (Next.js, Nuxt 3) her sayfa için ayrı render stratejisi belirlemene izin verir:
// Next.js örneği:
export async function getStaticProps() {} // SSG
export async function getServerSideProps() {} // SSR
Bu sayede:
- Ana sayfa → SSG
- Ürün sayfası → SSR
- Sepet sayfası → CSR
gibi bir hibrit mimari kurulabilir.
SSR Uygularken Dikkat Edilmesi Gerekenler Nelerdir?
Server Side Rendering (SSR), doğru uygulandığında performans ve SEO açısından büyük avantajlar sağlar. Ancak yanlış yapılandırıldığında, sunucuya fazla yük, yavaş sayfalar ve bozulmuş kullanıcı deneyimi gibi sorunlara neden olabilir.
1. API ve veri yönetimi stratejisi belirlenmeli
SSR, her istek sırasında gerçek zamanlı veri çeker. Bu, performansı etkileyebilir. Aşağıdaki konulara dikkat edilmelidir:
- Ağır API sorgularından kaçınılmalı
- Verilerde cache stratejileri uygulanmalı
- Zaman aşımlarına karşı hata kontrolü yapılmalı
Next.js kullanan projelerde getServerSideProps fonksiyonu içinde tüm veriler önceden alınmalı ve minimum yükte sunulmalı.
2. Önbellekleme (caching) mutlaka uygulanmalı
SSR sayfalar, her istekte yeniden oluşturulmamalı. Bu, hem gereksiz CPU tüketimine hem de yavaşlamalara neden olur.
Kullanılabilecek önbellekleme teknikleri:
- CDN cache (Vercel, Cloudflare)
- HTTP cache headers (Cache-Control, ETag)
- Redis gibi sunucu tarafı cache sistemleri
- Incremental
3. Güvenlik açıklarına karşı korunmalı
SSR ortamı hem istemci hem sunucu tarafında çalışır. Bu da potansiyel açıkları ikiye katlar.
Dikkat edilmesi gerekenler:
- Kullanıcı verisi sunucu üzerinden dönüyorsa, doğrulama yapılmalı
- XSS (Cross-site Scripting) açıkları kontrol edilmeli
- Sunucu hataları kullanıcıya yansıtılmamalı
- Sensitive environment verileri tarayıcıya sızmamalı
Environment değişkenleri sadece sunucu tarafında erişilebilir olarak tanımlanmalı (process.env.SECRET_KEY gibi).
4. Hydration süreci optimize edilmeli
SSR sayfaları HTML ile gelir, ama sonrasında JavaScript’in tekrar devreye girmesi gerekir (hydration). Bu geçiş süreci yavaşsa:
- Sayfa “görünüyor” ama etkileşim çalışmıyor gibi hissedilir.
- Kullanıcı tıklamalara tepki alamaz.
Bu yüzden:
- Kod bölme (code splitting) yapılmalı
- Gereksiz JS bağımlılıkları kaldırılmalı
- Lazy loading ile sadece gerekli bileşenler yüklenmeli
5. Meta tag ve structured data yönetimi unutulmamalı
SSR ile SEO hedefleniyorsa, meta veriler sayfa bazlı dinamik olarak oluşturulmalı. Özellikle:
title,description,og:*,twitter:*etiketleri- JSON-LD formatında schema markup
- Canonical ve hreflang etiketleri
Next.js için next/head, Nuxt için head() fonksiyonu kullanılmalı.
6. Render hatalarına karşı sağlam yapı kurulmalı
SSR’de render işlemi sunucu tarafında gerçekleştiği için küçük bir hata bile tüm sayfayı çökertir.
Öneriler:
- Try/catch blokları kullanılmalı
- API cevapları her zaman kontrol edilmeli
- 500 hataları log’lanmalı ama kullanıcıya detay verilmemeli
7. İzleme ve loglama araçları entegre edilmeli
SSR uygulamalarında performans sorunlarını erken tespit etmek için:
| İzleme Aracı | Kullanım Amacı |
|---|---|
| Sentry | Sunucu hata logları |
| LogRocket | Kullanıcı davranış analizi |
| Datadog | Performans metrikleri |
| Google Analytics | Sayfa bazlı kullanıcı etkileşimi |
SSR uygularken yapılmaması gereken yaygın hatalar
| Hata | Sonuç |
|---|---|
Tüm sayfalarda getServerSideProps kullanmak | Gereksiz sunucu yükü |
| Kötü yapılandırılmış cache kullanımı | Yanlış veri veya eski içerik |
| Tüm işlemleri sunucuya yıkmak | Aşırı CPU tüketimi |
| İstemciye özel veriyi SSR ile sunmak | Güvenlik açığı riski |
Modern Web Framework’leri SSR’i Nasıl Destekler?
Modern frontend framework’leri, sadece interaktif kullanıcı arayüzleri üretmekle kalmaz, aynı zamanda Server Side Rendering (SSR) yeteneklerini de entegre biçimde sunar. Her framework, SSR sürecini farklı bir mimariyle uygular; kimisi dosya tabanlı routing sunar, kimisi lifecycle yönetimini geliştiricinin kontrolüne bırakır.
Next.js (React)
SSR Desteği: Çok güçlü
getServerSidePropsfonksiyonu sayesinde her sayfa isteğinde dinamik HTML üretilebilir.- Hybrid render özelliği ile aynı projede SSR, SSG ve CSR birlikte kullanılabilir.
Avantajları:
- Otomatik routing ve API routes desteği
- ISR (Incremental Static Regeneration) özelliği ile cache + SSR bir arada
- React 18 ile birlikte Streaming SSR ve React Server Components desteği
Kullanım Örneği:
export async function getServerSideProps(context) {
const res = await fetch(`https://api.example.com/data`)
const data = await res.json()
return { props: { data } }
}
Nuxt.js (Vue)
SSR Desteği: Yerleşik olarak gelir
- Nuxt, Vue projeleri için SSR’yi varsayılan olarak destekler.
- Sayfa yönlendirme, meta tag yönetimi ve data fetching işlemleri SSR’ye uygun biçimde yapılandırılmıştır.
Avantajları:
- Dosya tabanlı routing sistemi
asyncDatavefetchmetodlarıyla veri çekimi kolay- SSR, SSG, SPA arasında tek ayarla geçiş yapılabilir
Kullanım Örneği:
export default {
async asyncData({ $axios }) {
const data = await $axios.$get('/api/data')
return { data }
}
}
Angular Universal (Angular)
SSR Desteği: Ayrı modül ile gelir
- Angular, SSR’yi doğrudan desteklemez; Angular Universal eklentisi ile sağlanır.
- Tam TypeScript desteği ile kurumsal projelerde tercih edilir.
Avantajları:
- Google destekli framework, SEO açısından güvenilir
- Router geçişleri sunucu tarafında da çalışır
- Tam erişilebilirlik ve performans odaklı yapı
Dezavantajları:
- Kurulumu ve bakımı diğerlerine göre daha karmaşıktır
- Build süreçleri uzun sürebilir
SvelteKit (Svelte)
SSR Desteği: Doğrudan entegre
- SvelteKit, Svelte bileşenlerini hem client hem server tarafında çalıştırabilir.
load()fonksiyonu SSR için veri çekimi sağlar.
Avantajları:
- Aşırı hafif ve hızlı
- Sade API yapısı, karmaşık yapı gerektirmez
- Streaming SSR desteği planlı
Kullanım Örneği:
export async function load({ fetch }) {
const res = await fetch('/api/data')
const data = await res.json()
return { data }
}
Karşılaştırmalı Framework Tablosu
| Framework | SSR Desteği | Hybrid Render | CDN Uyumu | Kurulum Zorluğu |
|---|---|---|---|---|
| Next.js | Evet | Evet | Tam | Kolay |
| Nuxt.js | Evet | Evet | Tam | Kolay |
| Angular Universal | Evet | Kısıtlı | Var | Zor |
| SvelteKit | Evet | Evet | Tam | Orta |
Hangi Framework Kim İçin?
| Kullanıcı Profili | Önerilen Framework | Neden? |
|---|---|---|
| React geliştiricisi | Next.js | Ekosistemi güçlü, geniş kaynak |
| Vue geliştiricisi | Nuxt.js | Otomatik yapılandırma, sade API |
| Kurumsal/Enterprise ekip | Angular Universal | Tip güvenliği, entegre altyapı |
| Yeni nesil minimalist ekip | SvelteKit | Hızlı, yalın, düşük bundle size |
SSR Örnek Kullanım Senaryoları Nelerdir?
Server Side Rendering (SSR), farklı sektörlerde ve ölçeklerde dijital projelere entegre edilebilen esnek bir render çözümüdür. Özellikle SEO, ilk yükleme hızı ve kullanıcı deneyimi gerektiren alanlarda öne çıkar.
1. E-Ticaret Siteleri
Hedef:
- Ürün sayfalarının hızlı açılması
- SEO dostu içerik sunulması
- Meta verilerin sosyal paylaşımda düzgün görünmesi
Uygulama:
- SSR ile ürün başlığı, açıklaması ve fiyat gibi bilgiler ilk anda kullanıcıya sunulur.
- Sepet veya kullanıcıya özel bölümler CSR ile yüklenir.
Örnek:
- Zalando, ASOS, Nike gibi global e-ticaret siteleri SSR kullanır.
- Next.js + Vercel altyapısı yaygındır.
2. Haber Siteleri
Hedef:
- İçeriğin hızlı görünmesi
- Google News ve Discover gibi kaynaklarda düzgün indeksleme
Uygulama:
- SSR ile makale başlıkları ve gövdesi anında görünür.
- Yorumlar ve dinamik içerikler sonradan yüklenebilir.
Örnek:
- BBC, The Guardian, Hürriyet gibi medya platformları SSR temelli çözümler kullanır.
3. Bloglar ve İçerik Odaklı Siteler
Hedef:
- Arama motoru sıralamasında görünürlük
- Sosyal medya ön izlemelerinin doğru çalışması
Uygulama:
- Yazı başlığı, açıklama, Open Graph verileri SSR ile gelir.
- Etkileşimli bölümler (yorum, beğeni) client tarafında çalışır.
Örnek:
- Dev.to, Hashnode, Vercel Blog – tümü SSR ve SSG hibrit yapı kullanır.
4. Landing Page (Kampanya Sayfaları)
Hedef:
- Hızlı yükleme
- Google Ads kalite skoru iyileştirme
- A/B test uyumu
Uygulama:
- Kampanya başlığı, açıklaması ve görseller SSR ile ilk anda gelir.
- Form, etkileşim ve dönüşüm elementleri JavaScript ile entegre olur.
Örnek:
- Stripe, Hubspot, Notion gibi SaaS şirketleri bu yapıyı kullanır.
5. Oyun ve Eğlence Platformları
Hedef:
- SEO’da oyun isimlerinin ve içeriklerinin görünürlüğü
- Kategori ve detay sayfalarında hızlı deneyim
Uygulama:
- Oyun listeleri, açıklamalar, içerik kartları SSR ile gelir.
- Oyun oynama alanı, interaktif görseller CSR ile yüklenir.
Örnek:
- Twitch, Steam Store, Miniclip gibi platformlar hibrit SSR mimarisi kullanır.
6. Dashboard ve Admin Panelleri
Genelde SSR önerilmez çünkü kullanıcıya özel veriler, oturum tabanlı bilgiler içerir. Ancak:
Uygulama (istisnai durumlarda):
- Admin panelinin giriş ekranı SSR ile yüklenebilir (örn. SEO gerektiren yardım sayfası).
- Geri kalan tüm alanlar CSR ile çalışır.
Stratejik kullanım: Hibrit senaryo
SSR, çoğu zaman tek başına değil, diğer render yöntemleriyle birlikte kullanılır:
| Sayfa Türü | Render Yöntemi | Neden? |
|---|---|---|
| Ürün Detay Sayfası | SSR | SEO + hızlı ilk içerik için |
| Sepet Sayfası | CSR | Kullanıcıya özel veri nedeniyle |
| Blog Kategorisi | SSG | İçerik nadiren değişiyor |
| Ana Sayfa | SSR | Sosyal medya + SEO önceliği |
Özet: SSR Nerelerde En Verimli?
| Proje Tipi | SSR Kullanımı | Gerekçe |
|---|---|---|
| SEO odaklı projeler | ✅ | İlk içerik hazır, indekslenebilir |
| İçerik portalları | ✅ | Yazılar ve meta tag’ler anında görünür |
| Realtime dashboard | ❌ | Kullanıcıya özel veri, yüksek maliyet |
| Kampanya sayfaları | ✅ | Google Ads kalite skoru ve hız avantajı |
İçeriğimizin sonuna geldik. Umuyorum ki bu içerikte fazlasıyla bilgi edinebilmişsinizdir.
Bir Sitenin SSR mi Yoksa CSR mı Olduğu Nasıl Anlaşılır?
Bir web sitesinin Server Side Rendering (SSR) mi yoksa Client Side Rendering (CSR) mi kullandığını anlamak için hem basit gözlemler hem de teknik analiz araçları kullanılabilir.
1. Basit Gözlem: Sayfa Yükleme Davranışı
SSR Belirtileri:
- Sayfa çok hızlı şekilde, içeriğiyle birlikte yüklenir.
- Boş ekran ya da yükleniyor animasyonu görülmez.
- Tarayıcıda “view-source” yaptığında içerik HTML içinde açıkça görünür.
CSR Belirtileri:
- Sayfa açılırken bir süre boş kalabilir.
- “Loading…” benzeri placeholder’lar görülebilir.
view-sourceyaptığında, içerik yerine sadece bir<div id="root">ya da<app-root>gibi bir kapsayıcı görülür.
2. Teknik Kontrol: “View Source” vs “Inspect Element”
| Test | SSR Sayfa | CSR Sayfa |
|---|---|---|
| View Page Source | İçerikler görünür (başlıklar, metin) | HTML boş ya da sadece root div içerir |
| Inspect Element (Elements Tab) | İçerikler görünür | Aynı şekilde görünür |
Inspect ile her sayfa içerik yüklemiş görünür, ama View Source sadece SSR sayfalarda gerçek HTML gösterir.
3. Developer Tools → Network Tab Analizi
- Sayfayı aç, F12 ile DevTools’u aç.
- “Network” sekmesine git.
- İlk gelen
documentisteğine tıkla. - “Response” kısmını kontrol et:
SSR ise:
- HTML içeriği doğrudan response içinde görünür.
CSR ise:
- HTML minimaldir,
<div id="root">dışında içerik yoktur. - Asıl içerik JavaScript dosyaları üzerinden yüklenir.
4. SEO Araçları ve Bot Simülasyonu
a. Google Rich Results Test
- URL’yi test ettiğinde, içerik doğru şekilde analiz ediliyorsa SSR olma ihtimali yüksektir.
b. Lighthouse / PageSpeed Insights
- “Time to First Byte” ve “First Contentful Paint” değerleri düşükse, SSR kullanılıyor olabilir.
c. Puppeteer / Playwright
- Bot gibi davranarak sayfanın ilk render’ını analiz etmek için kullanılır (geliştiricilere yöneliktir).
5. React/Vue/Angular Projelerinde İpuçları
React:
<div id="__next">varsa → genellikle Next.js kullanılıyor → SSR veya SSG olabilir.<div id="root">varsa → genellikle CSR ağırlıklıdır.
Vue:
<div id="__nuxt">→ Nuxt.js SSR ihtimali yüksek.<div id="app">→ Standart Vue CSR projesi.
Angular:
<app-root>HTML içindeyse ve içerik görünüyorsa → Angular Universal (SSR).- Boşsa → CSR.
6. JS Devre Dışı Bırakıldığında Site Yükleniyor mu?
- Tarayıcında JavaScript’i geçici olarak devre dışı bırak.
- Sayfayı yenile.
SSR ise:
- Sayfa temel içerikleriyle birlikte yüklenir.
CSR ise:
- Sayfa boş kalır veya tamamen çalışmaz.
Bu test, render sürecinin tarayıcı mı yoksa sunucu mu tarafından gerçekleştiğini net biçimde ortaya koyar.
Özet: Hızlı Tespit Listesi
| Soru | SSR | CSR |
|---|---|---|
| View source’ta içerik görünüyor mu? | ✅ | ❌ |
| Sayfa yüklenirken boş ekran var mı? | ❌ | ✅ |
| İlk HTML response dolu mu? | ✅ | ❌ |
| JS kapalıyken içerik görülebiliyor mu? | ✅ | ❌ |
| SEO testleri içeriği doğru gösteriyor mu? | ✅ | ❌ |
