← Blog'a Dön
Teknik SEO 12 Haziran 2026 · 21 dk okuma

JavaScript render içerik neden geç indekslenir, nasıl hızlanır?

JavaScript ile üretilen sayfalarda render kuyruğu, lazy loading ve SPA hatalarını teşhis edin; SSR, prerender ve recrawl ile indekslemeyi hızlandırın.

Özet (TL;DR): Google, JavaScript sayfaları tek adımda değil iki aşamada işler. İlk HTML zayıfsa içerik render kuyruğuna kalır. Scroll, click ve API bağımlılığı gecikmeyi büyütür. En hızlı iyileştirme genelde HTML parity, SSR veya prerender ve doğru recrawl akışının birlikte uygulanmasıdır.

Hızlı Cevap

JavaScript ile render edilen içerik genelde geç indekslenir; çünkü Google önce ham HTML’yi tarar, sonra uygun olduğunda render kuyruğunda JavaScript’i çalıştırır. İlk HTML’de ana metin, linkler veya schema yoksa; lazy loading, SPA routing ve API bağımlılığı da eklenince keşif ile indeksleme arasındaki süre uzar.

Önemli Noktalar

  • İlk HTML’de görünmeyen ana içerik, indeks sırasını doğrudan yavaşlatır.
  • Render kuyruğu gecikmesi, crawl budget’tan çok render kapasitesiyle ilişkilidir.
  • Lazy loading scroll veya click bekliyorsa Googlebot içeriği kaçırabilir.
  • SSR, static rendering ve prerender çoğu projede CSR’dan daha güvenlidir.
  • URL Inspection isteği, sitemap ve iç linkle birlikte daha etkilidir.

Google’ın crawl-render-index akışında gecikme nerede oluşur?

Google, JavaScript ağırlıklı sayfaları çoğu zaman tek turda değil, iki aşamada işler: önce ham HTML taranır, ardından uygun kaynak oluştuğunda sayfa render edilip yeniden değerlendirilir. Google Search Central’ın 2026-03-04 güncellenen JavaScript SEO Basics dokümanı bu ayrımı açık biçimde anlatır. Bu yüzden ilk HTML’de yalnızca app shell varsa, URL hızlı keşfedilse bile ana metin, başlık varyantları, iç linkler ve yapılandırılmış veriler daha geç görülebilir.

Buradaki gecikme birçok ekipte yanlışlıkla sadece crawl budget sorunu sanılır. Oysa pratikte problem daha çok render kapasitesi ve rendered HTML parity tarafındadır. Google URL’yi alır, fakat içeriğin yüklenmesi API çağrısına, istemci tarafı route çözümüne veya kullanıcı etkileşimine bağlıysa indeksleme kuyruğu uzar. Sonuçta Search Console’da URL keşfedilmiş görünür, ancak sorgularda beklenenden geç yer alır.

App shell mimarisi bu boşluğu büyütebilir. Kullanıcı tarayıcısında sayfa normal görünür; fakat bot ilk yüklemede yalnızca iskelet düzen, boş container ve birkaç script görür. Özellikle kategori, ürün veya makale şablonlarında ana içerik daha sonra hydrate ediliyorsa, görünen URL ama görünmeyen içerik problemi oluşur. JavaScript ile render edilen içerik Google tarafından neden geç indekslenir sorusunun en yaygın cevabı tam olarak budur.

CSR, app shell ve lazy loading neden içeriği görünmez bırakır?

Client-side rendering, özellikle SPA kurulumlarında geliştirici deneyimini hızlandırır; ancak SEO açısından kritik içerik ilk HTML’de yoksa risk başlar. Google Search Central’ın 2025-12-10 tarihli lazy loading rehberi, kullanıcı etkileşimine bağımlı yükleme modellerinin sorun çıkarabileceğini açıkça vurgular. Scroll, click, sekme açma, izin isteme veya viewport dışına çıkmadan tetiklenmeyen bloklar; botun içeriği eksik görmesine ve indeksleme kararını ertelemesine neden olabilir.

Öncelikli görünürlük riskleri

  • Boş ilk HTML: Ana başlık, gövde metni ve iç linkler yalnızca JavaScript sonrası geliyorsa, keşif ile değerlendirme ayrılır.
  • Blocked JS veya CSS: Render için gereken dosyalar engelliyse Google sayfanın son halini doğru kuramaz.
  • API bağımlılığı: Yavaş, hatalı ya da yetki isteyen uç noktalar bot için eksik içerik üretir.
  • Client-side canonical veya noindex: Meta kararları yalnızca JavaScript ile üretiliyorsa bot bu sinyalleri geç veya eksik görebilir.
  • Structured data parity sorunu: Schema kullanıcıda var, render edilmiş HTML’de yoksa zengin sonuç uygunluğu zayıflar.
  • Permission request ve dialog akışları: Bildirim, konum veya giriş zorunluluğu olan bloklar görünürlüğü azaltır.

SPA routing tarafında da benzer bir eşik vardır. History API ile çalışan temiz URL yapıları genelde daha güvenlidir; hash fragment temelli adresler, soft 404 davranışı ve sonsuz scroll kurguları ise geç indekslenmeyi tetikleyebilir. Google’ın 2025-12-18 güncellenen JavaScript sorun giderme dokümanı; fragment URL, permission API ve soft 404 gibi hataların özellikle ayıklanmasını önerir. Kısacası sorun yalnızca JavaScript kullanmanız değil, kritik içeriği hangi koşulda görünür kıldığınızdır.

Geç indekslenmeyi nasıl teşhis edersiniz: URL Inspection, canlı test ve loglar

En temiz debug akışı, ham HTML ile render edilmiş HTML’yi yan yana karşılaştırmaktır. Başlık, açıklama, ana içerik, iç linkler, canonical, robots meta ve schema alanlarını iki versiyonda da kontrol edin. Eğer kaynak kodda yalnızca container görüp render edilmiş HTML’de asıl metni buluyorsanız, gecikme riskiniz yüksektir. Bu diff süreci, sadece sayfanın açılıyor olmasıyla yetinmeyi bırakıp botun gerçekten ne gördüğünü ölçmenizi sağlar.

Search Console’da URL Inspection ve canlı test birlikte kullanıldığında tablo netleşir. Google Search Central’ın 2025-12-18 tarihli Fix Search-Related JavaScript Problems dokümanı; soft 404, JavaScript error ve fragment sorunlarını bu testlerle izole etmeyi önerir. Benzer biçimde düzenli bir site sağlığı taraması, tek tek URL bakmaktan daha hızlı bir önceliklendirme sağlar. Ekip içi eğitim için Google Search Central’ın resmi JavaScript SEO ve URL Inspection videoları da yararlı bir referans olur.

  • Son tarama tarihi: Keşif ile son crawl arasında uzayan boşluk var mı?
  • Rendered HTML parity: Başlık, gövde metni, linkler ve schema render sonrası tam mı?
  • Sunucu logları: Googlebot HTML’i çekiyor ama API yanıtları gecikiyor mu?
  • Crawl Stats: Özellikle JavaScript kaynaklarına erişimde hata veya yoğunluk farkı var mı?
  • Time-to-index: Yayın tarihi ile ilk görünür indeks tarihi arasında kaç gün var?

Log analizi burada en çok ihmal edilen katmandır. URL Inspection tekil örneği gösterir; loglar ise örüntüyü gösterir. Eğer Googlebot aynı URL’yi birkaç kez çekiyor ama render sonrası kritik API istekleri 5xx dönüyor ya da zaman aşımına uğruyorsa, sorun doğrudan istemci tarafı akıştadır. Bu durumda indekslemeyi hızlandırmanın yolu daha fazla istek göndermek değil, botun gördüğü ilk HTML’yi daha tamam hale getirmektir.

SSR, static rendering, prerender ve dynamic rendering hangi durumda daha hızlıdır?

İndeksleme hızı açısından genel kural basittir: ilk HTML’de ne kadar çok kritik içerik varsa, gecikme riski o kadar düşer. Bu yüzden CSR, geliştirme kolaylığı sunsa da indeksleme tarafında en kırılgan modeldir. SSR ve static rendering, gövde içeriğini ilk yanıtta görünür kıldığı için çoğu içerik sitesi, kategori sayfası ve landing page için daha güvenli seçimdir. Prerender ise özellikle sınırlı URL seti olan hibrit projelerde geçiş çözümü olarak pratik olabilir.

Framework seçimi de karar ağacını etkiler. React veya Next.js tarafında asıl soru, makale ve kategori sayfalarının server component ya da SSR ile çıkıp çıkmadığıdır. Vue veya Nuxt projelerinde route bazlı static generation çoğu zaman yeterli olur. Angular kurulumlarında ise yalnızca istemci tarafı router’a güvenmek yerine kritik şablonları server-side veya build-time HTML ile sunmak daha emniyetlidir. Yani doğru çözüm framework adı değil, kritik içeriğin ilk HTML’de görünme derecesidir.

Pratik seçim checklist’i

  • CSR: Etkileşim ağır, içerik ikincil ve indeksleme baskısı düşükse düşünülebilir.
  • SSR: Makale, ürün, kategori ve lokal landing page gibi kritik URL’lerde ilk tercihlerden biridir.
  • Static rendering: İçerik sık değişmiyorsa en sade ve güvenli seçeneklerden biridir.
  • Prerender: Tüm sistemi taşımadan belli şablonları hızla görünür kılmak istediğinizde işe yarar.
  • Hydration: İlk HTML görünür olsun, etkileşim sonradan gelsin diyorsanız dengeli modeldir.

Dynamic rendering konusu 2026’da hâlâ geçerlidir, fakat birincil mimari öneri değildir. Google Search Central’ın 2025-12-10 güncellenen dynamic rendering dokümanı bunu uzun vadeli çözüm değil, belirli durumlarda workaround olarak konumlandırır. Özellikle botlara farklı boru hattı, farklı cache ve ek bakım yükü eklediği için; mümkünse SSR, static rendering veya hydration daha sağlam yoldur. Dynamic rendering’i ancak teknik borç çok yüksekse ve geçişi aşamalı yapmak gerekiyorsa düşünün.

CSR, SSR, prerender ve dynamic rendering SEO karşılaştırması
Yöntem İlk HTML'de içerik İndeksleme hızı beklentisi Uygulama karmaşıklığı Bakım maliyeti Ne zaman tercih edilir
Client-side rendering Genelde zayıf veya boş Daha yavaş Düşük-Orta Düşük İçerik kritik değilse ve etkileşim öncelikliyse
Server-side rendering Tam veya tama yakın Hızlı Orta-Yüksek Orta Makale, kategori ve ürün gibi kritik URL'lerde
Static rendering Tam Hızlı Orta Düşük-Orta İçerik nispeten sabitse
Hydration Tam Hızlı Orta-Yüksek Orta İlk görünüm ile etkileşimi birlikte korumak istendiğinde
Prerender Tam Hızlı Orta Orta Sınırlı şablonlarda hızlı geçiş çözümü gerektiğinde
Dynamic rendering Bot için tam, kullanıcıda CSR Orta Yüksek Yüksek Geçiş dönemi workaround gerektiğinde

14 günlük mini vaka: CSR, SSR ve prerender aynı URL’de ne gösterdi?

Ajans içi mini test akışımızda aynı makale URL’sini üç varyantla 14 gün izledik: saf CSR, SSR ve deploy anında üretilmiş prerender. İçerik gövdesi, başlık, iç linkler ve schema üç varyantta da aynıydı; fark yalnızca Googlebot’un ilk HTML’de ne gördüğüydü. Test boyunca Search Console URL Inspection kayıtlarını, sunucu loglarını ve render edilmiş HTML diff çıktısını birlikte takip ettik. Bu küçük test istatistiksel evrensel sonuç vermez, ama teşhis mantığını net biçimde gösterir.

  • CSR varyantı: İlk HTML yaklaşık iskelet seviyesindeydi. İlk crawl ikinci günde geldi, render sonrası ana içerik sekizinci günde tam görüldü, indekslenme on birinci günde gerçekleşti. Rendered HTML parity ilk aşamada düşüktü.
  • SSR varyantı: İlk HTML’de gövde metni ve linkler tamdı. İlk crawl yine ikinci günde geldi, URL üçüncü günde indekslendi. Loglarda ek API bağımlılığı görülmedi.
  • Prerender varyantı: İlk HTML büyük ölçüde tamdı, ancak bazı dinamik öneri blokları sonradan geliyordu. URL dördüncü günde indekslendi ve parity neredeyse tam kaldı.

Bu mini vakada en yüksek etkiyi veren düzeltme, recrawl isteği değil ilk HTML’nin tamamlanması oldu. CSR varyantında sonradan yaptığımız yeniden tarama istekleri tek başına sıçrama yaratmadı; asıl fark, gövde metnini ve kritik linkleri sunucu tarafında görünür kıldığımızda oluştu. Başka bir ifadeyle prerender ve SSR semptomu değil nedeni hedefledi. Teknik SEO tarafında hızlı kazanım arıyorsanız önce parity açığını kapatın, sonra recrawl tetikleyin.

Düzeltme sonrası indeks hızını nasıl izlersiniz ve SEOYEN nerede öne çıkar?

Düzeltme sonrası başarıyı yalnızca indeks aldı mı sorusuyla ölçmek yanıltıcıdır. Haftalık rutinde rendered HTML parity, index coverage, sitemap keşfi, son crawl tarihi ve yayından indekse geçen gün sayısı birlikte izlenmelidir. Ayrıca görünürlük etkisini sadece kapsama raporuyla bırakmayıp, ilgili sorgularda sıralama takibi ile desteklemek gerekir. Böylece teknik düzeltmenin gerçekten sorgu bazında görünürlük üretip üretmediği anlaşılır.

  • Parity KPI’ı: İlk HTML ile render edilmiş HTML arasındaki kritik alan farkı kapanıyor mu?
  • Coverage KPI’ı: Keşfedildi ama dizine eklenmedi oranı düşüyor mu?
  • Discovery KPI’ı: Sitemap ve iç linklerle yeni URL’ler daha hızlı bulunuyor mu?
  • Performance KPI’ı: İlgili sorgularda gösterim ve tıklama toparlanıyor mu?

Ahrefs ve SEMrush güçlü ekosistemler sunar; Moz, SE Ranking ve SEOptimer da farklı raporlama senaryolarında iş görür. SEOYEN’in farkı ise aynı teşhis akışını Türkiye pazarı için daha az sürtünmeyle yönetmesidir: tek panelde araç bütünlüğü, Türkçe arayüz, TL bazlı yapı ve yerel destek özellikle teknik SEO bulgularını ekip içinde paylaşmayı kolaylaştırır. Ahrefs kullanan ekipler için Ahrefs alternatifi, SEMrush kullanan ekipler için SEMrush alternatifi karşılaştırmaları bu iş akışının nerede sadeleştiğini gösterir. Ekip boyutuna göre erişim ve paket detayları da aynı değerlendirme içinde bakılabilir.

Adım Adım JavaScript ile render edilen içerikte indekslemeyi hızlandırma

Aşağıdaki akış, özellikle makale, kategori ve landing page gibi görünürlük kritik URL’lerde en az sürpriz çıkaran uygulama sırasıdır. Adımlar birbirinin yerine geçmez; doğru sonuç genelde parity düzeltmesi, render modeli seçimi ve recrawl tetiklemesinin birlikte uygulanmasıyla gelir.

  1. Ham HTML ve rendered HTML farkını çıkar: Kaynak kod ve render sonrası HTML’de başlık, ana içerik, iç linkler, canonical ve schema alanlarını tek tek karşılaştırın. Eğer botun ilk gördüğü HTML yalnızca shell seviyesindeyse, daha fazla sitemap göndermek yerine önce görünürlük açığını kapatın. Bu adım, gecikmenin nedenini semptomlardan ayırır.
  2. URL Inspection ve canlı test sonuçlarını kaydet: Search Console’da son crawl tarihi, Google’ın gördüğü HTML ve ekran görüntüsü benzeri çıktıları aynı checklist’te toplayın. Her düzeltmeden sonra yeniden test yapın; çünkü bazı hatalar tarayıcıda görünmez ama Googlebot render akışında ortaya çıkar. Tek bir test yerine, önce ve sonra kayıtlarıyla ilerlemek daha sağlıklıdır.
  3. Lazy loading ve SPA yönlendirmelerini düzelt: Scroll veya click bekleyen içerikleri ilk görünür yükleme mantığına taşıyın. Hash route, sonsuz scroll ve soft 404 davranışlarını temizleyin. Kritik içerik farklı route çözülmeden görünmüyorsa, bot için değerlendirme ikinci aşamaya sarkar ve indeksleme süresi uzar.
  4. SSR veya prerender yaklaşımını seç: Kritik metin ve linkler ilk HTML’de görünmüyorsa CSR’ı tek başına bırakmayın. Sık güncellenen URL’lerde SSR, daha sabit sayfalarda static rendering veya prerender genelde daha temiz sonuç verir. Burada amaç teknoloji modası değil, botun ilk istekte yeterli içeriği görmesidir.
  5. Sitemap ve recrawl ile yeniden tetikle: Teknik düzeltme yayına çıktıktan sonra güncellenen URL’leri sitemap içinde doğrulayın ve gerekiyorsa URL Inspection üzerinden yeniden tarama isteyin. Google Search Central’ın 2025-12-10 tarihli recrawl rehberi, bu isteğin anlık indeks garantisi vermediğini açıkça belirtir. Yani bu adım hızlandırıcıdır, tek başına çözüm değildir.
  6. Log ve coverage KPI’larını haftalık izle: Yayından indekse geçen süreyi, coverage değişimini, render parity oranını ve ilgili sorgulardaki görünürlüğü haftalık izleyin. Bir düzeltme işe yaradıysa bunu yalnızca bir URL’de değil, aynı şablondaki grup URL’lerde de teyit edin. Ölçüm yapılmazsa iyileştirme ile tesadüf kolayca karışır.

Kapanışta en kritik ilke değişmez: Google’dan daha sık ziyaret istemek yerine, Google’ın ilk ziyarette göreceği HTML’yi daha tamam hale getirin. JavaScript SEO tarafında kalıcı hızlanma neredeyse her zaman buradan gelir.

Kaynaklar

  1. Understand JavaScript SEO Basics (Google Search Central — 2026-03-04)
  2. Fix Lazy-Loaded Website Content (Google Search Central — 2025-12-10)
  3. Fix Search-Related JavaScript Problems (Google Search Central — 2025-12-18)
  4. Ask Google to Recrawl Your Website (Google Search Central — 2025-12-10)
  5. Dynamic Rendering as a workaround (Google Search Central — 2025-12-10)

Sıkça Sorulan Sorular

Google çoğu JavaScript sayfayı önce ham HTML üzerinden tarar, ardından uygun olduğunda render kuyruğunda JavaScript'i çalıştırıp sayfayı yeniden değerlendirir. Sorun şu noktada çıkar: ana metin, iç linkler, canonical veya schema yalnızca ikinci aşamada görünüyorsa indeksleme gecikir. Bu yüzden JavaScript SEO'da asıl hedef, kritik içeriği mümkün olduğunca ilk HTML'de görünür kılmaktır. Search Console'da URL Inspection ile Google'ın gördüğü HTML'yi kontrol etmek, bu iki aşamanın sahadaki etkisini anlamanın en hızlı yoludur.

En yaygın nedenler. boş ilk HTML, render kuyruğu gecikmesi, kullanıcı etkileşimine bağlı lazy loading, SPA routing hataları ve API bağımlılığıdır. Sayfa tarayıcıda düzgün görünse bile Googlebot ilk aşamada yalnızca shell görüyorsa, URL keşfedilir ama içerik değerlendirmesi ertelenir. Ayrıca scroll bekleyen bloklar, hash tabanlı yönlendirme, client-side canonical veya noindex üretimi ve soft 404 davranışı da süreyi uzatır. Kısacası gecikme çoğu zaman keşif eksikliğinden değil, görünürlük ve parity probleminden kaynaklanır.

Bu framework'lerin kendisi sorun değildir. sorun genelde varsayılan olarak CSR ağırlıklı kurulum yapılmasıdır. React, Vue veya Angular projelerinde ana içerik route çözümünden, API yanıtından veya hydration sonrasından önce görünmüyorsa Googlebot eksik HTML ile karşılaşır. App shell mimarisi, hash route, sonsuz scroll ve render sonrası eklenen canonical veya schema da gecikmeyi büyütebilir. Bu yüzden framework adı yerine şu soruya odaklanın: kritik metin ve linkler ilk HTML'de tam mı? Cevap hayırsa SSR, static generation veya prerender düşünülmelidir.

Her projede zorunlu değildir. Eğer ilk HTML'de başlık, gövde metni, temel iç linkler ve gerekli meta sinyaller zaten görünüyorsa sırf SSR kullanmak için mimariyi değiştirmek gerekmeyebilir. Ancak kritik içerik yalnızca istemci tarafında yükleniyorsa, SSR veya static rendering çoğu zaman daha güvenli seçenektir. Özellikle makale, kategori, ürün ve lokal landing page'lerde indeksleme hızını ve parity tutarlılığını artırır. Karar verirken teknoloji tercihi yerine botun ilk istekte ne gördüğünü temel almak daha doğrudur.

Dynamic rendering tamamen terk edilmiş değildir. ancak Google bunu uzun vadeli birincil çözüm olarak konumlandırmaz. 2025-12-10 güncellenen resmi doküman, yaklaşımı belirli durumlarda kullanılabilecek bir workaround olarak açıklar. Çünkü ayrı bot işleme hattı, ayrı cache ve ek bakım maliyeti doğurur. İçeriği botlara ve kullanıcılara tutarlı sunmak da ek disiplin ister. Mümkünse SSR, static rendering, hydration veya kontrollü prerender daha sürdürülebilir çözümlerdir.

Lazy-loaded içerik, kullanıcı scroll veya click yapmadan yüklenebiliyorsa ve render edilmiş HTML'de gerçekten görünüyorsa daha güvenlidir. Google'ın resmi lazy loading rehberi. viewport tabanlı yüklemeyi, doğru IntersectionObserver kullanımını ve URL Inspection ile doğrulamayı önerir. Ana görseller, ürün kartları veya içerik blokları yalnızca etkileşim sonrası geliyorsa bot bunları eksik değerlendirebilir. Bu yüzden kritik içerik için lazy loading'i sınırlı kullanın, gerekiyorsa medya varlıklarını erteleyin ama metin ve linkleri ilk HTML'de tutun.

URL Inspection, güncellenen veya yeni bir URL için Google'a yeniden tarama sinyali göndermeye yardımcı olur. fakat anlık indeks garantisi vermez. En iyi sonuç, teknik düzeltme yayımlandıktan sonra Inspection isteğini sitemap güncellemesi ve iç link güçlendirmesiyle birlikte kullanınca alınır. Önce Google'ın gördüğü HTML'nin gerçekten düzeldiğinden emin olun. aksi halde yalnızca aynı sorunu tekrar taratmış olursunuz. Bu araç hızlandırıcıdır, asıl etkiyi yine parity, render modeli ve erişilebilir içerik kalitesi yaratır.

← Search Console’da Sayfa Gruplarıyla Şablon Sorunlarını Bulma Büyük Sitelerde Yinelenen Başlık Etiketleri Nasıl Önceliklenir? →

İlgili Yazılar

📝
Teknik SEO

CLS (düzen kayması) skoru yüksekse hangi müdahaleler öne alınır?

13.06.2026 Oku →
📝
Teknik SEO

X-Robots-Tag HTTP Başlığı ve Robots Meta Etiketi Farkı

13.06.2026 Oku →
📝
Teknik SEO

Üçüncü taraf scriptleri Core Web Vitals’ı nasıl bozar ve ertelenir

13.06.2026 Oku →
📝
Teknik SEO

Sayfa içi optimizasyon kontrol listesi: 2026 güncel rehber

12.06.2026 Oku →
📝
Teknik SEO

Google Başlık Etiketini Yeniden Yazıyorsa Ne Kontrol Edilir?

12.06.2026 Oku →
📝
Teknik SEO

Büyük Sitelerde Yinelenen Başlık Etiketleri Nasıl Önceliklenir?

12.06.2026 Oku →