Chrome 151 ile gelen Soft Navigations API, nihayet tek sayfa uygulamalarının (SPA'lar) uygulama içi her navigasyon için Core Web Vitals verilerini raporlamasına olanak tanıyor; ancak Google'ın CrUX veri seti hâlâ yalnızca ilk hard load'u (tam sayfa yüklemesini) kaydettiği için geliştiriciler iki farklı performans tablosuyla karşı karşıya kalıyor.
SPA metrikleri neden geride kaldı?
Core Web Vitals—Largest Contentful Paint (LCP), Interaction-to-Next-Paint (INP) ve Cumulative Layout Shift (CLS)—hard navigasyonlar etrafında tanımlanmıştı. Bir hard navigasyon, tamamen yeni bir belge getirir ve önceki sayfanın durumunu atar.
React, Vue, Next.js veya benzeri framework'lerle oluşturulan SPA'lar nadiren hard navigasyon tetikler. Bir bağlantıya tıklamak, History API aracılığıyla URL'yi günceller, arka planda veri çeker ve tam bir yeniden yükleme yapmadan içeriği değiştirir. Mevcut Performance API yalnızca ilk sayfa yüklemesini yakalar, bu nedenle LCP ve INP, kullanıcıların bir rotadan diğerine geçerken hissettikleri gecikmeyi asla görmez.
Bu kör nokta, Performance Timeline'dan veya Google'ın Chrome Kullanıcı Deneyimi Raporu'ndan (CrUX) veri çeken panelleri saptırır. Bu paneller genellikle "shell" (kabuk) sayfa için mükemmel bir LCP gösterirken, uygulamanın derinliklerindeki daha yavaş yüklemeleri görmezden gelerek yanlış bir performans sağlığı algısı yaratır.
Chrome'un Soft Navigations API'si
Chrome 151, belirli SPA etkileşimlerini gerçek navigasyonlar olarak ele alan bir dizi sezgisel (heuristic) yöntem olan Soft Navigations API'yi tanıttı. API üç sinyali izler:
- Kullanıcı tarafından başlatılan bir etkileşim (tıklama, dokunma, klavye olayı)
- History API aracılığıyla bir URL değişikliği
- Yeni içeriği işleyen sonraki boyama (paint) olayları
Üçü de bir araya geldiğinde, Chrome Performance Timeline'da bir soft navigation kaydeder ve Core Web Vitals, tıpkı bir hard navigasyonda olduğu gibi bu geçiş için hesaplanır. Açık kaynaklı web-vitals kütüphanesi 21 Temmuz'da desteğe başladı, böylece geliştiriciler bu sayıları halihazırda kullandıkları aynı API ile çekmeye başlayabilirler.
Pratikte, artık her rota değişikliği için bir LCP değeri, son kullanıcı girdisinin gerçek gecikmesini yansıtan bir INP ve soft navigation sonrası düzen değişikliklerini yakalayan bir CLS görürsünüz.
Veri ayrımı: Chrome vs. CrUX
Google'ın CrUX (Chrome Kullanıcı Deneyimi Raporu) sistemi; PageSpeed Insights, Search Console ve dolaylı olarak sıralama sinyallerine güç verir. CrUX hâlâ yalnızca hard-navigation verilerini toplar.
Sonuç olarak, tutarlı ancak farklı iki veri akışıyla karşılaşırsınız:
- Performance Timeline'ı okuyan dahili araçlar, artık rota düzeyinde LCP, INP ve CLS göstererek kullanıcıların bir SPA'da neler yaşadığına dair gerçekçi bir görünüm sunar.
- Google'ın genel veri setleri, yalnızca ilk sayfa yüklemesi için metrikleri göstermeye devam eder; bu da Search Console raporlarının ve Google'ın sıralama algoritmalarının referans aldığı veridir.
Her ikisi de doğrudur; sadece farklı anları ölçerler. Yalnızca Search Console'a güvenmek, ilk yüklemeden sonra gerçekleşen performans gerilemelerini maskeleyebilir; ancak yalnızca dahili paneller, Google'ın SEO için kullandığı temel değerleri (baseline) yansıtmayacaktır.
Geliştiricilerin dikkat etmesi gerekenler
- Tarayıcı desteği – Soft Navigations API bugün yalnızca Chromium tabanlı tarayıcılarda mevcuttur. Safari ve Firefox'ta eşdeğeri bulunmadığından, hedef kitlenizin bir kısmı için yedek (fallback) mantığını korumalısınız.
- Sezgisel (Heuristic) sınırlar – API, bir soft navigation'a bir dizi ipucuna dayanarak karar verir. Uygulamanız URL'yi değiştirmeden içeriği güncelliyorsa (örneğin modal katmanları veya sonsuz kaydırma), API bu geçişleri kaçırabilir ve verilerde boşluklar bırakabilir.
- Güvenmeden önce test etme – Tespit işlemi sezgisel olduğu için, uygulamanızda bir dizi gerçek dünya etkileşimi çalıştırın ve raporlanan metrikleri manuel zamanlama ile (örneğin
performance.markkullanarak) karşılaştırın. Optimizasyon kararlarını ancak doğruluğu onayladıktan sonra yeni sayılara dayandırmalısınız.
Özetle
Chrome 151, SPA geliştiricilerine her uygulama içi rota değişikliği için LCP, INP ve CLS değerlerini ölçme konusunda uzun zamandır beklenen yeteneği veriyor, ancak Google'ın sıralama verileri hâlâ yalnızca ilk hard load'u yansıtıyor. CrUX arayı kapatana kadar ekipler iki paralel veri setiyle uğraşmak zorunda kalacak: biri gerçek kullanıcı hikayesini anlatan, diğeri ise arama sıralamalarını belirleyen. Her ikisini de dengelemek ve daha geniş tarayıcı desteğine hazırlanmak, rekabetçi bir web ekosisteminde performans odaklı SPA'ları sürdürmenin anahtarı olacaktır.
