İçeriğe atla
KaynakOl

Tek sayfa uygulamanız AI botuna boş bir kabuk gösteriyor olabilir

React, Vue veya Angular ile istemci tarafında render edilen bir sayfa, tarayıcıda mükemmel görünür. JavaScript çalıştırmayan bir bota giden ham HTML'de aynı sayfa genellikle boş bir `<div id="root">`'tan ibarettir.

Mustafa Gezer 2 dk okuma

Bir React uygulamasının ham HTML'i genellikle şuna benzer:

<body>
  <div id="root"></div>
  <script src="/static/js/bundle.js"></script>
</body>

Tarayıcı bu HTML'i alır, bundle.js'i çalıştırır, ve içerik saniyeler içinde #root içine dolar. Kullanıcı için sonuç kusursuzdur. AI botlarının tam listesinde anlatılan botların büyük kısmı için ise bundle.js hiç çalışmaz — bot yalnızca yukarıdaki iki satırı görür ve okur. Sayfa onlar için boştur.

Hangi botlar render eder, hangileri etmez

BotJavaScript render
GooglebotEvet, ama gecikmeli (iki dalgalı indeksleme)
BingbotSınırlı
GPTBot, ClaudeBot, CCBot, PerplexityBot, BytespiderHayır — ham HTML alır
ChatGPT-User, Claude-User, Perplexity-UserGenellikle hayır

Tablo şunu söylüyor: arama motorlarının en büyüğü bu sorunu büyük ölçüde tolere eder, ama AI görünürlüğünde asıl belirleyici olan botların hiçbiri tolere etmez.

Kendi sitenizde nasıl test edersiniz

Adım 1. Tarayıcıda sayfayı açın, sağ tık → "Kaynağı görüntüle" (Ctrl+U veya Cmd+Option+U). Bu, JavaScript çalıştırılmadan önce sunucudan gelen ham HTML'dir — botun gördüğü şeyle aynıdır.

Adım 2. Aynı sayfada geliştirici araçlarını açıp "Elements" panelini inceleyin. Bu, JavaScript çalıştıktan sonraki DOM'dur — tarayıcının gördüğü şeydir.

İkisi arasındaki fark, botun kaybettiği içeriktir. Ana içerik ikisinde de aynıysa sorun yok. Kaynak görünümünde yalnızca bir kabuk varsa ve Elements panelinde tam sayfa varsa, JS-render sorununuz var demektir.

Adım 3. Aynı testi bir AI bot user-agent'ıyla gerçek bir curl isteği atarak doğrulayın — bot erişim kontrolü bunu otomatik yapar ve dönen ham yanıtı gösterir.

Çözüm seçenekleri, artan maliyet sırasıyla

Statik site üretimi (SSG). İçerik derleme zamanında HTML'e gömülür. En düşük maliyet, ama içerik sık değişen sitelerde (fiyat, stok) uygun değil.

Artımlı statik yenileme (ISR) / önceden render (prerendering). Sayfalar periyodik olarak yeniden üretilir veya bir servis (Prerender.io gibi) bot isteklerini yakalayıp önceden render edilmiş HTML'i sunar. İçerik güncelliği ile maliyet arasında orta nokta.

Sunucu tarafı render (SSR). Her istekte sunucu HTML'i tam olarak üretir. En güncel içerik, en yüksek sunucu maliyeti.

Dinamik render (bot algılayıp farklı yanıt verme). User-agent'a göre botlara render edilmiş HTML, kullanıcılara normal SPA sunmak. Google uzun süre bunu kabul etti; ama iki farklı içerik sunma riski taşır ve karmaşıklığı gizli bir teknik borca dönüşür.

En sık yapılan hata: yalnızca Google için düzeltmek

Bir ekip "Google indeksliyor, sorun yok" deyip SSR'ı yalnızca Googlebot user-agent'ı tespit edildiğinde devreye sokabilir. Bu, tam olarak katman karışıklığının bir başka biçimi: bir bot için çalışan çözümü tüm botlar için çalışıyor saymak. Doğru çözüm bot-agnostiktir — hangi user-agent geldiğine bakmadan aynı tam HTML'i sunmak.

Kontrol listesi

  • Kaynak görünümü ile render edilmiş DOM arasında içerik farkı var mı
  • Ana içerik (fiyat, açıklama, SSS) ham HTML'de mevcut mu
  • Çözüm yalnızca Googlebot'a özel değil, tüm botlar için geçerli mi
  • AI bot user-agent'ıyla gerçek istek atılarak sonuç doğrulandı mı
Mustafa GezerSEO ve AI görünürlük denetçisi

Markaların yapay zekâ destekli arama sistemlerindeki görünürlüğünü ölçer ve düzeltir. Ölçüm metodolojisi ham sunucu yanıtına ve tekrarlı çalıştırmaya dayanır; her bulgu kaydedilmiş bir sunucu yanıtına bağlanır.

Sık sorulanlar

Sitemin JS-render sorunu olup olmadığını nasıl anlarım?

Tarayıcıda "Kaynağı görüntüle" (view-source) yapın, JavaScript çalıştırılmadan gelen ham HTML'i görürsünüz. İçerik orada değilse ve yalnızca geliştirici araçlarındaki "Elements" panelinde görünüyorsa, içerik JavaScript ile sonradan ekleniyor demektir.

Sunucu tarafı render (SSR) tek çözüm mü?

En sağlamı evet, ama tek seçenek değil. Statik site üretimi (SSG), artımlı statik yenileme (ISR) ve önceden render etme (prerendering) servisleri de aynı sonucu — botun ham HTML'de tam içeriği görmesini — farklı maliyet/karmaşıklık dengesiyle sağlar.

Googlebot JavaScript çalıştırıyor, o zaman sorun yok mu?

Googlebot çalıştırır ama gecikmeli ve sınırlı bir bütçeyle. Diğer AI botlarının (GPTBot, ClaudeBot, PerplexityBot dahil çoğu) render yeteneği bile yok — Google için "çalışıyor" olması diğer botlar için de çalıştığı anlamına gelmez.

İlgili yazılar

Hangi CDN/WAF, AI botlarını varsayılan olarak engelliyor

Bir CDN veya güvenlik duvarı seçmek, bilmeden bir AI görünürlük kararı vermek olabilir. Sağlayıcılar arasında "varsayılan açık" ile "varsayılan kapalı" farkı, sitenizin görünürlüğünü siz hiçbir ayar değiştirmeden belirler.

1 dk okuma

IP aralığı doğrulama: sahte bot trafiğini ayıklamak

User-agent dizgisi taklit edilebilir; bir isteğin gerçekten iddia ettiği bot olup olmadığını kesin olarak bilmenin iki yolu var: ters DNS ve yayımlanmış IP aralıkları. İkisi farklı durumlar için işe yarar.

1 dk okuma

Ölçerek başlayın

Bu yazıda anlatılanın sitenizde geçerli olup olmadığını tahmin etmeyin — ölçün. AI Bot Erişim Kontrolü ücretsiz ve ~10 saniye sürüyor.

WhatsApp