TEKNİK SEO

Dinamik Rendering nedir? SEO ile ilişkisi nedir?

Dinamik rendering sunucunun gelen isteğin bot mu kullanıcı mı olduğuna bakıp arama motoru botlarına önceden işlenmiş statik HTML, kullanıcılara ise JavaScript ile tarayıcıda oluşan sayfayı göndermesidir. Google bu yöntemi artık önermiyor ve geçici bir çözüm olarak görüyor. Kalıcı çözüm sunucu tarafı rendering, statik rendering ya da hydration'dır.

Dinamik Rendering nedir? SEO ile ilişkisi nedir? yazısının kapak görseli
Kapak görseli: Teknik SEO kategorisindeki yazının başlığı ve rankZup logosu.

Dinamik rendering nasıl çalışır?

Dinamik rendering isteği yapan tarafı user agent bilgisinden tanıyıp iki farklı yanıt üreterek çalışır. Akış şöyledir:

  • Kullanıcı sayfayı açtığında sunucu boş bir HTML iskeleti ve JavaScript dosyalarını gönderir. Sayfa tarayıcıda oluşur.
  • Googlebot ya da başka bir bot geldiğinde istek bir rendering servisine yönlendirilir.
  • Bu servis sayfayı başsız bir Chrome içinde çalıştırır ve ortaya çıkan tam HTML'i bota gönderir. Sonuç çoğu zaman önbellekte tutulur.

Bu iş için Prerender.io gibi hazır servisler ya da Puppeteer tabanlı kendi kurulumlar kullanılır. Google'ın bir dönem örnek olarak gösterdiği Rendertron projesi artık geliştirilmiyor.

Dinamik rendering sık sık sunucu tarafı rendering (SSR) ile karıştırılır. SSR'da herkes aynı hazır HTML'i alır. Dinamik rendering'de ise bot ile kullanıcı farklı yollardan beslenir. Bu fark yöntemin hem neden işe yaradığını hem de neden sorun çıkardığını açıklar.

Google dinamik rendering'i neden artık önermiyor?

Google dinamik rendering'i kalıcı bir mimari değil, JavaScript'i işleyemeyen botlar için bir ara çözüm olarak görür. Google'ın dinamik rendering dokümantasyonu bunu açıkça yazar ve yerine sunucu tarafı rendering, statik rendering ya da hydration önerir.

Bu tavsiyenin arkasında üç pratik neden var. Googlebot bugün güncel Chrome sürümüyle JavaScript çalıştırabildiği için ona ayrı sürüm hazırlama ihtiyacı büyük ölçüde ortadan kalktı. Bota giden sürüm ile kullanıcının gördüğü sürümün aynı kalması sürekli bakım ister. Rendering servisi de ek bir altyapı maliyeti ve arıza noktası demektir.

Dinamik rendering kendi başına cloaking sayılmaz. İki sürümün içeriği benzer olduğu sürece Google bunu kabul eder. Bota farklı metin, farklı link ya da kullanıcıda olmayan bir içerik sunulursa durum cloaking'e döner ve manuel işlem riski doğar.

SEO için hangi rendering yöntemi daha güvenli?

SEO için dinamik rendering yerine hem kullanıcıya hem bota aynı hazır HTML'i veren yöntemler daha güvenlidir. Seçenekler şunlardır:

  • Sunucu tarafı rendering (SSR): Sayfa her istekte sunucuda oluşturulur. Next.js, Nuxt ve Angular gibi çatılar bunu hazır destekler. Sık değişen içerikte uygundur ama sunucu yükünü artırır.
  • Statik rendering: Sayfalar yayın anında HTML olarak üretilir ve içerik dağıtım ağından (CDN) sunulur. Blog, doküman ve kurumsal sayfalarda en hızlı, en ucuz yoldur.
  • Hydration: Sunucudan gelen hazır HTML tarayıcıda JavaScript ile etkileşimli hale getirilir. Kullanıcı içeriği hemen görür, bot da tam HTML alır.
  • Tamamen istemci tarafı rendering (CSR): Google bu sayfaları da işleyebilir ama içerik ikinci aşamada, gecikmeyle görülür. Aramada görünmesi gereken sayfalar için riskli tercihtir.

Hangi yöntemin seçildiği hızı da doğrudan etkiler. Tamamen tarayıcıda oluşan bir sayfada ana içerik JavaScript indirilip çalıştırıldıktan sonra görünür. Bu gecikme Core Web Vitals tarafında Largest Contentful Paint (LCP) değerini kötüleştirir. Ağır JavaScript ise Interaction to Next Paint (INP) değerini yükseltir.

Geçici çözüm olarak hangi durumda kullanılabilir?

Dinamik rendering mevcut bir JavaScript uygulamasını kısa sürede SSR'a taşımanın mümkün olmadığı durumlarda geçici çözüm olarak kullanılabilir. Büyük bir e-ticaret ya da ilan sitesinde ürün sayfalarının dizine girmemesi ciddi kayıpsa ve yazılım ekibinin geçiş planı aylar sürecekse geçici çözüm mantıklıdır.

Bu durumda kurulum sonrası şunları kontrol edin:

  • Search Console URL denetleme aracında "Test edilmiş sayfayı görüntüle" ile Google'ın aldığı HTML'i inceleyin. Başlık, metin, iç linkler ve yapılandırılmış veri eksiksiz olmalı.
  • Bota giden sürüm ile kullanıcı sürümünü düzenli karşılaştırın. Fiyat, stok ya da başlık farkı zamanla oluşur.
  • Rendering servisi hata verdiğinde bota boş sayfa gitmediğinden emin olun. Önbellek süresini içeriğin değişme sıklığına göre ayarlayın.
  • Geçişi bir takvime bağlayın. Dinamik rendering kalıcı bir çözüm olarak kalmamalı.

Lazy loading içeriğin görünmesini nasıl etkiler?

Doğru kurulan lazy loading içeriği gizlemez, yanlış kurulan ise Googlebot'un içeriği görmesini engelleyebilir. Bu teknik rendering yönteminden bağımsızdır. Görsellerde tarayıcının yerel loading="lazy" özelliği yeterlidir ve Google bunu sorunsuz işler.

Hatalı kullanım ise iki şekilde olur. İlk ekranda görünen ana görseli lazy yüklemek LCP'yi geciktirir. İçeriği yalnız kaydırma olayıyla yüklemek de sorun çıkarır, çünkü Googlebot sayfayı kaydırmaz ve o içeriği hiç görmeyebilir.

JavaScript'in taramaya etkisini JavaScript ve SEO yazımızda daha geniş ele aldık. Rendering kararı teknik SEO'nun diğer parçalarıyla birlikte düşünülmelidir. Teknik SEO'nun parçalarını teknik SEO konusundaki rehberimizde sıraladık. JavaScript tabanlı bir sitenin dizine eklenme sorunlarını birlikte incelemek isterseniz teknik SEO desteğimiz hakkında bilgi alabilirsiniz.

SSS

Sık sorulan sorular

Dinamik rendering cloaking sayılır mı?

Hayır. Dinamik rendering iki sürümün içeriği benzer olduğu sürece cloaking sayılmaz. Bota daha zengin metin, farklı linkler ya da kullanıcıda olmayan içerik sunulursa Google bunu cloaking olarak değerlendirir. Bu durum manuel işleme yol açabilir.

Googlebot JavaScript'i çalıştırabiliyor mu?

Evet, Googlebot güncel Chrome sürümüne dayalı bir rendering altyapısıyla JavaScript çalıştırır. Rendering ayrı bir aşamada yapıldığı için içerik HTML'deki içerikten daha geç işlenebilir. Diğer arama motorları ve yapay zeka botlarının bir kısmı JavaScript'i hiç çalıştırmaz.

Yapay zeka botları JavaScript ile oluşan içeriği görür mü?

Hayır. Yapay zeka tarayıcılarının bir bölümü JavaScript çalıştırmadan yalnız ham HTML'i okur. İçeriği yalnız tarayıcıda oluşan bir sayfa bu botlar için boş görünebilir. Sunucu tarafı ya da statik rendering bu yüzden yalnız Google için değil yapay zeka görünürlüğü için de daha güvenli yoldur.

SSR sunucu maliyetini artırır mı?

Evet. SSR her istekte sayfa oluşturduğu için sunucu yükünü artırır. Bu yük önbellekleme ve değişmeyen sayfalarda statik üretimle büyük ölçüde azaltılır. Karma yapı kullanan sitelerde sık değişen sayfalar SSR ile, geri kalanı statik üretilir.

Sitemin JavaScript'e bağımlı olup olmadığını nasıl anlarım?

Sitenizin JavaScript'e bağımlı olup olmadığını anlamak için tarayıcıda JavaScript'i kapatıp sayfayı açın ya da sayfa kaynağını görüntüleyin. Ana metin, başlıklar ve linkler kaynak kodda görünmüyorsa içerik JavaScript ile oluşuyordur. Search Console URL denetleme aracındaki işlenmiş HTML de Google'ın ne gördüğünü gösterir.

İLK YORUMU SİZ YAZIN

Yorumlar

Yorum yazın

Yorumlar onaylandıktan sonra yayınlanır. Adınız yorumunuzla birlikte görünür, e-posta adresi istenmez.

Kişisel verileriniz KVKK Aydınlatma Metni kapsamında işlenir. Bağlantı, reklam ya da konu dışı içerik taşıyan yorumlar yayınlanmaz.