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

JavaScript SEO denetimi: 2026 için adım adım denetim rehberi

JavaScript tabanlı sitelerde ham HTML, render DOM, link keşfi ve URL Inspection verilerini 2026 odaklı akışla denetleyip sorunları önceliklendirin net biçimde.

Özet (TL;DR): JavaScript tabanlı URL’lerde görünürlük sorunu çoğu zaman koddan değil, render zincirindeki boşluklardan çıkar. Bu rehber ham HTML, DOM, URL Inspection ve log verisini tek akışta toplar. 2026 için hangi hatanın keşfi, hangisinin indekslemeyi bozduğunu ayırır. Sonunda düzeltmeleri etki-efor sırasına koyarsınız.

Hızlı Cevap

JavaScript SEO denetimi, bir URL’nin ham HTML’ini, render edilmiş DOM’unu ve Search Console canlı testini aynı anda inceleyip link, içerik, canonical, meta ve structured data farklarını doğrulama sürecidir. Etkili denetim; keşif, render ve indeksleme sorunlarını ayrı sınıflandırır, sonra log ve yeniden tarama verisiyle önceliklendirir.

Önemli Noktalar

  • Ham HTML’de görünmeyen içerik ve linkler keşif riskini büyütür.
  • Canlı test, render ekranı ve ham kaynak birlikte okunmalıdır.
  • Kamuya açık sayfalarda SSR, SSG veya prerender genelde daha güvenlidir.
  • Önceliklendirme, trafik kaybı üreten render ve link hatalarıyla başlamalıdır.

JavaScript SEO denetimi neden ayrı bir süreç ister?

JavaScript SEO denetimi, klasik HTML kontrolünden ayrı düşünülmelidir çünkü Google bir sayfayı tek adımda değerlendirmez. Resmi rehberde anlatıldığı gibi süreç önce crawl, sonra render, ardından index kararına gider; bu yüzden sayfa tarayıcıda düzgün açılıyor olsa bile kritik alanlar Google tarafında eksik kalabilir (Google Search Central). Özellikle ana içerik, iç linkler veya canonical yalnızca sonradan oluşuyorsa sorun görünmez değil, gecikmiş görünürlük şeklinde ortaya çıkar.

Ticari niyeti yüksek URL’lerde bu fark daha pahalıya mal olur. Kategori, ürün, hizmet ve lead toplama sayfalarında görünmeyen içerik; bozuk snippet, zayıf başlık eşleşmesi ve geç keşfedilen alt sayfalar demektir. Kısacası sorun yalnızca index almak değildir; doğru URL’nin doğru başlıkla, doğru içerikle ve doğru bağlantı ağıyla görünmesi gerekir. JavaScript yüzünden title, meta description, heading veya structured data geç ekleniyorsa tıklanma ve dönüşüm kalitesi de etkilenir.

2026 itibarıyla risk alanı yalnızca Google ile sınırlı değil. Google dışındaki AI görünürlük katmanları ve çeşitli crawler akışları, pratikte ham HTML’i ve doğrudan erişilebilir metni daha çok önemser. Bu nedenle rendered DOM kusursuz görünse bile ilk HTML zayıfsa görünürlük zinciri kırılabilir. Terminolojiyi ekip içinde ortaklaştırmak istiyorsanız SEO terimleri sözlüğü bu denetimlerde iyi bir referans noktasıdır.

Aynı URL’yi üç gözle test edin: ham HTML, DOM ve canlı test

En pratik denetim, aynı URL’yi üç panelde yan yana açmaktır: View Source ile ham HTML, tarayıcı geliştirici araçlarında render edilmiş DOM ve Search Console’da canlı test. Bu yaklaşım sorunu teoriden çıkarır. Hangi öğenin sunucudan geldiğini, hangisinin yalnızca tarayıcıda üretildiğini ve hangisinin Google’ın canlı testinde hâlâ eksik kaldığını aynı anda görürsünüz.

İlk bakmanız gereken alanlar nettir: ana içerik bloğu, iç linkler, rel=canonical, title, meta description, heading yapısı ve JSON-LD. Google Search Console yardım dokümanında, canlı testte ekran görüntüsü, raw HTML, HTTP headers, JavaScript console çıktısı ve yüklenen sayfa kaynaklarının görülebildiği açıkça belirtilir (URL Inspection Tool). Bu ekran, render sonrası gerçekten ne kaldığını doğrulamak için en kritik kanıttır.

Uygulamalı denetimde asıl fark, sayısal boşluğu görünür kılmaktır. Örneğin ham HTML’de yalnızca 6 kategori linki varken DOM’da 24 link oluşuyorsa, keşif neredeyse tamamen render aşamasına bırakılmıştır. Benzer şekilde DOM’da görünen meta description canlı testte yoksa genelde geç çalışan bir bundle, bloklanan bir kaynak ya da API timeout problemi vardır. Tek URL, üç çıktı, tek karar notu yaklaşımı ekip içinde en az tartışmayla en çok netlik üreten yöntemdir.

  • Ham HTML kontrolü: İçerik, kritik linkler ve canonical gerçekten kaynakta var mı?
  • DOM kontrolü: Tarayıcı son durumda hangi başlıkları, kartları ve metinleri ekliyor?
  • Canlı test kontrolü: Googlebot benzeri görünümde ekran görüntüsü, kaynak ve console hataları tutarlı mı?
  • Fark analizi: Kaybolan öğe içerik mi, link mi, meta alanı mı, yoksa schema mı?

Keşif ve erişilebilirlik kontrolleri: linkler, içerik blokları ve lazy loading

Keşfedilebilirlik tarafında ilk soru şudur: Google yeni URL’leri gerçekten bağlantı olarak görebiliyor mu? Menü, filtre, kategori kartı veya pagination elemanları yalnızca click, hover ya da custom event sonrası oluşuyorsa keşif güvenilirliği düşer. Link metninin görünmesi yetmez; gerçek bir href üretmesi gerekir. Özellikle SPA yapılarda buton gibi duran ama URL üretmeyen öğeler, insan için çalışsa bile crawler için kör nokta oluşturur.

Burada ikinci kontrol routing katmanıdır. History API kullanan SPA yapılarında temiz URL üretmek faydalıdır; ancak fragment tabanlı yapılar, eksik sunucu yanıtları ve sitemap’te yer almayan derin sayfalar görünürlük kaybı yaratır. Kategori 2, kategori 3 veya ürün varyasyonları yalnızca istemci tarafı geçişle açılıyor; sunucu aynı URL’lerde anlamlı HTML dönmüyorsa o sayfalar keşif ve indexleme arasında sıkışır. Soft 404 riski de özellikle hata rotalarının her istekte 200 dönmesiyle büyür.

Lazy loading ise performans için faydalı olabilir ama kritik içerik ona emanet edilmemelidir. MDN’nin lazy loading rehberinde bu yaklaşımın çoğunlukla scroll ve navigation gibi etkileşimler sırasında devreye girdiği anlatılır (MDN Web Docs). SEO açısından problem tam da budur: açıklama metni, ürün listesi ya da iç link bloğu yalnızca scroll sonrası doğuyorsa crawler aynı derinliği göremeyebilir. Görseli lazy load etmek başka, metni ve linki lazy load etmek başka bir karardır.

  • İç linkler: Tıklama beklemeden doğrudan href ile üretildiğinden emin olun.
  • Pagination: Her sayfa ayrı URL, ayrı içerik ve sitemap izi taşımalıdır.
  • Routing: Sunucu, halka açık rotalara boş kabuk değil anlamlı HTML döndürmelidir.
  • Lazy loading: Kritik metin ve link blokları scroll bağımlı olmamalıdır.
  • Kaynak erişimi: API timeout, engelli JS ve bloklanan CSS kritik bölümleri gizlememelidir.

URL Inspection, Rich Results Test ve loglarla doğrulama akışı

Bu aşamada amaç, sorunun gerçekten render mı, crawl mı, indexleme mi olduğunu ayırmaktır. URL Inspection’da önce indexed result ile live test arasındaki farkı okuyun. Search Console yardım sayfası, ilk ekrandaki sonucun canlı sürüm değil, Google’ın en son indexlediği sürüm olduğunu açıkça söyler; güncel sayfayı görmek için Live Test gerekir (Google Search Console Help). Bu ayrım kritik, çünkü ekipler sıklıkla eski index verisini canlı durum sanıp yanlış yere müdahale eder.

Ardından Rich Results Test ile schema ve render sonrası kaynak kodu doğrulayın. Google’ın resmi dökümantasyonuna göre araç, rendered source code üzerinden bulunan zengin sonuç türlerini, hata ve uyarıları gösterir; ayrıca varsayılan user agent smartphone’dur ve tüm kaynakların anonim kullanıcıya açık olması gerekir (Rich Results Test). Bu yüzden canlı sitede çalışan ama giriş, firewall veya robots engeline takılan kaynaklar testte görünmeyebilir. Schema’nın DOM’da görünmesi yetmez; test aracının onu gerçekten çözebilmesi gerekir.

Son katman log ve hata verisidir. Google’ın JavaScript sorun giderme rehberi, Googlebot ve Web Rendering Service’in temel içeriğe katkı vermeyen bazı kaynakları çekmeyebileceğini ve istemci tarafı analytics verisinin tek başına tam resim vermeyebileceğini vurgular (Fix Search-related JavaScript problems). Pratik ayrım şudur: HTML isteği var ama içerik API’si 500 dönüyorsa bu render sorunudur; çocuk URL’lere hiç istek gitmiyorsa keşif sorunudur; canlı test temiz ama indexlenmiş sürüm eskiyse bu çoğu zaman yeniden tarama ve işleme sırası problemidir.

CSR, SSR, SSG ve prerender için 2026 karar matrisi

2026’da kamuya açık sayfalar için temel soru artık şudur: SEO sinyallerini ne kadarını ilk HTML’de garanti ediyorsunuz? web.dev’in 5 Ocak 2026 güncellenen rendering rehberi, birçok senaryoda tam rehydration yaklaşımı yerine server-side rendering veya static rendering düşünülmesini önerir (web.dev). Bunun nedeni yalnızca performans değil; içerik, link ve meta alanlarının daha erken ve daha kararlı görünmesidir.

Saf CSR, uygulama deneyimi için yanlış değildir; ancak halka açık landing page, kategori, ürün ve şehir sayfalarında risk daha yüksektir. React tabanlı projelerde halka açık route’lar için SSR, SSG veya prerender çoğu zaman daha güvenlidir. Next.js tarafında sunucu bileşenleri ve statik üretim avantaj sağlar ama client component bağımlılığı arttıkça risk geri gelir. Nuxt projelerinde route bazlı render kararları fark yaratır. Angular ya da benzeri saf CSR yapılarda ise en azından kritik rotalara prerender ya da SSR katmanı eklemek görünürlük tarafını belirgin biçimde güçlendirir.

Denetimde karar verirken üç metriğe bakın: ilk HTML’de içerik görünürlüğü, link keşfi güvenilirliği ve snippet tutarlılığı. Hydration gecikmesi, büyük JS paketleri ve render bloklayan üçüncü taraf bağımlılıklar bu üç alanı aynı anda bozabilir. Google’ın JavaScript SEO basics rehberi, canonical ve HTTP durum kodlarının ilk katmanda tutarlı olmasının önemini özellikle vurgular; SPA hata rotalarında soft 404 yönetimi de bunun parçasıdır (Google Search Central). Kısacası mimari tercihi geliştirici rahatlığına göre değil, URL tipine göre vermek gerekir.

  • Landing page: SSR, SSG veya prerender daha güvenli tercihtir.
  • Kategori ve ürün URL’leri: İlk HTML’de metin, link ve canonical görünmelidir.
  • Giriş gerektiren uygulama ekranları: Saf CSR kabul edilebilir, SEO önceliği düşüktür.
  • Büyük JS bundle’ları: Hydration gecikmesi ve meta tutarsızlığı üretebilir.

Adım Adım JavaScript tabanlı bir URL için SEO denetimi

Aşağıdaki akış, tek bir URL üzerinde hızlı ama savunulabilir bir denetim yapmanızı sağlar. Amaç aynı anda hem geliştiriciye net hata kaydı vermek hem de SEO tarafında hangi düzeltmenin önce yapılacağını belirlemektir.

  1. Ham HTML çıktısını alın ve kaydedin. View Source, curl veya JS kapalı görünümle sayfanın ilk HTML’ini saklayın. Ana metin, iç linkler, canonical, title, meta description ve structured data gerçekten sunucudan geliyor mu bunu işaretleyin. İlk HTML boşsa veya yalnızca uygulama kabuğu dönüyorsa sorun büyük ihtimalle mimari düzeydedir.
  2. Render edilmiş DOM ile farkları eşleyin. Tarayıcıda son DOM’u açın ve ham HTML’de olmayan öğeleri tek tek not edin. İçerik kartları, breadcrumb, ürün açıklaması, filtre linkleri veya FAQ blokları yalnızca burada görünüyorsa bunlar render bağımlıdır. Bu fark, keşif mi yoksa yalnızca snippet kalitesi mi etkilenecek sorusunun temel cevabını verir.
  3. İç link ve routing akışını test edin. Menü, kategori, pagination ve kart tıklamalarının gerçek URL üretip üretmediğini kontrol edin. Buton görünümlü ama href üretmeyen öğeler, fragment tabanlı rotalar ve 200 dönen hata sayfaları özellikle not edilmelidir. Sitemap’te yer alan URL’lerin sunucudan anlamlı HTML dönmesi, bu adımın geçme koşuludur.
  4. Meta, canonical ve schema’yı doğrulayın. Title, description, canonical ve JSON-LD alanlarını hem ilk HTML’de hem DOM’da karşılaştırın. İlk HTML ile render sonrası değerler farklıysa Google tutarsız sinyal alabilir. Canonical’ın sonradan başka URL’ye çevrilmesi, client-side soft 404 mantığı ve eksik structured data çoğu projede aynı kökten gelir.
  5. Canlı test ve rich result kontrollerini çalıştırın. URL Inspection canlı testinde ekran görüntüsü, rendered HTML, HTTP headers ve JavaScript console çıktısını inceleyin. Sonra Rich Results Test ile schema’nın gerçekten parse edilip edilmediğini kontrol edin. Kaynak yüklenmiyorsa, robots veya erişim problemi varsa bunu render sorunu gibi değil kaynak erişim sorunu gibi etiketleyin.
  6. Bulguları önceliklendirin ve tekrar ölçün. Trafik kaybı üreten eksikleri önce kapatın: görünmeyen ana içerik, keşfedilemeyen iç linkler, soft 404 ve canonical çakışmaları. Ardından düzeltme sonrası aynı URL’yi tekrar üç gözle test edin. Değişiklik yalnızca tarayıcıda değil, canlı test ve yeniden tarama sinyallerinde de görünmüyorsa iş tamamlanmış sayılmaz.

Bulguları önceliklendirme ve SEOYEN ile tekrar denetim planı

Bulgu listesi tamamlandığında hepsini aynı torbaya atmayın. Önce etkisi yüksek, doğrulaması kolay hataları ayırın: ilk HTML’de görünmeyen ana içerik, keşfedilemeyen iç linkler, canonical çakışması, noindex hatası ve soft 404 rotaları genelde ilk sıradadır. İkinci sırada lazy loading yüzünden eksik kalan destekleyici bloklar, render sonrası bozulan structured data ve timeout’a giren API bileşenleri yer alır. Bu sıra, mühendislik eforunu en yüksek görünürlük geri dönüşüne bağlar.

Tekrar ölçüm tarafında iş akışını ikiye ayırmak verimlidir. Teknik ekip düzeltmeleri kapatırken pazarlama ekibi sonuç etkisini izlemelidir. Bu noktada site audit raporu teknik kırılımları tek yerde toplamaya yardımcı olurken, AI görünürlük analizi ham HTML fallback’i zayıf sayfaların Google dışındaki görünürlüğünü ayrıca takip etmeyi kolaylaştırır. SEOYEN’in farkı burada belirginleşir: tüm SEO araçlarını tek platformda toplar, Türkçe arayüz sunar, TL bazlı fiyatlandırma kullanır ve yerel Türkçe destekle teknik ekip ile pazarlama ekibi arasındaki yorum farkını azaltır.

Ahrefs veya SEMrush benzeri geniş araç setlerinden gelen ekipler için esas fark, aynı denetim disiplinini Türkiye pazarına uyarlanmış daha sade bir iş akışında bulabilmektir. Rakip araçlar pek çok işi yapar; SEOYEN bunu yerel ekiplerin daha hızlı karar vereceği biçimde bir araya getirir. Paket karşılaştırmasını içerikte sabitlemek yerine güncel fiyat ve paket seçenekleri sayfasına bakmak daha sağlıklıdır; böylece denetim planı fiyat değişse de güncelliğini korur.

CSR, SSR, SSG ve prerender için JavaScript SEO karar matrisi
Kriter Saf CSR SSR/SSG Prerender
İlk HTML'de içerik görünürlüğü Çoğu kritik öğe sonradan oluşur Kritik içerik başlangıçta görünür Önceden üretilmiş HTML doğrudan sunulur
İç link keşfi güvenilirliği Render'a bağımlıysa düşer Genelde daha güvenilirdir Statik çıktıda yüksek olur
Meta ve canonical tutarlılığı JS çakışmalarına açıktır Sunucu tarafında daha kararlı Yayın anında sabitlenir
Structured data doğrulanabilirliği Geç enjekte edilirse risklidir Başlangıç HTML'inde kolay doğrulanır Statik çıktıda net görünür
CWV ve hydration riski Yüksek bundle boyutunda artar Daha dengeli optimize edilebilir Genelde düşük hydration baskısı taşır
Uygulama karmaşıklığı Geliştirmesi basit olabilir Mimari disiplin gerektirir Yayın akışına ek adım ister
Kamuya açık landing page uygunluğu Sınırlı Yüksek Yüksek

Kaynaklar

  1. Understand the JavaScript SEO basics (Google Search Central — 2026)
  2. Fix Search-related JavaScript problems (Google Search Central — 2026)
  3. URL Inspection Tool (Google Search Console Help — 2026)
  4. Rich Results Test (Google Search Console Help — 2026)
  5. Rendering on the Web (web.dev — 2026-01-05)
  6. Lazy loading (MDN Web Docs — 2026)

Sıkça Sorulan Sorular

JavaScript SEO, JavaScript ile üretilen içerik, link, meta alanı ve structured data'nın arama motorları tarafından doğru biçimde taranması, render edilmesi ve indekslenmesiyle ilgilenen teknik SEO alanıdır. Klasik HTML SEO'dan farkı, sayfanın görünen halinin her zaman ilk HTML'de bulunmamasıdır. Bu yüzden yalnızca kaynak kodu değil, render sonrası DOM'u, canlı test çıktısını ve tarama erişilebilirliğini birlikte değerlendirmek gerekir. Özellikle SPA, React, Next.js, Nuxt ve Angular tabanlı projelerde bu disiplin doğrudan görünürlük kalitesini etkiler.

Evet, alabilir. Ancak kritik içerik, iç linkler veya meta alanları ilk HTML'de görünmüyor ve yalnızca render sonrası oluşuyorsa indexleme gecikebilir ya da kalite kaybıyla gerçekleşebilir. Sayfa tamamen index dışı kalmasa bile yanlış canonical, eksik snippet, düşük keşif derinliği veya soft 404 gibi ikincil sorunlar oluşabilir. Bu yüzden soru yalnızca "index alır mı" değil, "doğru içerikle ve doğru URL olarak index alır mı" şeklinde sorulmalıdır. Özellikle halka açık kategori, ürün ve landing page'lerde bu fark ticari sonuç üretir.

Etkili denetim, tek bir URL'yi üç görünümde inceleyerek yapılır: ham HTML, render edilmiş DOM ve Search Console canlı testi. Ardından iç linkler, routing, pagination, lazy loading, title, meta description, canonical ve structured data alanları karşılaştırılır. Son aşamada URL Inspection, Rich Results Test ve log verisi birlikte okunur. Bu sayede sorunların keşif, render veya indeksleme kökenli olup olmadığı ayrılır. Düzeltmeler ise etki-efor mantığıyla önceliklendirilir. görünmeyen ana içerik ve keşfedilemeyen linkler her zaman ilk sıraya alınır.

Google bir JavaScript sayfasını tipik olarak üç aşamada ele alır: önce URL'yi tarar, sonra uygun olduğunda sayfayı render eder, en son indeksleme kararı verir. Bu ayrım önemlidir çünkü taranan URL ile render edilen içerik her zaman aynı anda değerlendirilmez. Kritik içerik ve bağlantılar yalnızca istemci tarafında, geç çalışan script'lerle oluşuyorsa Google bunları daha geç görebilir veya tutarsız görebilir. Ayrıca bloklanan kaynaklar, timeout'lar ve istemci tarafı yönlendirmeler render kalitesini etkileyebilir. Bu yüzden JavaScript SEO, tek ekran kontrolüyle değil çok katmanlı doğrulamayla yürütülür.

Her sayfa için şart değildir. Giriş gerektiren uygulama ekranları, panel sayfaları veya kullanıcıya özel içerikler saf CSR ile de yönetilebilir. Ancak kamuya açık landing page, kategori, ürün, şehir veya içerik URL'lerinde SSR, SSG ya da prerender çoğu zaman daha güvenli bir tercihtir. Next.js gibi yapılarda bu seçenekler zaten mimarinin parçasıdır. önemli olan hangi route'un hangi render stratejisini kullanacağını bilinçli seçmektir. React tarafında da aynı mantık geçerlidir: SEO değeri taşıyan URL'lerde ilk HTML'de içerik, link ve meta alanlarını garanti etmek en güvenli yoldur.

Önce ilgili URL'yi Search Console'da denetleyin, ardından Live Test çalıştırın. Canlı testte rendered HTML, ekran görüntüsü, HTTP headers, yüklenen kaynaklar ve JavaScript console çıktısını birlikte okuyun. Ekran görüntüsünde içerik eksikse ya da rendered HTML'de beklenen bloklar yoksa sorun büyük ihtimalle render katmanındadır. Indexed result ile live test arasındaki farkı görmek de önemlidir. ilk ekran her zaman canlı sürüm değildir. Eğer canlı test temiz ama indexlenmiş sürüm geride kalmışsa bu kez sorun yeniden tarama veya işleme zamanlamasında olabilir.

Evet, etkiler. ancak etkinin yönü neyi lazy load ettiğinize bağlıdır. Görselleri, videoları veya kritik olmayan bileşenleri lazy load etmek çoğu durumda sorun değildir. Buna karşılık ana içerik blokları, ürün kartları, açıklama metinleri veya iç linkler yalnızca scroll ya da etkileşim sonrası yükleniyorsa keşif ve indeksleme kaybı yaşanabilir. En güvenli yaklaşım, kritik metni ve bağlantı yapısını ilk HTML'de erişilebilir tutmak. lazy loading'i destekleyici medya ve ikincil bileşenlerle sınırlamaktır. Denetimde mutlaka ham HTML ile render edilmiş görünüm yan yana karşılaştırılmalıdır.

← Görünmeyen İç Linkler Tarama ve Otorite Akışını Nasıl Bozar? Başlık etiketi mi meta açıklama mı tıklama oranını etkiler? →

İ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 →