Son Güncelleme: 16 dk okuma

JavaScript SEO: Rendering ve İndeksleme Rehberi

JavaScript SEO: Rendering ve İndeksleme Rehberi

JavaScript ile çalışan bir web uygulamasında sayfa tarayıcıda doğru görünüyor olabilir; bu tek başına Google’ın sayfanın ana içeriğini, başlıklarını ve bağlantılarını aynı biçimde alabildiğini kanıtlamaz. JavaScript SEO, arama motoruna özel hileler eklemek değil, sayfanın HTTP yanıtından başlayıp render edilmiş belgeye kadar tutarlı, erişilebilir ve test edilebilir kalmasını sağlamaktır. Bu rehberde tarama, render ve indeksleme aşamalarını birbirinden ayıracak; kaynak HTML ile oluşturulmuş DOM’u karşılaştıracak; gerçek bir sorun bulduğunuzda hangi çözümü hangi kanıta göre seçeceğinizi açıklayacağız.

Google Search JavaScript çalıştırabilir, ancak çalıştırma anı ve kaynak erişimi klasik HTML sayfalarından farklıdır. Bu nedenle tüm içeriği tek bir istemci tarafı isteğinin başarıyla tamamlanmasına bağlamak, boş kabuk yanıtı döndürmek veya kritik dosyaları yanlışlıkla engellemek keşif ve indeksleme sorunları çıkarabilir. Amaç her sayfayı mutlaka sunucu tarafında üretmek değildir. Amaç, kullanıcının görmesi gereken ana içeriğin ve taranabilir bağlantıların Google’ın erişebildiği HTML’de bulunmasını ve testlerle doğrulanmasını sağlamaktır.

JavaScript SEO Nedir ve Hangi Sitelerde Önemlidir?

JavaScript SEO, istemci tarafında veya sunucuda JavaScript ile oluşturulan sayfaların arama motorlarınca taranabilir, render edilebilir ve doğru içerikle indekslenebilir olmasına yönelik teknik çalışmaları kapsar. React, Vue, Angular gibi kütüphaneler kullanmak kendi başına bir SEO hatası değildir. Sorun, sayfanın anlamlı içeriği yalnızca tarayıcıda çalışacak bir betikten sonra ortaya çıkıyor ve bu betik arama motoru tarafından erişilemiyor, hata veriyor ya da gecikmeli çalışıyorsa başlar.

Bu konu özellikle tek sayfa uygulamalarında, ürün kataloglarında, filtrelenen arama sonuçlarında ve sayfa geçişlerini JavaScript ile yöneten yapılarda önem kazanır. Örneğin bir mağaza kategori URL’sine ilk istekte yalnızca genel bir uygulama kabuğu ve yükleniyor göstergesi döndürüyor; ürün adlarını ve ürün bağlantılarını daha sonra API’den alıyorsa, render aşaması ürün verisini ve bağlantılarını başarıyla oluşturmalıdır. API isteği izin, oturum, ağ, zaman aşımı veya kod hatası nedeniyle başarısız olursa kullanıcının tarayıcısında da Google’ın render çıktısında da içerik eksilebilir.

Başlangıçta “sitem JavaScript kullanıyor mu?” yerine şu soruları sorun: İlk HTTP yanıtında sayfanın başlığı ve temel metni var mı? İç bağlantılar gerçek <a href> öğeleri mi? Ana içerik üçüncü taraf bir servisten geliyorsa bu servis robots ve ağ açısından erişilebilir mi? Google’ın render ettiği DOM, kullanıcıya gösterdiğiniz anlamlı içeriği içeriyor mu? Bu sorular, teknoloji yığınından bağımsız olarak tanı koymayı kolaylaştırır.

Google Tarama, Render ve İndeksleme Aşamalarında Ne Yapar?

Google’ın kendi dokümantasyonu JavaScript tabanlı sayfalar için süreci üç ana aşamada açıklar: tarama, render ve indeksleme. Bunlar aynı anda gerçekleşen tek bir olay değildir. Googlebot önce URL’yi alır, robots.txt kurallarını kontrol eder ve izin verilen yanıtı indirir. İlk HTML içindeki bağlantıları ve kaynakları inceler. Sayfa render kuyruğuna alınır; kaynaklar erişilebilirse JavaScript çalıştırılır ve oluşan HTML daha sonra içerik çıkarımı için kullanılır. Kuyruk ve kaynak planlaması nedeniyle bu aşamalar arasında süre olabilir.

Bu sıra, “tarandı” ifadesinin “sayfanın bütün JavaScript’i çalıştı ve her içerik indekslendi” anlamına gelmediğini gösterir. Bir URL Search Console’da taranmış görünebilir ama JavaScript dosyası 403 almış, API isteği başarısız olmuş veya içerik yalnızca kullanıcı tıklamasından sonra yükleniyor olabilir. Benzer biçimde, sayfanın render edilmiş olması sıralama veya dizine eklenme garantisi vermez. İndeksleme kararı; içerik, canonical seçimi, kalite ve diğer sistemlerin değerlendirmelerine de bağlıdır.

Render sırasında Googlebot her kaynağa sonsuz zaman ayırmaz. Uygulamanın gereksiz istekleri, kırılgan üçüncü taraf bağımlılıkları ve ağır çalışma süresi hata riskini artırabilir. Esas içeriği analitik veya kişiselleştirme servislerinden bağımsız tutun. Kullanıcının ana sorusuna yanıt veren metin, ürün bilgisi, kategori bağlantısı ve sayfa başlığı, kritik olmayan bir pazarlama betiği yanıt vermedi diye kaybolmamalıdır.

Pratik sonuç şudur: üç ayrı kanıt toplayın. Tarama kanıtı için HTTP yanıtını ve robots erişimini; render kanıtı için render edilmiş HTML ve ekran görüntüsünü; indeksleme kanıtı için Search Console’daki URL durumu ve Google’ın seçtiği canonical bilgisini inceleyin. Bir kanıt türündeki başarıyı diğer iki aşamanın tamamlandığı varsayımına dönüştürmeyin.

İlk HTTP Yanıtı ile Render Edilmiş DOM Arasındaki Fark

Kaynak HTML, sunucunun veya CDN’in URL için döndürdüğü ilk belgedir. DOM ise tarayıcının bu belgeyi ayrıştırdıktan ve varsa JavaScript’i çalıştırdıktan sonra oluşturduğu belge ağacıdır. Bu ikisini kıyaslamak, uygulama kabuğu kullanan sitelerde temel bir hata ayıklama yöntemidir. Chrome’da “Sayfa kaynağını görüntüle” ilk yanıtın bir görünümünü verir; geliştirici araçlarındaki Elements paneli ise çalıştırılmış JavaScript sonrasındaki DOM’u gösterir. İkisi farklı olabilir ve bu fark her zaman problem değildir.

Şu alanları yan yana karşılaştırın: title ve meta description; canonical; H1 ve ana gövde metni; ürün veya içerik kartlarının gerçek linkleri; görsel adresleri; yapılandırılmış veri; robots meta direktifleri. İlk yanıtta bunların bir kısmı yoksa, render aşamasında güvenilir biçimde eklenip eklenmediğini kontrol edin. Render edilmiş DOM’da görünüyor olması olumlu bir sinyaldir ama dosyaların ve URL’nin Google tarafından erişilebilir olduğu ayrıca doğrulanmalıdır.

Bir örnek düşünelim: /kategori/masaustu-aksesuar adresi ilk yanıtta genel bir başlık ve boş <div id="app"> döndürüyor. Tarayıcı daha sonra API’den 24 ürünü alıyor. DOM’da ürün adları ve her ürün için <a href="/urun/…"> oluşuyorsa render çalışmış olabilir. Ancak API sadece giriş yapmış kullanıcıya yanıt veriyorsa, Googlebot boş bir liste görebilir. Ayrıca ürün kartı tıklama olayını bir div üzerine koyup gerçek href üretmiyorsa, kullanıcı navigasyonu çalışsa bile Google’ın standart bağlantı keşfi için gerekli işaretleme eksik kalır.

Karşılaştırmayı tek URL’de bırakmayın. Şablon türüne göre örneklem kurun: ana sayfa, kategori, ürün, blog ve sayfalı liste. Sonra aynı örnekleri mobil görünümde ve farklı veri durumlarında test edin. Uygulamanın “ürün yok”, “stok tükendi”, “API geçici olarak hata verdi” durumları da anlamlı bir HTML ve doğru HTTP yanıtı vermelidir.

İstemci Taraflı Render, SSR ve Statik Üretim Nasıl Seçilir?

İstemci taraflı render’da sunucu temel bir HTML kabuğu döndürür ve ana içeriği tarayıcı JavaScript’i oluşturur. Sunucu taraflı render’da (SSR) sunucu istek sırasında içeriği HTML olarak üretir; istemci daha sonra etkileşimleri devralabilir. Statik üretimde (SSG) HTML önceden hazırlanır ve CDN üzerinden sunulur. Hydration ise sunucudan gelen işaretlemeye istemci JavaScript’inin davranış eklemesidir. Bu yaklaşımlar birbiriyle yarışan “SEO hilesi” değil, farklı performans, kişiselleştirme ve operasyon gereksinimleri olan mimari seçeneklerdir.

SSR veya SSG özellikle ilk ekranda temel metnin hızlı görünmesi, botların basit HTML’yi okuyabilmesi ve yavaş bağlantılarda kullanıcı deneyiminin korunması açısından avantaj sağlayabilir. Buna karşılık yanlış cache anahtarı, sunucuda hatalı veri alma, hidratasyon uyuşmazlığı veya her istekte yavaş çalışan render katmanı yeni sorunlar doğurabilir. Sunucu tarafı üretim kullanmanız, canonical ve linklerin otomatik doğru olduğu anlamına gelmez.

İstemci taraflı render da içerik her testte güvenilir biçimde oluşuyorsa ve uygulama URL’leri, HTTP yanıtları ve bağlantıları doğru kuruyorsa kullanılabilir. Ancak Google dışındaki botların JavaScript desteği aynı değildir; paylaşım önizlemeleri, bazı arama motorları ve erişilebilirlik araçları ilk HTML’ye daha fazla dayanabilir. Bu nedenle karar verirken yalnızca Google indekslemesini değil, kullanıcıya ilk içerik sunma hızını, bot çeşitliliğini, bakım maliyetini ve hata toleransını düşünün.

Dynamic rendering, farklı botlara farklı içerik sunan kalıcı bir çözüm olarak görülmemelidir. Google bunu JavaScript sorunları için uzun vadeli yaklaşım olarak önermez; sunucu taraflı render, statik render veya hydration gibi seçenekleri değerlendirmek gerekir. Kullanıcıya ve arama motoruna aynı temel içeriği sunmak, teknik karmaşıklığı ve içerik tutarsızlığı riskini azaltır.

Seçimi küçük bir pilotla doğrulayın. Aynı şablonun önce ve sonra sürümünü; ilk yanıtın gövde boyutunu, render süresini, ana içerik görünürlüğünü ve gerçek kullanıcı performansını karşılaştırın. Bir framework geçişini yalnızca “SEO için SSR şart” cümlesine dayanarak başlatmayın. Sorun ölçülebilir olmalı ve seçilen mimari bu sorunu kabul edilebilir maliyetle çözmelidir.

Taranabilir Dahili Bağlantıları Nasıl Kurarsınız?

Google’ın bağlantı yönergelerinde standart ve taranabilir bir bağlantı, hedef URL’yi href niteliğinde taşıyan bir HTML <a> öğesidir. JavaScript bu bağlantıyı DOM’a ekleyebilir; önemli olan sonuçta tarayıcının gerçek anchor işaretlemesi üretmesidir. Sadece onClick ile çalışan bir düğmeye, href="#" değerine veya JavaScript tarafından değiştirilen metne güvenmeyin.

İyi örnek şöyledir: <a href="/tr/urun/kablosuz-klavye">Kablosuz klavyeyi inceleyin</a>. Bu işaretleme kullanıcıya açık bir hedef verir; yeni sekmede açma ve kopyalama gibi tarayıcı davranışları da doğal çalışır. Bağlantı metnini hedef sayfayı açıklayacak biçimde yazın. “Buraya tıklayın” gibi belirsiz anchor metinleri, özellikle kart listelerinde hangi içeriğe gidildiğini anlamayı zorlaştırır.

SPA navigasyonunda History API kullanarak URL’yi güncelliyor olmanız, her ekranın ayrı keşfedilebilir URL’si olduğu anlamına tek başına gelmez. Her önemli içerik için kalıcı, doğrudan açılabilir bir URL oluşturun. URL yeni sekmede açıldığında, JavaScript state’i daha önce oluşmamış olsa bile doğru içeriğe ulaşılmalı. Geri/ileri tuşları, sayfa yenileme ve derin bağlantı senaryolarını test edin.

İç bağlantı mimarisinin konu ilişkisine katkısını iç linkleme stratejisi rehberimizde ele alıyoruz. JavaScript tabanlı menü, filtre ve ürün kartlarında da aynı temel kural geçerlidir: hedef URL kaynak kodunda veya render edilmiş DOM’da gerçek bir bağlantı olarak bulunmalı; yalnızca fare tıklamasına bağlı kalmamalıdır.

Geliştirici kabul kriterlerine “link görünür” yazmak yeterli değildir. Her bağlantı için href’in boş olmadığını, hedefin 200 yanıt verdiğini, yanlış dile gitmediğini ve render sonrası da DOM’da bulunduğunu otomatik test edin. Klavye ile erişim ve ekran okuyucu adı da kullanıcı tarafındaki kalite kontrolünün parçası olmalıdır.

Google Search Console ile JavaScript Render Sorunlarını Test Etme

Search Console’daki URL Denetleme aracı, URL’nin Google dizinindeki durumunu ve canlı testin erişebildiği bazı sinyalleri incelemek için kullanılabilir. Canlı testte Google’ın gördüğü sayfa kaynağı, yükleme sorunları ve ekran görüntüsü gibi kanıtları kontrol edin. Rich Results Test, uygun yapılandırılmış veri türlerinde render ve ayrıştırma sorunlarını bulmaya yardımcı olur. Bu araçların çıktıları farklı sorulara yanıt verir; birinin başarılı olması URL’nin indeksleneceğini garanti etmez.

Test ederken önce sorunlu URL’yi, sonra aynı şablondaki çalışan bir URL’yi karşılaştırın. Şu soruları sırayla yanıtlayın: Googlebot URL’ye erişebiliyor mu? Kaynak dosyaları robots veya güvenlik duvarı nedeniyle engelleniyor mu? Ana metin render edilmiş HTML’de var mı? İç linkler href’li anchor olarak oluşmuş mu? JavaScript konsol hatası var mı? API istekleri 200 mü dönüyor, yoksa CORS, 401, 403, 429 veya 5xx hataları mı veriyor? Ekran görüntüsünde görünmeyen içerik DOM’da var mı? Bu son soru özellikle katlanır paneller ve görsel düzenlemelerde önemlidir.

Google Search Central’ın JavaScript sorun giderme rehberi, URL Denetleme veya Rich Results Test üzerinden yüklenen kaynakları, konsol çıktısını ve render edilmiş DOM’u incelemeyi önerir. Bir sorun bulduğunuzda yalnızca ekran görüntüsü eklemek yerine test URL’sini, test zamanını, başarısız kaynak isteğini ve beklenen/gerçek DOM farkını kaydedin. Böyle bir hata raporu geliştirici ekibinin tekrarlayabileceği somut bir vakaya dönüşür.

Canlı test ile indeks kaydını birbirine karıştırmayın. Canlı test, şu anki URL’nin test koşullarındaki davranışını gösterir. Dizin raporu ise Google’ın daha önce işlediği sürüm ve seçtiği canonical hakkında bilgi verir. Değişiklikten sonra her iki tarafı da yeniden kontrol edin ve tekrar taramanın zaman alabileceğini hesaba katın.

Her URL için sürekli manuel kontrol yapmak ölçeklenmez. Sayfa şablonlarını kapsayan küçük ama anlamlı bir test matrisi oluşturun. Örneğin her deploy’da bir kategori, bir ürün, bir makale ve bir filtre URL’si otomatik alınabilir; büyük bir sürüm öncesinde daha geniş örneklem çalıştırılabilir. Amaç tüm web’i her gün taramak değil, hatanın hangi şablonda başladığını hızlı bulmaktır.

JavaScript Kaynakları, API’ler ve Robots Erişimi

Sayfanın render edilmesi, JavaScript dosyalarının, CSS’in ve kritik API uçlarının erişilebilir olmasına bağlı olabilir. robots.txt ile uygulamanın içerik oluşturması için gereken dosyaları engellerseniz Google sayfa gövdesini kullanıcı tarayıcısındaki gibi üretemeyebilir. Özellikle ayrı bir statik dosya alanı, CDN veya alt alan adı kullanan projelerde yalnızca ana domainin robots ayarına bakmayın. Render testinde yüklenmeyen kaynakların tam URL’sini ve HTTP durum kodunu inceleyin.

API yanıtlarının herkese açık olması her içerik için doğru değildir; kullanıcıya özel hesap verileri kesinlikle arama motoruna açılmamalıdır. Bununla birlikte indekslenmesi beklenen ürün veya makale gövdesi, oturum açmış kullanıcıya özel bir API yanıtına bağımlıysa Googlebot aynı içeriği alamayabilir. Herkese açık sayfa verisi için sunucu render’ı veya erişilebilir bir veri katmanı düşünün; hassas alanları HTML’ye koymadan, genel içerik ile kişisel veriyi ayrıştırın.

İsteklere agresif hız sınırı koyan WAF kuralları, bot doğrulama sayfaları, CAPTCHA ve yanlış bot filtresi de render’ı etkileyebilir. Güvenliği kapatmak çözüm değildir. Googlebot kimliğini resmi yönergeye göre doğrulayın, normal kullanıcı güvenliğini koruyun ve render için gereken genel kaynakların kabul edilebilir yanıt verdiğini kontrol edin. Sahte bir User-Agent ile tek başına test yapmak, gerçek Googlebot kimliğinin kanıtı sayılmaz.

İstemci JavaScript’inin her isteği üçüncü taraf analitik, A/B test veya reklam servisinin yüklenmesine bağlıysa sayfanın temel metni de bu servisin gecikmesine maruz kalabilir. Kritik gövdeyi bağımsız oluşturun; isteğe bağlı servisler hata verdiğinde kullanıcıya boş ekran sunmayın. Bu yaklaşım yalnızca arama motoru için değil, reklam engelleyici kullanan, yavaş bağlantıdaki veya kısıtlı cihazdaki ziyaretçiler için de önemlidir.

İstekleri geliştirici araçlarının Network panelinde “Disable cache” açıkken ve soğuk yüklemede inceleyin. Bir kaynak yalnızca sıcak cache sayesinde çalışıyorsa gerçek ziyaretçi veya crawler ilk istekte başarısız olabilir. Hata durumlarını loglayın, fakat loglarda gereksiz kişisel verileri saklamayın. Erişim politikası ve saklama süresi veri koruma gereksinimleriyle uyumlu olmalıdır.

Metadata, Canonical ve Structured Data Render Sonrası Nasıl Kontrol Edilir?

Tek sayfa uygulamaları istemci tarafında rota değiştirirken title, description ve canonical değerlerini de güncelleyebilir. Bunların her URL’ye özgü olması ve render edilmiş belgede doğru URL’yi göstermesi gerekir. Tüm rotalarda aynı title kalıyorsa veya kategori sayfası her zaman ana sayfaya canonical veriyorsa, Google yanlış sayfa sinyali alabilir. İlk HTML ve render edilmiş DOM’u kıyaslayıp her iki biçimde de beklenen değerleri kaydedin.

Canonical, benzer veya yinelenen URL’ler arasında tercih edilen sürümü bildirmeye yarar; tarama engeli veya yönlendirme değildir. Google belirtilen canonical’ı her durumda seçmek zorunda değildir. URL parametreleri, filtreler ve sayfalama gibi teknik kararlarda canonical politikasını ürün ve içerik mimarisiyle birlikte belirleyin. Bu yazı parametre stratejisini bütünüyle çözmez; ilgili, ayrı rehber çıktığında filtre URL’leriyle ilgili kararları onunla bağlayacağız.

JSON-LD gibi yapılandırılmış verileri de sayfada görünen gerçek içerikle uyumlu tutun. JavaScript sonradan JSON-LD ekliyorsa Google’ın render testinde bu işaretlemenin geldiğini ve ayrıştırılabildiğini kontrol edin. Fiyat, stok, puan veya yayın tarihi gibi değerleri kullanıcıya gösterilenden farklı üretmeyin. Geçersiz veya görünür içerikle çelişen işaretleme zengin sonuç uygunluğunu kaybettirebilir; doğru JSON-LD bile zengin sonuç gösterimini garanti etmez.

Testte her rota için şu alanları kaydedin: HTML title, meta description, canonical, robots direktifi, H1, JSON-LD türü ve ana gövde metni. Değerlerden biri sadece SPA içinde gezinirken güncellenip sayfa doğrudan URL’den açıldığında yanlış kalıyorsa, rota yükleme akışında bir durum hatası vardır. Bu vakayı hem doğrudan URL açılışında hem uygulama içi navigasyonda tekrarlayın.

Değişiklikleri Search Console’daki son seçilen canonical ile karşılaştırırken zaman farkını göz önünde bulundurun. Web sitesinde bugün düzelttiğiniz bir başlık, dizindeki önceki taramanın raporunda hemen görünmeyebilir. Önce test edilen canlı çıktının doğru olduğunu teyit edin; sonra tarama ve indeks verisinin güncellenmesini izleyin.

JavaScript SEO Hatalarını Önceliklendirme ve Çözme

Bulduğunuz her farklılığı aynı aciliyette ele almak gerekmez. İlk sıraya kritik ticari veya bilgilendirici sayfalarda tamamen kaybolan ana içeriği, önemli URL’lerde yanlış robots veya canonical değerini ve Google’ın erişemediği temel JavaScript dosyalarını koyun. İkinci sırada bağlantı keşfi, rota yenileme ve gecikmeli veri sorunları gelir. Küçük bir animasyon veya arama açısından önemsiz kişiselleştirme farkı daha düşük öncelikte olabilir.

Her bulgu için etki alanını yazın: tek URL mi, belirli şablon mu, bütün site mi? Bir URL’nin başarısız olması uygulama genelinde sorun olduğu anlamına gelmeyebilir. Aynı şekilde ana sayfanın çalışması tüm ürün şablonlarının düzgün render edildiğini kanıtlamaz. URL’leri ortak bileşen ve şablonlara göre gruplayın, aynı arızayı üreten kök nedeni çözmeye çalışın.

Çözüm seçimini kanıta göre yapın. Googlebot’un CSS/JS isteği 403 alıyorsa robots veya güvenlik yapılandırmasını inceleyin. API boş dönüyorsa erişim, CORS ve veri yükleme mantığını kontrol edin. İlk HTML tamamen kabuksa ve testlerde render gecikmesi ya da dış bot uyumsuzluğu görüyorsanız SSR/SSG pilotu düşünebilirsiniz. Link bir div tıklamasına bağlıysa bunu gerçek anchor’a çevirin. Her problemi SSR ile çözmeye çalışmak gereksiz maliyet ve yeni arıza noktaları yaratabilir.

Değişiklik öncesi ve sonrası aynı URL setini aynı araçlarla test edin. Eski ekran görüntüsünü, kaynak HTML örneğini ve başarısız istek listesini saklayın. Düzeltme sonrasında kaynak dosyanın 200 döndüğünü, render DOM’un beklenen metni içerdiğini ve bağlantının gerçek hedefe gittiğini doğrulayın. Uygulama testleri, Search Console canlı testi ve üretim logları birlikte kullanıldığında tek bir ekran görüntüsünden daha güvenilir kanıt verir.

İyileştirme sonrası performansı da ölçün. Daha fazla HTML üretmek render uyumluluğunu iyileştirebilir ama sunucu yanıt süresini veya sayfa boyutunu kötüleştirebilir. Mobil cihazlarda ilk içerik görünme süresini, Core Web Vitals alan verisini ve gerçek kullanıcı hata oranını gözleyin. İndekslenme amacıyla yapılan değişiklik, kullanıcı deneyimini geriye götürmemelidir.

Son olarak sorumlulukları netleştirin: SEO ekibi beklenen sayfa içeriğini ve URL kurallarını tanımlar; geliştiriciler render ve yönlendirme davranışını uygular; QA kritik şablonları test eder; operasyon ekibi kaynak erişimi ve logları izler. Hata tekrarlandığında hangi ekibin neyi kontrol edeceği önceden belliyse çözüm süresi kısalır.

Örnek JavaScript SEO Kontrol Tablosu

Aşağıdaki örnek, kurgusal bir çevrimiçi mağazanın üç sayfa şablonunda yapılan kontrolü gösterir. URL’ler ve sonuçlar temsilidir; gerçek sitenizdeki araç çıktılarıyla doldurulmalıdır. Bu tabloyu bir sıralama vaadi veya Google’ın resmi puanlama sistemi gibi kullanmayın. Amacı, bulguları geliştiriciye aktarılabilir hale getirmektir.

Şablonİlk HTMLRender DOMBulguAksiyon
KategoriBoş uygulama kabuğuÜrünler ve href’li bağlantılar varAPI yanıtı gecikebiliyorYükleme hatasını ölç, kritik içeriği daha dayanıklı sun
ÜrünTitle ve H1 mevcutJSON-LD ve fiyat doğruStok API’si bazen 503Hata durumunda kullanıcıya ve botlara tutarlı stok bilgisi ver
MakaleAna metin mevcutİç bağlantı butonlarında href yokLinkler yalnız click handler ile açılıyorGerçek anchor öğelerine dönüştür ve URL testi ekle

Her satıra test tarihi, kullanılan araç, örnek URL, ekran görüntüsü veya dışa aktarılan HTML dosya adı ve sorumlu kişiyi ekleyin. “Google görmüyor” gibi yorum yerine, “URL Denetimi canlı testi 10:32’de /assets/category.js isteğine 403 aldı; render DOM’unda ürün listesi oluşmadı” şeklinde kanıt yazın. Aynı bulguyu geliştirici yerel ortamda tekrarlayabilmelidir.

Sıkça Sorulan Sorular

Googlebot JavaScript çalıştırabilir mi?

Evet. Google Search JavaScript’i işler; ancak tarama ve render ayrı aşamalardır ve kaynakların erişilebilir olması gerekir. Çalıştırılabilir olması her sayfanın tüm içeriğinin mutlaka indeksleneceği anlamına gelmez.

Sayfanın kaynak kodu boşsa indekslenmez mi?

İlk HTML’de ana içerik olmaması otomatik olarak indekslenmeyeceğini kanıtlamaz; Google render aşamasında JavaScript’i çalıştırabilir. Yine de render’ın gerçek içerik, metadata ve bağlantıları oluşturduğunu URL Denetimi veya uygun test araçlarıyla doğrulayın.

SSR her site için zorunlu mu?

Hayır. SSR ve statik üretim, render güvenilirliği ve ilk içerik sunumu için seçeneklerdir; her siteye zorunlu tek mimari değildir. Önce gözlenen sorunu ölçün, sonra istemci render’ı, SSR veya SSG seçeneklerinin maliyetini karşılaştırın.

URL Denetimi canlı testi sayfanın indeksleneceğini garanti eder mi?

Hayır. Canlı test mevcut erişim ve render davranışını inceler. İndeksleme ve sıralama ayrı sistem kararlarıdır; içerik kalitesi, canonical ve diğer yönergeler de etkili olabilir.

JavaScript ile eklenen dahili bağlantılar taranabilir mi?

JavaScript’in DOM’a eklediği bağlantılar, sonuçta gerçek bir <a> öğesinde anlamlı bir href içeriyorsa taranabilir olabilir. Yalnızca tıklama olayıyla çalışan öğelere güvenmeyin ve render edilmiş DOM’u test edin.

Dynamic rendering kullanmalı mıyım?

Google bunu JavaScript problemlerinin uzun vadeli çözümü olarak önermez. Server-side rendering, statik rendering veya hydration gibi kalıcı seçenekleri ve uygulamanızın gerçek gereksinimlerini değerlendirin.

Sonuç ve Uygulanabilir Kontrol Listesi

JavaScript kullanan bir sitenin arama motorlarında anlaşılır olması, hangi framework’ü seçtiğinizden çok sayfanın erişilebilir ve test edilebilir biçimde içerik üretmesine bağlıdır. Önce tarama, render ve indeksleme durumlarını ayrı ayrı kanıtlayın. Kaynak HTML ile render DOM’u karşılaştırın; ana içeriğin ve dahili linklerin gerçek HTML’de bulunduğunu, robots kurallarının gerekli kaynakları engellemediğini ve metadata değerlerinin URL’ye göre doğru değiştiğini doğrulayın.

  • Önemli sayfa şablonlarından örnek URL’ler seçin.
  • HTTP yanıtı, robots erişimi ve JavaScript kaynaklarını kontrol edin.
  • Google URL Denetimi veya Rich Results Test ile render edilmiş çıktıyı inceleyin.
  • Başlık, canonical, ana metin ve href’li bağlantıları karşılaştırın.
  • Hataları URL, zaman, HTTP kodu ve DOM kanıtıyla kaydedin.
  • Düzeltmeyi aynı test setiyle yeniden doğrulayın ve gerçek kullanıcı performansını izleyin.

Google’ın JavaScript SEO temel dokümantasyonu (yeni sekmede açılır), işleme aşamaları ve önerilen uygulamaları açıklar. Sorun giderirken Google’ın JavaScript arama sorunları rehberini (yeni sekmede açılır) ve bağlantı işaretlemesi için taranabilir bağlantı yönergelerini (yeni sekmede açılır) kontrol edin. Bu kaynaklar teknik davranışın referansıdır; kendi sitenizdeki sonucu test etmenin yerini tutmaz.

0 Yorumlar

Bu yazı için henüz yorum yapılmamış.

Yorum Yaz

Yorum yapabilmek için giriş yapmalısınız. Giriş Yap