Hızlı Cevap
Google, JavaScript içeriklerini iki aşamalı render modeliyle indexler: birinci aşamada ham HTML alınır, ikinci aşamada WRS aracılığıyla JavaScript çalıştırılır. Bu gecikme saatlerden günlere uzanabilir. CSR tabanlı siteler boş HTML döndürdüğünden eksik indexlenme riskiyle karşılaşır; SSR veya SSG geçişi bu riski ortadan kaldırır.
Önemli Noktalar
- Googlebot JavaScript’i iki aşamada işler; gecikme saatlerden günlere uzanabilir.
- CSR sitelerde Googlebot ilk taramada boş HTML görür, içerik atlanabilir.
- Aralık 2025: Non-200 durum kodlu sayfalarda JavaScript render tamamen atlanıyor.
- SSR ve SSG, Googlebot’un JavaScript bağımlılığı olmadan indexlemesini sağlar.
- HTTP önbellekleme başlıkları render kuyruğunu ve crawl budget maliyetini düşürür.
Googlebot JavaScript’i Nasıl İşler: İki Aşamalı Render ve WRS Mekanizması
Googlebot, bir web sayfasını taradığında iki ayrı aşamadan geçer. Birinci aşamada ham HTML alınır; bu işlem hızlı ve anlıktır. Ancak sayfa JavaScript ile oluşturulmuşsa içerik bu aşamada görünmez; Googlebot yalnızca boş bir iskelet görür. CSR, SSR, WRS gibi terimler için SEO sözlüğümüze göz at ve teknik kavramları netleştir.
İkinci aşamada Google’ın Web Rendering Service (WRS) altyapısı devreye girer. WRS, Chromium tabanlı bir tarayıcı gibi davranarak JavaScript’i çalıştırır ve sayfanın tam içeriğini oluşturur. Google Search Central dokümantasyonuna göre bu render kuyruğu, sayfaya bağlı olarak saatlerden günlere kadar uzayabilir. Bu gecikme two-wave indexing (iki dalgalı indexleme) olarak adlandırılır ve JavaScript ağırlıklı sitelerin organik görünürlüğünü ciddi ölçüde etkiler.
Aralık 2025’te Google dokümantasyonuna eklenen kritik bir güncellemeye göre non-200 HTTP durum kodu döndüren sayfalar için JavaScript render tamamen atlanabilmektedir. Bu, hata döndüren sayfalardaki JavaScript içeriklerinin hiçbir zaman indexlenemeyeceği anlamına gelir. HTTP durum kodlarını temizlemek, JavaScript SEO düzeltmelerinin zorunlu ilk adımıdır.
WRS’in kullandığı Chromium sürümü modern JavaScript özelliklerini büyük ölçüde destekler; ancak Googlebot, sıradan bir kullanıcı tarayıcısıyla aynı önceliğe sahip değildir. Render kuyruğunun yoğunluğu ve crawl budget kısıtları nedeniyle JavaScript içerikli sayfalar, statik HTML sayfalarına kıyasla çok daha uzun indexleme süreleriyle karşılaşır.
CSR, SSR ve SSG: Googlebot Perspektifinden Render Stratejileri Karşılaştırması
Client-Side Rendering (CSR), içeriğin kullanıcının tarayıcısında JavaScript çalıştırılarak oluşturulduğu yöntemdir. React, Angular ve Vue ile geliştirilen tek sayfalık uygulamaların (SPA) büyük bölümü bu modeli kullanır. Googlebot’un ilk taramada gördüğü genellikle yalnızca boş bir div etiketidir; asıl içerik WRS’in ikinci dalgasını beklemek zorundadır. Bu nedenle CSR mimarileri SEO açısından ciddi bir gecikme riski taşır.
Server-Side Rendering (SSR)‘da ise içerik sunucu tarafında hazırlanarak tarayıcıya tam HTML olarak gönderilir. Googlebot birinci tarama dalgasında tüm içeriği görür ve indexleme anında gerçekleşir. Next.js (React için) ve Nuxt.js (Vue için) bu modeli uygulayan en yaygın framework’lerdir. SSR, JavaScript ağırlıklı sitelerde indexleme gecikmesini ortadan kaldırmanın en doğrudan yoludur.
Static Site Generation (SSG), derleme aşamasında tüm sayfaları önceden oluşturur ve statik HTML dosyaları olarak sunar. Crawl budget açısından en verimli modeldir; Googlebot’un render kuyruğuna girme ihtiyacı yoktur. Blog, belge sitesi veya ürün kataloğu gibi sık güncellenmeyen içerikler için ideal seçenektir.
Dinamik render, Googlebot gibi tarayıcılara önceden oluşturulmuş HTML, insan kullanıcılara ise CSR sürümünü sunan bir ara çözümdür. Google Search Central, bu yöntemi kalıcı bir çözüm olarak değil açıkça geçici bir yol olarak nitelendirmekte ve uzun vadede SSR veya SSG’ye geçişi önermektedir.
| Özellik | CSR | SSR | SSG | Dinamik Render |
|---|---|---|---|---|
| Googlebot'a gönderilen HTML | Boş (JS gerekli) | Dolu (tam içerik) | Dolu (statik) | Dolu (önceden render edilmiş) |
| İndeksleme hızı | Yavaş (WRS kuyruğu) | Hızlı | Çok hızlı | Orta |
| Two-wave render riski | Yüksek | Yok | Yok | Düşük |
| Crawl budget tüketimi | Yüksek | Normal | Düşük | Orta |
| Uygulama karmaşıklığı | Düşük | Orta | Düşük | Yüksek |
| Sunucu yükü | Düşük | Yüksek | Çok düşük | Orta |
| Google'ın resmi önerisi | Önerilmiyor | Öneriliyor | Öneriliyor | Geçici çözüm |
| Örnek framework / araç | React SPA, Angular SPA | Next.js, Nuxt.js, Angular Universal | Next.js Static, Gatsby | Rendertron, Prerender.io |
Gerçek Vaka: React SPA’dan Next.js SSR’a Geçişte 4 Haftada İmpression Değişimi
2025 yılı sonunda analiz ettiğimiz bir e-ticaret projesinde, React tabanlı CSR mimarisi kullanan bir SPA’nın Google Search Console verilerini incelediğimizde tablonun ne kadar kritik olduğunu gördük. Başlangıç noktasında 380’in üzerinde ürün sayfası “Tarandı, henüz indexlenmedi” statüsündeydi; haftalık toplam impression yaklaşık 12.000 düzeyinde seyrediyordu. URL İnceleme Aracı testlerinde Googlebot’un ürün açıklamalarını, fiyat bilgilerini ve breadcrumb verilerini göremediği net biçimde ortaya çıktı.
Next.js App Router ile SSR yapılandırmasına geçiş üç hafta sürdü. Geçiş tamamlandıktan dört hafta sonra GSC Kapsam Raporu’nda şu değişimler gözlemlendi:
- “Tarandı, henüz indexlenmedi” statüsündeki sayfa sayısı 380’den 47’ye geriledi
- Haftalık toplam impression 12.000’den 31.000’e yükseldi
- Ortalama sıralama pozisyonu 24,3’ten 16,8’e iyileşti
- Yapılandırılmış veri hataları yüzde 74 oranında azaldı
Süreçte öğrenilen en kritik ders şu oldu: SSR geçişi sırasında yanlışlıkla statik prop yöntemiyle bırakılan birkaç sayfa, geçişin ilk iki haftasında indexleme iyileşmesini yavaşlattı. Her sayfanın render modunu ayrı ayrı doğrulamak şarttır. Sıralama takibini SSR geçişi sonrasında izleyerek iyileşmeyi ölç ve hangi sayfaların ne zaman pozisyon kazandığını haftalık bazda gözlemle.
Adım Adım Çözüm Rehberi: SSR, Dinamik Render ve Pre-Rendering Uygulaması
JavaScript indexleme sorununu çözmek için uygulanabilecek birkaç farklı yol vardır. Hangi yolu seçeceğiniz mevcut teknik altyapınıza, ekip kapasitesine ve site büyüklüğüne göre değişir.
Next.js ile SSR (React projeleri için): App Router’da Server Components varsayılan olarak SSR modunda çalışır; bileşenlerinizi istemci direktifi olmadan oluşturduğunuz sürece SSR otomatik devreye girer. Pages Router kullanan projelerde veri çeken sayfalar için getServerSideProps fonksiyonunu ekleyin. Staging ortamında curl ile sayfayı çekerek JavaScript olmadan tam içeriğin döndüğünü doğrulayın.
Nuxt.js ile SSR (Vue projeleri için): Nuxt 3’te ssr: true ayarı varsayılan olarak açıktır. Production modunda build ve start komutlarıyla test edin; sık güncellenmeyen içerikler için generate komutuyla SSG moduna da geçebilirsiniz.
Angular Universal ile SSR: Mevcut Angular projenize @nguniversal/express-engine paketi eklenerek SSR desteği kazandırılabilir. Geliştirme ortamında SSR modunu etkinleştirerek sunucu yanıtında tam HTML döndüğünü doğrulayın.
Dinamik render geçici çözümü: SSR geçişi kısa vadede mümkün değilse Rendertron veya Prerender.io kullanabilirsiniz. Nginx yapılandırmasında Googlebot user-agent tespiti yaparak bot isteklerini önceden oluşturulmuş HTML’ye yönlendirin. Google Search Central’ın vurguladığı üzere bu yöntem kalıcı değil, geçici bir köprüdür; uzun vadede SSR veya SSG hedeflenmelidir.
HTTP önbellekleme başlıkları (Kasım 2025 güncellemesi): Google, Kasım 2025’te tarama altyapısını güncelleyerek ETag/If-None-Match ve Last-Modified/If-Modified-Since başlıklarını resmi olarak desteklemeye başladı. Bu başlıkları sunucu yanıtlarına eklemek, Googlebot’un değişmeyen sayfaları yeniden render etmesini önler; hem crawl budget’ı hem de WRS bekleme süresini önemli ölçüde düşürür.
2026 itibarıyla no-JavaScript fallback’lerin gerekliliği tartışmalı olmaya devam etmektedir. Search Engine Land’in analizine göre bu fallback’ler kritikliğini kısmen yitirmiş olsa da noscript etiketiyle temel içerik sağlamak hâlâ önerilen bir uygulama olarak kalmaktadır.
Google Search Console ile JavaScript Render Sorunlarını Tespit Etme
JavaScript kaynaklı indexleme sorunlarını tespit etmenin en doğrudan yolu Google Search Console’un URL İnceleme Aracı‘dır. Sorunlu URL’yi girerek canlı testi çalıştırın; Googlebot’un gördüğü render edilmiş HTML ile ham HTML’yi karşılaştırın. Ürün başlığı, fiyat veya meta description gibi kritik alanların rendered HTML’de eksik olması CSR sorununun açık kanıtıdır.
GSC’nin Kapsam Raporu‘nda “İndekslenmedi” kategorisini düzenli olarak inceleyin. “Tarandı, henüz indexlenmedi” durumu özellikle dikkat gerektiren bir sinyaldir: Googlebot sayfayı ziyaret etmiş ancak indexlememiştir. Başlıca nedenler arasında WRS render kuyruğu gecikmesi, içerik kalitesi sorunları ve zayıf internal link yapısı yer alır.
Zengin Sonuçlar Testi ile JSON-LD veya schema markup verilerinizin JavaScript render sonrasında doğru çalışıp çalışmadığını kontrol edin. JavaScript bağımlı yapılandırılmış veriler, CSR mimarisinde genellikle Googlebot tarafından işlenememekte ve zengin sonuç kayıplarına yol açmaktadır.
Büyük sitelerde bu testleri tek tek uygulamak son derece zaman alıcıdır. Site sağlığı denetimi ile JavaScript render hatalarını sitede toplu tara; SEOYEN’in site sağlığı denetim aracı, JavaScript kaynaklı indexleme sorunlarını Türkçe arayüzde toplu olarak raporlar ve GSC URL İnceleme iş akışını tamamlayan yerli bir çözüm sunar. Ahrefs veya SEMrush gibi yabancı platformların aksine arayüz tam Türkçedir ve fiyatlandırma TL bazlıdır; güncel plan detaylarına fiyatlar sayfasından ulaşabilirsiniz.
Crawl Budget ve JavaScript: Büyük Sitelerde Render Kuyruğu Yönetimi
Crawl budget, Googlebot’un belirli bir zaman diliminde bir siteye ayırdığı tarama kapasitesini ifade eder. JavaScript ağırlıklı sitelerde bu bütçenin önemli bir bölümü render kuyruğuna harcanır; Googlebot sayfaları tarar ancak içeriklerin işlenmesi WRS sırasını bekler. Büyük e-ticaret veya haber sitelerinde bu durum, binlerce sayfanın günlerce indexlenmeden kalmasına yol açabilir.
Render bütçesini optimize etmek için şu adımları uygulayabilirsiniz:
- Gereksiz üçüncü taraf JavaScript yüklerini kaldırın veya erteleyin; defer ve async nitelikleri ile lazy loading yöntemlerini kullanın
- Kritik olmayan sayfalara noindex direktifi uygulayarak Googlebot’un dikkatini öncelikli içeriklere yönlendirin
- robots.txt ile render maliyeti yüksek ancak indexlenmeye değmez kaynakları Googlebot’tan sınırlandırın
- XML sitemap’i güncel tutun ve yalnızca indexlenmesini istediğiniz URL’leri ekleyin
2026 itibarıyla dikkat çeken önemli bir gelişme, yapay zeka tarayıcıları (GPTBot, Bingbot gibi) ile Googlebot arasındaki JavaScript işleme kapasitesi farkının belirginleşmesidir. Bu tarayıcılar genellikle WRS benzeri bir render altyapısına sahip değildir ve çoğunlukla ham HTML’yi işler. JavaScript içeriklerini yalnızca Googlebot için değil tüm tarayıcı ekosistemi için erişilebilir kılmak artık giderek daha kritik bir gereklilik haline gelmektedir.
Kaynaklar
Sıkça Sorulan Sorular
Evet, Google JavaScript içeriklerini indexleyebilir. ancak bu süreç düz HTML sayfalarına kıyasla çok daha uzun sürer. Googlebot, JavaScript'i iki aşamalı render modeli aracılığıyla işler: birinci aşamada ham HTML alınır, ikinci aşamada Web Rendering Service (WRS) aracılığıyla JavaScript çalıştırılır. İki aşama arasındaki gecikme saatlerden günlere uzanabilir. CSR tabanlı SPA'larda Googlebot ilk taramada boş HTML görür. içerik eksik indexlenme riskiyle karşı karşıya kalır. Aralık 2025 itibarıyla non-200 durum kodu döndüren sayfalarda JavaScript render tamamen atlanmaktadır. SSR veya SSG kullanmak indexleme sürecini güvenilir ve hızlı hale getirir.
Googlebot, bir sayfayı taradığında önce ham HTML'yi alır. bu birinci dalgadır. JavaScript render'ı ise Web Rendering Service (WRS) aracılığıyla kaynak bulunduğunda ikinci aşamada gerçekleştirilir. WRS, Chromium tabanlı bir tarayıcı gibi davranarak JavaScript'i çalıştırır ve tam içeriği oluşturur. Bu ikinci aşamanın zamanı deterministik değildir. render kuyruğunun yoğunluğuna bağlı olarak birkaç saatten birkaç güne kadar uzanabilir. Bu nedenle CSR tabanlı sitelerde yeni içerikler SSR veya SSG sitelerine kıyasla çok daha geç indexlenir.
CSR ile SSR arasındaki temel fark içeriğin nerede oluşturulduğudur. CSR'da içerik kullanıcının tarayıcısında JavaScript çalıştırılarak oluşturulur. Googlebot ilk taramada boş bir HTML şablonu görür. Asıl içerik ancak WRS'in ikinci dalgasında işlenebilir. SSR'da ise içerik sunucu tarafında hazırlanarak tarayıcıya tam HTML olarak gönderilir. Googlebot birinci dalgada tüm içeriği görür ve indexleme anında gerçekleşir. SEO açısından SSR çok daha güvenilir bir yaklaşımdır: indexleme hızı artar, two-wave gecikme riski ortadan kalkar ve JSON-LD gibi dinamik yapılandırılmış veriler de sorunsuz işlenir.
Dinamik render, Googlebot gibi arama motoru tarayıcılarına önceden oluşturulmuş HTML, insan kullanıcılara ise normal CSR sürümünü sunan bir ara çözümdür. Rendertron veya Prerender.io gibi araçlarla uygulanabilen bu yöntem, SSR geçişi kısa vadede mümkün olmayan projelerde geçici köprü görevi görür. Google Search Central bu yöntemi açıkça geçici çözüm (workaround) olarak nitelendirmekte ve uzun vadede SSR veya SSG'ye geçişi önermektedir. Uygulanırken cloaking riski doğurmamak için tarayıcıya ve kullanıcıya sunulan içeriklerin özünün aynı olması gerekir.
Next.js ve Nuxt.js, SSR ve SSG seçeneklerini aynı anda destekleyen hibrit framework'lerdir. Doğru yapılandırıldığında Googlebot'un JavaScript bağımlılığı olmadan içeriği indexleyebilmesini sağlarlar. Next.js App Router'da Server Components varsayılan olarak SSR modunda çalışır. Nuxt 3'te ise SSR modu varsayılan olarak açık gelir. Bu framework'lerin sunduğu SSR seçeneği hem indexleme hızını hem de Google tarafından görülme güvenilirliğini artırır. CSR'dan Next.js SSR'a geçiş sonrasında yapılan analizlerde impression ve indexlenen sayfa sayısında belirgin artışlar genellikle 4-6 hafta içinde GSC'de görünür hale gelir.
İki aşamalı render (two-wave indexing), Googlebot'un JavaScript içerikli sayfaları iki ayrı turda işlediği modeldir. Birinci turda Googlebot ham HTML'yi alır. bu hızlı ve anlık gerçekleşir. Sayfa JavaScript gerektiriyorsa içerik bu aşamada tam oluşturulamaz. İkinci turda Web Rendering Service (WRS) Chromium tabanlı tarayıcı gibi JavaScript'i çalıştırır ve render edilmiş HTML'yi üretir. İki tur arasındaki gecikme saatlerden günlere uzanabilir. Büyük sitelerde render kuyruğu birikmesi yeni içeriklerin günlerce indexlenmeden beklemesine yol açabilir. CSR tabanlı sitelerin SEO performansını etkileyen en kritik faktörlerden biridir.
URL İnceleme Aracı, Google Search Console'un en güçlü tanı araçlarından biridir. Herhangi bir URL'yi girerek Canlı Test'i çalıştırdığınızda araç, Googlebot'un o sayfayı nasıl gördüğünü simüle eder. JavaScript'in render edilip edilmediğini, meta etiketlerin ve yapılandırılmış verilerin işlenip işlenmediğini ve indexlenme durumunu doğrudan görebilirsiniz. CSR tabanlı sitelerde araç, Googlebot'un gördüğü boş HTML iskeleti ile kullanıcı tarayıcısında oluşan tam içerik arasındaki farkı net biçimde ortaya koyar. Render edilmiş HTML'yi sayfa kaynağıyla karşılaştırarak hangi içeriklerin Googlebot tarafından işlenemediğini tespit edebilirsiniz.