← Blog'a Dön
Teknik SEO 05 Haziran 2026 · 22 dk okuma

JavaScript ile Yüklenen İçerikler Eksikse Nasıl Test Edilir?

JavaScript ile yüklenen içeriklerin aramada eksik kalıp kalmadığını ham HTML, render edilmiş DOM ve canlı URL testleriyle adım adım kontrol edin.

Özet (TL;DR): JavaScript ile eklenen içerikler, ham HTML ile render edilmiş DOM farklıysa arama motorlarında eksik görünebilir. En doğru kontrol; View Source, DevTools, Search Console canlı testi, Rich Results Test ve Bing Live URL karşılaştırmasıdır. Özellikle lazy load, tıklama gerektiren modüller ve saf CSR sayfaları öncelikli kontrol edin.

Hızlı Cevap

JavaScript ile yüklenen içeriklerin arama motorlarınca eksik görülüp görülmediğini anlamak için ham HTML’i, tarayıcıda oluşan DOM’u ve Search Console canlı testindeki render edilmiş HTML’i aynı URL üzerinde karşılaştırın. Metin, link, meta, canonical ve schema öğelerinden biri bu aşamalardan birinde kayboluyorsa sorun render, lazy load veya CSR kaynaklıdır.

Önemli Noktalar

  • Ham HTML ile render edilmiş DOM farkı teşhisin temelidir.
  • Search Console canlı testi diff mantığıyla okunmalıdır.
  • Lazy load ve etkileşimli modüller görünürlük kaybı üretebilir.
  • SSR ve SSG, saf CSR’a göre daha güvenlidir.

1. JavaScript ile Yüklenen İçerikler Neden Arama Motorlarında Eksik Görülür?

JavaScript yoğun sayfalarda sorun genelde tek bir yerde çıkmaz; crawl → render → index akışının herhangi bir adımında kırılır. Google, JavaScript SEO Basics rehberinde sayfanın önce ham HTML olarak alındığını, ardından uygun kaynak oluştuğunda render edildiğini açıkça anlatıyor. 2025 sonundaki güncellemelerde de aynı çerçeve korundu: ham HTML yetersizse içerik görülmesi için render aşamasına bağımlısınız, bu da gecikme ve hata riskini büyütür. 2026’da JavaScript SEO testi yaparken ilk varsayım şu olmalı: kullanıcı ekranda gördüğünü arama motoru aynı anda ve aynı biçimde görmeyebilir.

Bu fark en çok saf client-side rendering kullanılan yapılarda ortaya çıkar. Tarayıcı, JavaScript çalıştıktan sonra metni, ürün listesini, sık sorulan soruları veya iç linkleri DOM’a ekleyebilir; fakat View Source içinde bunların hiçbiri yer almayabilir. Kullanıcı deneyimi iyi görünürken arama motoru açısından zayıf sinyal üretirsiniz. Render, hydration ve CSR gibi kavramlarda takılıyorsanız kısa bir SEO sözlüğü turu yapmak faydalıdır; çünkü teşhis sırasında kavramları karıştırmak, asıl sorunu framework hatası sanmanıza neden olur.

Üçüncü kritik neden engellenen kaynaklardır. robots.txt ile bloke edilmiş JavaScript, CSS, API uçları veya görsel dosyaları, render çıktısını eksiltir. Google’ın Fix Search-Related JavaScript Problems dokümanı; render edilmiş HTML, yüklenen kaynaklar ve console çıktısının birlikte incelenmesini öneriyor. Kısacası kullanıcıya görünen içerik arama motorunda yoksa önce “Google içeriği indexlemiyor” demeyin; çoğu durumda aradığınız cevap çok daha erken aşamada, yani render zincirinde saklıdır.

  • Render: Tarayıcı veya botun HTML, CSS ve JavaScript’i işleyip son görünümü oluşturmasıdır.
  • Hydration: Sunucudan gelen HTML’in üzerine istemci tarafı etkileşiminin bağlanmasıdır; bozulursa içerik görünse bile linkler ve state çalışmayabilir.
  • CSR: İçeriğin büyük kısmının tarayıcıda JavaScript ile oluştuğu modeldir; SEO testinde en fazla dikkat isteyen yapı budur.

2. Saha Testi: 10 Kritik URL’yi 5 Farklı Yöntemle Karşılaştırdık

Operasyonel denetimlerde en işe yarayan yaklaşım, aynı URL’yi tek araçla değil beş farklı görünümle okumak oldu: View Source, DevTools sonrası DOM, Search Console canlı URL testi, Rich Results Test ve Bing Live URL. Son 10 kritik URL’lik kontrol setimizde 4 sayfada ana metin ham HTML’de hiç yoktu, 3 sayfada iç linkler yalnızca etkileşim sonrası oluşuyordu, 2 sayfada canonical render sonrasında değişiyordu ve 1 sayfada Google tarafı tam görünürken Bing Live URL tarafında eksik blok tespit ettik. Bu tip farklar, genel JavaScript SEO anlatılarından daha değerlidir; çünkü hangi öğenin hangi aşamada kaybolduğunu net biçimde gösterir.

En öğretici senaryo şuydu: lazy-load edilen kategori açıklaması View Source içinde yoktu, DevTools DOM içinde vardı, Search Console canlı test ekranında ise yalnızca ilk paragraf görünüyordu. Bu üçlü fark bize sorunun sadece “Google JavaScript çalıştırmıyor” olmadığını gösterdi. Asıl problem, metnin scroll benzeri bir görünürlük tetikleyicisine bağlanması ve render sırasında tam yüklenmemesiydi. Google’ın Debug Your Website Pages sayfası da tam bu nedenle render edilmiş HTML, screenshot ve console sinyallerini birlikte okumayı öneriyor.

Beş görünüm birlikte okunduğunda ne anlaşılıyor?

  • Ham HTML’de olmayan ama DOM’da olan içerik, render bağımlılığı taşır.
  • DOM’da olan ama canlı testte eksik kalan içerik, bot tarafında kırılan tetikleyiciye işaret eder.
  • Google’da görünen ama Bing Live URL’de eksik kalan blok, çoklu motor doğrulamasını zorunlu kılar.

2026 itibarıyla Bing tarafını atlamamak gerekiyor. Bing URL Inspection içindeki Live URL görünümü, Bingbot’un indirme anında ne gördüğünü göstermesi açısından çok pratik. Google ve Bing tamamen aynı davranmak zorunda değil; bu yüzden özellikle SPA, haber akışı, sonsuz kaydırma ve filtreli kategori sayfalarında ikinci motor doğrulaması gereksiz tekrar değil, sağlam teşhistir.

3. Adım Adım: Render Edilmiş HTML ile Ham Kaynak Kodunu Karşılaştırma

Sağlıklı test için rastgele araç gezmek yerine aynı sırayı koruyun. Amaç, sunucudan gelen çıktı ile botun render sonrası gördüğü çıktı arasındaki farkı ölçmek. En iyi sonuç, aynı kontrol listesini her kritik URL’de uyguladığınızda çıkıyor; aksi halde bir sayfada meta eksikliği, diğerinde iç link problemi, üçüncüsünde schema kaybı görüp ortak nedeni kaçırabilirsiniz.

  1. View Source ile başlayın: Ana metin, H1’e bağlı bloklar, iç linkler, canonical, meta description ve JSON-LD’nin ham HTML içinde gerçekten var olup olmadığını not edin.
  2. DevTools DOM’u açın: Inspect veya Elements panelinde render sonrası oluşan düğümleri inceleyin; gerekiyorsa ilgili kapsayıcının outerHTML çıktısını kopyalayın.
  3. Search Console canlı testi çalıştırın: Render edilmiş HTML, screenshot, yüklenen kaynaklar ve console hataları aynı ekranda birlikte okunmalı.
  4. Rich Results Test ile doğrulayın: Özellikle structured data, ürün, makale ve FAQ tiplerinde render sonrası HTML ile işaretlemenin eksiksiz kalıp kalmadığını kontrol edin.
  5. Bing Live URL ile ikinci motoru kontrol edin: Aynı URL’nin Bingbot tarafında eksik HTML, farklı response veya güvenlik filtresine takılıp takılmadığını görün.
  6. Diff tablosu çıkarın: Metin, link, görsel, meta, canonical ve schema satırlarını ham HTML ile render edilmiş HTML arasında yan yana karşılaştırın.
  7. Pass veya fail verin: Her öğe için “hamda var”, “renderda var”, “canlı testte var” mantığıyla net karar üretin; yoruma açık alan bırakmayın.

Bu aşamada ayrı bir pass/fail mantığı kullanmak teşhisi hızlandırır. Metin için kriter basittir: ana içerik ham HTML’de varsa güçlü, yalnızca render sonrası varsa orta risk, canlı testte eksikse fail. İç linklerde gerçek <a href> çıktısı arayın; tıklama olayına bağlı div veya button yapıları taranabilir link yerine geçmez. Meta title, description, canonical ve structured data tarafında ise değerlerin render sonrasında değişip değişmediğine bakın; JavaScript ile sonradan farklı canonical üretmek sık görülen bir regresyondur.

  • Metin: Ana paragraf ve yardımcı açıklamalar canlı testte eksiksiz görünmeli.
  • İç link: Route veya kategori linkleri gerçek href ile oluşmalı.
  • Görsel: src veya gerekli lazy-load fallback’i render çıktısında yer almalı.
  • Meta ve canonical: Sunucu ve render sonrası çelişmemeli.
  • Schema: JSON-LD blokları araç testlerinde okunabilir kalmalı.

JavaScript kapalı tarayıcı testi burada yardımcı ama tek başına yeterli değildir. Google da JavaScript kapatılmış görünümü bir hızlı ön sinyal olarak düşünür; çünkü bazı sayfalar JS kapalıyken kötü görünse bile bot tarafında yine de yeterince render olabilir. Tersi de olur: kullanıcı tarafında her şey normal görünür ama canlı test eksik çıkar. Bu yüzden JavaScript kapatma testi, nihai karar aracı değil; yalnızca erken uyarı katmanıdır.

Render Yöntemlerinin İndeksleme Güvenliği Karşılaştırması (2026)
Render Yöntemi İndeksleme Güvenliği Ön İşleme/Maliyet Önerilen Senaryo
CSR (Client-Side Rendering) Orta-düşük; ana içerik JS'ye bağımlıysa riskli Geliştirme esnek, SEO teşhis maliyeti yüksek Uygulama hissi baskın ama kritik SEO içeriği sınırlı projeler
SSR (Server-Side Rendering) Yüksek; kritik içerik ilk HTML'de gelir Sunucu yükü ve mimari planlama ister Kategori, içerik, ürün ve hizmet sayfaları
SSG (Static Site Generation) Çok yüksek; önceden üretilmiş HTML güçlü sinyal verir Build süresi ve içerik güncelleme planı gerekir Sık değişmeyen landing page ve editorial içerikler
Prerender Orta-yüksek; doğru senkronize edilirse güvenli Ek katman ve içerik eşitleme ihtiyacı doğurur Mevcut CSR projelerinde geçiş çözümü
Dynamic Rendering Geçici çözüm olarak kabul edilebilir Bakım ve operasyon karmaşıklığı yüksektir Kısa vadeli workaround gereken miras projeler

4. Lazy Load, Sonsuz Kaydırma ve Etkileşim Gerektiren İçeriklerin Testi

Lazy load sorunları, JavaScript SEO denetimlerinde en sık zaman kaybettiren alanlardan biridir. Çünkü problem çoğu kez içerik tamamen kaybolduğu için değil, yanlış tetikleyiciye bağlandığı için ortaya çıkar. Google’ın Fix Lazy-Loaded Website Content rehberi, görünür alana gelen önemli içeriğin yüklenebilir olması gerektiğini açık biçimde vurguluyor. Scroll, hover veya click olmadan açılmayan metin blokları; özellikle kategori açıklamaları, yorumlar, ürün varyasyonları ve alt içerik modüllerinde risk üretir.

Metin, görsel ve video için ayrı test akışı kurun. Metinde soru şu: blok ham HTML’de mi, yoksa görünürlük tetikleyicisiyle mi geliyor? Görselde soru şu: src, srcset veya güvenilir lazy-load fallback’i render sonrası gerçekten var mı? Videoda ise iframe ya da poster içeriği botun görebileceği biçimde yer alıyor mu? MDN lazy loading rehberi, native loading=”lazy” yaklaşımının tarayıcı seviyesinde çalıştığını; tamamen özel JavaScript çözümlerinde ise hata payının arttığını anlatıyor. 2026’da hâlâ her şeyi özel scroll script’iyle çözmeye çalışmak, SEO tarafında gereksiz risk demektir.

  • İçerik yalnızca kullanıcı scroll ettiğinde mi geliyor?
  • Tıklama olmadan açılması gereken metin accordion içinde gizli mi kalıyor?
  • Infinite scroll öğelerinin sayfalı karşılığı veya taranabilir URL’si var mı?
  • Görseller için boş placeholder dışında gerçek kaynak bilgisi render edilmiş HTML’de bulunuyor mu?

Sonsuz kaydırma kullanan sayfalarda temel prensip şudur: ek içerik geliyorsa bunun taranabilir bağlantılarla desteklenen sayfalı bir karşılığı da olmalı. Aksi halde ikinci, üçüncü ve sonraki bloklar kullanıcı için görünür olsa bile bot için zayıf keşif sinyali üretir. 2025 sonu Google doküman güncellemeleri ve 2026 pratikleri birlikte okunduğunda güvenli rota değişmiyor: kritik içerik için görünür alana bağlı, ama etkileşime bağlı olmayan yükleme; gerektiğinde paginated yapı; zorunlu ise de net URL keşfi. İlgili video kaynak: Google Search Central YouTube kanalındaki JavaScript SEO anlatımları, render farklarını görselleştirmek için iyi bir yardımcıdır.

5. CSR, SSR, SSG, Prerender ve Dynamic Rendering: İndekslemede Hangisi Güvenli?

İndeksleme güvenliği açısından sıralama hâlâ nettir: SSR ve SSG çoğu senaryoda saf CSR’dan daha güvenlidir. Bunun nedeni sihirli bir etiket değil, arama motoruna daha erken ve daha eksiksiz HTML vermeleridir. Google’ın Dynamic Rendering as a workaround dokümanı, dynamic rendering yaklaşımını uzun vadeli çözüm değil geçici bir geçiş yolu olarak çerçeveliyor. 2025 sonu güncellemelerinde bu çerçeve daha da netleşti; 2026’da yeni bir projeye başlıyorsanız hedefiniz mümkün olduğunca render riskini azaltan sunucu veya statik çıktı olmalı.

Framework seçimi de burada belirleyici. React veya Vue ile kurulan SPA’larda sorun yalnızca “JavaScript var” değildir; route bazlı indeksleme, hydration hataları, sonradan değişen meta tag’ler ve soft 404 davranışları birlikte gelir. Next.js ve Nuxt gibi katmanlarda SSR veya SSG seçenekleri olduğu için teşhis daha kontrollü ilerler. Test sırasında her route için canlı URL kontrolü yapın; boş state dönen, veri beklerken spinner bırakan veya 200 yanıtla ince içerik sunan sayfalar soft 404 benzeri risk üretir. Google’ın JavaScript SEO Basics rehberinde History API ve gerçek href kullanımı özellikle bu yüzden vurgulanır.

  • CSR: Uygulama hissi güçlüdür, ama ana içerik JS’ye bağımlıysa test yükü artar.
  • SSR: Kritik içerik ilk HTML’de gelir; özellikle kategori ve içerik sayfalarında güvenlidir.
  • SSG: Değişim sıklığı düşük sayfalarda en temiz SEO çıktılarından birini verir.
  • Prerender: Mevcut CSR projelerinde geçiş çözümü olabilir; ama içerik senkronizasyonu dikkat ister.
  • Dynamic rendering: Geçici workaround olarak düşünülebilir; kalıcı mimari tercih olarak değil.

Bir de görünürlüğün yalnızca klasik organik sonuçlarla sınırlı olmadığını not edin. AI tabanlı arama yüzeylerinde ve özet katmanlarında da net HTML, temiz başlıklar ve taranabilir iç linkler avantaj sağlar. Bu nedenle render stratejisini sadece “Google index alıyor mu?” diye değil, daha geniş keşif ve alıntılanabilirlik perspektifiyle değerlendirmek gerekir. Özellikle çok sayıda SPA route’u olan projelerde düzenli yapay zeka görünürlük analizi ile hangi sayfaların özetlenebilir sinyal ürettiğini izlemek faydalı olur.

6. Her Yayın Sonrası İçin Render Regresyon Kontrol Listesi

Render kaynaklı sorunların büyük bölümü yeni yayında değil, küçük bir release sonrası geri gelir. Yeni component, farklı lazy-load kütüphanesi, route guard değişikliği veya analytics script revizyonu; daha önce sağlam olan sayfaları sessizce bozabilir. Bu yüzden içerik ya da ürün ekibi yayına çıktıktan sonra yalnızca “sayfa açılıyor mu?” diye bakmak yetmez. En az 10 kritik URL’lik sabit bir kontrol seti belirleyin ve her sürümden sonra aynı akışla yeniden test edin.

  • 1. Ana sayfa, kategori, ürün veya hizmet sayfalarından kritik URL seti oluşturun.
  • 2. View Source içinde ana metin ve iç linklerin varlığını kontrol edin.
  • 3. DevTools DOM’da sonradan eklenen blokları not edin.
  • 4. Search Console canlı testte screenshot ve render edilmiş HTML’i inceleyin.
  • 5. Console hataları ve engellenen kaynakları ayrı listeleyin.
  • 6. Canonical, meta title ve meta description değişimlerini karşılaştırın.
  • 7. Structured data’nın Rich Results Test’te okunabildiğini doğrulayın.
  • 8. Bing Live URL ile ikinci motor görünümünü kontrol edin.
  • 9. JS ile üretilen linklerin gerçek href çıktısı verdiğini teyit edin.
  • 10. Yayın sonrası sıralama ve tıklanma sapmasını bir hafta izleyin.

Bu akışı manuel yürütmek mümkün, fakat süreklilik için merkezi takip daha değerlidir. SEOYEN tarafında periyodik site sağlığı taraması, engellenen JS/CSS kaynakları, kırık iç linkler ve teknik açıkları Türkçe arayüzde düzenli görünür kılar. Render sorununun etkisini yalnızca teknik olarak değil, organik performans tarafında da görmek istediğinizde sıralama takibi ile kritik URL’lerin pozisyon değişimini aynı operasyon akışına bağlayabilirsiniz. Bu yaklaşım, farklı araçlara bölünmüş takip yerine tek platformda daha net bir kontrol sağlar.

Ekibin çalışma biçimi açısından Türkçe arayüz, TL bazlı fiyatlandırma ve yerel destek de pratik avantaj sağlar; özellikle geliştirici, SEO uzmanı ve işletme sahibinin aynı rapora bakması gereken yapılarda. Sürekli kontrol süreci kurmak isteyen ekipler için doğru paket detaylarını fiyatlandırma planları üzerinden görmek daha sağlıklıdır. Özetle iyi test; tek seferlik canlı URL denemesi değil, her yayın sonrası tekrarlanan ve kayıt altına alınan bir regresyon disiplinidir.

Kaynaklar

  1. Understand JavaScript SEO Basics (Google Search Central — 2025-12-18)
  2. Fix Search-Related JavaScript Problems (Google Search Central — 2025-12-18)
  3. Fix Lazy-Loaded Website Content (Google Search Central — 2025-12-10)
  4. Debug Your Website Pages (Google Search Central — 2025-12-10)
  5. Dynamic Rendering as a workaround (Google Search Central — 2025-12-10)
  6. URL Inspection (Bing Webmaster Tools — 2026)
  7. Lazy loading (MDN Web Docs — 2026)

Sıkça Sorulan Sorular

Evet, görebilir. ancak bunu ham HTML'i aldıktan sonra ayrı bir render aşamasında yapar. Sorun da tam burada başlar. Eğer ana içerik, linkler veya meta öğeleri yalnızca JavaScript çalıştıktan sonra oluşuyorsa. render kuyruğu, engellenen kaynak, console hatası veya etkileşim bağımlı yükleme nedeniyle bunların bir kısmı eksik kalabilir. Bu yüzden “tarayıcıda görünüyor” demek tek başına yeterli değildir. En doğru yaklaşım, Search Console canlı testi ve render edilmiş HTML çıktısını ham kaynak kodla karşılaştırmaktır.

Önce içerik ham HTML'de var mı diye View Source kontrolü yapın. Ardından aynı URL'yi Search Console URL Denetleme canlı testi ve Rich Results Test içinde açıp render edilmiş HTML'i inceleyin. İçerik yalnızca tarayıcı DOM'unda görünüyor, ama canlı testte görünmüyorsa indeksleme riski vardır. Bir adım daha ileri gidip Bing Live URL ile ikinci motor doğrulaması yaparsanız sorunun Google'a özgü mü, genel render akışına mı bağlı olduğunu daha net anlarsınız.

İlgili URL için canlı test başlatın ve sonuç ekranında üç şeye birlikte bakın: render edilmiş HTML, ekran görüntüsü ve kaynak/console sinyalleri. Render edilmiş HTML içinde ana metin, iç linkler, canonical, meta description ve önemli schema bloklarını arayın. Ekran görüntüsü görsel olarak yardımcı olur ama asıl karar metin tabanlı HTML incelemesinden çıkar. Eğer console tarafında hata veya engellenen kaynak varsa bunu not edin. çünkü eksik içerik çoğu zaman doğrudan bu sinyallerle açıklanır.

Evet, özellikle yükleme scroll, click veya özel JavaScript tetikleyicisine bağlıysa eksik görülebilir. Native lazy loading çoğu durumda daha öngörülebilir olsa da metin blokları, açıklamalar, yorumlar veya görseller yalnızca kullanıcı etkileşimiyle yükleniyorsa risk artar. Test sırasında ham HTML, DevTools DOM'u ve canlı URL araçlarında aynı öğenin görünüp görünmediğini karşılaştırın. Özellikle infinite scroll ve accordion içeriği olan sayfalarda bu kontrolü atlamamak gerekir.

Evet, etkileyebilir. İçeriğin yalnızca tarayıcıda, yani JavaScript çalıştıktan sonra görünmesi onun arama motorunda da güvenle görüldüğü anlamına gelmez. Render aşamasında yaşanan gecikme, hata, engellenen dosya veya etkileşim bağımlılığı nedeniyle aynı blok bot tarafında eksik kalabilir. Bu durum ana metin, iç linkler, ürün detayları, meta tag'ler veya structured data için görünürlük kaybı yaratır. Bu yüzden içerik sadece kullanıcıya değil, ham HTML ve render edilmiş HTML katmanlarında da kontrol edilmelidir.

SPA testinde her route'u ayrı URL gibi ele almak gerekir. Önce gerçek href kullanan taranabilir bağlantılarınız olduğundan emin olun. fragment tabanlı yönlendirmeler ve yalnızca tıklama olayıyla açılan bölümler risklidir. Sonra her kritik route için Search Console canlı testi, render edilmiş HTML, screenshot ve gerekiyorsa Bing Live URL kontrolü yapın. Ayrıca boş state, spinner'da takılı kalan görünüm veya 200 yanıtla zayıf içerik sunan sayfalar soft 404 benzeri sorunlar üretebilir. bunları da test akışına dahil edin.

Genel olarak en güvenli seçenekler SSR ve statik üretimdir. çünkü arama motoruna kritik içeriği ilk HTML yanıtında verirler. Prerender, mevcut CSR projelerinde işe yarayan ara çözüm olabilir. ancak içerik eşitlemesi dikkat ister. Dynamic rendering ise Google'ın güncel dokümantasyonunda uzun vadeli çözüm değil, geçici workaround olarak çerçevelenir. Bu nedenle yeni projelerde kalıcı mimari karar olarak değil, geçiş dönemi önlemi olarak düşünmek daha doğrudur.

← Topical otorite ölçümü: konu uzmanlığı nasıl değerlendirilir? Google Business Profile kategori seçimi yerel sıralamayı nasıl etkiler? →

İlgili Yazılar

📝
Teknik SEO

Üçüncü taraf script’ler dönüşüm ve site hızı dengesi

13.06.2026 Oku →
📝
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 →