JavaScript SEO, web sitelerinde JavaScript kullanılan sayfaların Google ve diğer arama motorları tarafından doğru şekilde taranabilir, render edilebilir, ve indexlenebilir hale getirilmesine odaklanan teknik SEO uygulamalarıdır. Amacı, kullanıcı deneyimini iyileştirirken içeriğin arama sonuçlarında görünürlüğünü korumaktır.
JavaScript SEO Nedir?
JavaScript, web sitelerine interaktivite kazandırsa da arama motorlarının bütün sayfaları eksiksiz anlamasını zorlaştırabilir. Bu noktada JavaScript SEO devreye girer. JS SEO, sayfaların kullanıcıya değer sunan interaktif özelliklerini korurken aynı zamanda araştırma motorlarının erişebileceği statik HTML içeriği sağlamayı hedefler. Google’un resmi rehberi de JavaScript tabanlı siteleri işlerken bu süreci 1. tarama, 2. render, 3. index adımlarıyla yürüttüğünü belirtir.

Client-side Rendering (CSR): Kullanıcı Tarafında Oluşturma
CSR, sayfanın minimal HTML’inin gönderildiği, JavaScript’in tarayıcıda çalışarak DOM’u şekillendirdiği yaklaşımdır. Bu, sayfa yüklemesini hızlı gösterse de Googlebot’un anlık olarak tam içerik gösterilmediğinde taramayı kaçırmasına neden olabilir.
- Örnek:
<div id="content"></div>
ve bir fetch işlemiyle içerik eklenir. - SEO sorunu: Bot, JS çalışmadan sayfayı render edemezse içerik görünmez kalabilir.
Bu Sorun Nasıl Çözülür?
- Kritik içerikler sayfanın ilk yüklenen HTML’inde sunulmalı.
- Lazy-loading içerikler için
<noscript>
versiyonları eklenmeli. - Google Search Console ile canlı URL test edilip eksik içerikler tespit edilmeli.
Server-side Rendering (SSR): Sunucu Tarafında Oluşturma
SSR’de, sunucu HTML’i tamamen oluşturur ve tarayıcıya gönderir. Bu yöntem Googlebot’un tüm içeriği aynı anda taramasını sağlar.
- Örnek teknoloji: Next.js, Nuxt.js, Express + EJS kullanılarak sayfa sunulur.
- Avantaj: Google’ın ikinci bir render döngüsüne girmesine gerek kalmadan içeriği anlaması sağlanır.
Uygulama Önerileri:
- SSR ile sayfanın ilk yüklenişinde tüm meta tag’leri ve içeriği hazır sun.
getServerSideProps()
(Next.js) veya benzeri SSR fonksiyonları kullan.
JavaScript SEO Faydaları Nedir?
- Dinamik İçerik Kullanımı: Kullanıcı deneyimini artırır.
- Performans: Kod bölme (code-splitting) ile daha az JS yüklenir.
- UX-SEO Dengesi: Sayfa içi etkileşim ile bot erişimi aynı anda sağlanabilir.
JavaScript SEO Nasıl Yapılır?
JavaScript SEO doğru uygulandığında hem teknik hem içeriksel avantaj sağlar. Aşağıda adım adım bir rehber sunulmuştur:
1. İçeriğin İlk Yüklemede Görünür Olmasını Sağla
Arama motoru botları sayfanın ilk HTML’ini analiz eder. Bu yüzden JavaScript ile sonradan gelen içerikler gecikmeli olarak görünür olabilir.
Yapılması Gerekenler:
renderToString()
gibi SSR fonksiyonları kullanarak kritik içerikleri HTML içinde sun.- Önemli metinler için fallback
<noscript>
etiketleri ekle.
2. Tarama ve Render İşlemlerini Test Et
Googlebot’un sayfanı nasıl render ettiğini görmek için şu araçları kullan:
- Google Search Console – URL Denetleme Aracı
- Mobile-friendly Test (Google tarafından sunulur)
- Screaming Frog (JS render modu)
3. Linklerin Tarama Dostu Olduğundan Emin Ol
JavaScript ile oluşturulan <a>
etiketleri botlar tarafından bazen algılanmaz.
Yapılması Gerekenler:
<a href="/hizmetler">Hizmetler</a>
şeklinde açık HTML link yapısı kullan.onclick
ile yönlendirilen buton linkleri yerine gerçek bağlantılar kullan.
4. Yapılandırılmış Veriler HTML’de Hazır Sunulmalı
JSON-LD schema’lar JavaScript ile sonradan yüklenirse bot bunlara ulaşamayabilir.
Yapılması Gerekenler:
Product
,Article
,FAQPage
gibi yapıları ilk yüklemede göm.ld+json
script’lerini SSR içinde sun.
5. Hatalı Bot Yönlendirmelerini Engelle
- Canonical URL’ler JavaScript tarafından değil, statik olarak belirlenmeli.
- Open Graph ve meta description tag’leri HTML içinde hazır olmalı.
En İyi JavaScript SEO Çözümleri
- Next.js / Nuxt.js: SSR + CSR kombinasyonu destekler.
- Prerender.io / Rendertron: Botlara statik HTML sunar.
- Hybrid Rendering (Universal Apps): SSR ile ilk render, CSR ile etkileşim.
JavaScript SEO Sorunları ve Çözümleri
Sorun 1: Google İçeriği Render Etmeden Önce Göremiyor
Çözüm: SSR ya da Dinamik Render ile içeriği ilk aşamada HTML içinde sun.
Sorun 2: JS Linkleri Botlar Tarafından Algılanmıyor
Çözüm: Açık <a href>
kullan. JS ile üretilen linkleri fallback HTML ile destekle.
Sorun 3: Meta Tag ve Canonical JS ile Geliyor
Çözüm: <head>
içindeki tüm meta etiketler HTML renderında hazır olmalı.
Sorun 4: Google Sayfayı 2 Aşamada Render Ediyor (gecikme yaşanıyor)
Çözüm: Kod bölme, lazy-load sınırlaması ve kritik içeriklerin yukarıda sunulması önerilir.
Sorun 5: İçerik API’den Geç Geliyor (fetch gecikmesi)
Çözüm: getInitialProps ya da SSR API çağrıları ile HTML içinde içerik hazır sunulmalı.
Google JavaScript ile Sayfaları Nasıl Yükler?
Googlebot şu üç aşamadan geçer:
- HTML çekimi
- Render işlemi (headless browser kullanılarak)
- Indexleme (render sonrası içerik üzerinden)
Google render işlemini her zaman anında yapamaz. Yoğun JS içeriğe sahip sayfalar “second wave” olarak geç render edilir.
En İyi JavaScript Yükleme Seçenekleri Nelerdir?
- SSR (Server-side rendering) – SEO için en iyi yöntem.
- Prerender (static HTML cache) – Botlar için içerik hazır sunulur.
- Static Site Generation (SSG) – Blog, ürün sayfaları için ideal.
- Dynamic Rendering – Botlara özel SSR, kullanıcılara CSR.
- ISR (Incremental Static Regeneration) – Güncelleme gerektiren siteler için.