JavaScript Sitende Googlebot Neden Tabloları Boş Görüyor?

Pazar verileri sunan bir site yaptıysanız ve Search Console'da "Crawled - currently not indexed" mesajıyla boğuşuyorsanız, Vunelix ekibinin bulduğu şey seni ilgilendirebilir.

Sitelerinde screener, heatmap ve hesaplayıcı araçları var; tablolar JavaScript üzerinden backend'den dolduruluyor. Aylar boyunca neredeyse her araç sayfası "crawled but not indexed" gösteriyor, ekip içerik kalitesini suçluyor. Sonra hiç açmadıkları iki raporu kontrol ettiler.

İlk bug: Googlebot'un isteklerinin %96'sı hep aynı endpoint'e gidiyor ve hepsi başarısız oluyor. Search Console'da Crawl stats By response açtıklarında 90 günde 7,8 milyon istek görüyorlar; %96'sı "Other client error (4XX)". Hepsinin adresi aynı: POST-only bir endpoint. Neden? Siteleri başka sitelere gömülebilen widget'lar sağlıyor. Googlebot o sayfaları da render ediyor, widget scriptini çalıştırıyor ve günde 80 bin kez endpoint'e POST yapıyor. Her çağrı reddediliyor çünkü endpoint, Googlebot'u tanımıyor.

İkinci bug daha ilginç: Sitelerinin robots.txt'si, Googlebot'u bir JS dosyasından bloke ediyordu. O dosya, tabloları dolduran veri çağrılarını yapıyor. Sonuç: Googlebot sayfaları render ediyor ama veri alamıyor, boş tablolar görüyor.

Çözüm basit: POST endpoint'ini Googlebot'a açtılar (ya da Googlebot'u User-Agent'a göre farklı yanıtla), robots.txt'den JS dosyasını çıkardılar. İndeksleme sorunları çözüldü.

JavaScript-rendered siteler için ders: Search Console'daki Crawl stats ve Coverage raporlarını düzenli aç. Googlebot ne istediğini görmek, ne hata aldığını anlamak, tabloların boş mı dolu mu render edildiğini kontrol etmek çok daha hızlı çözüm sağlıyor. İçerik kalitesini suçlamadan önce teknik engelleri temizle.

konu hakkında tepkinizi verebilirsiniz