Yumuşak gezinmeleri ölçme

Yayınlanma tarihi: 1 Şubat 2023, Son güncelleme tarihi: 20 Eylül 2026

Browser Support

  • Chrome: 151.
  • Edge: 151.
  • Firefox: not supported.
  • Safari: not supported.

Source

Core Web Vitals girişimi, kullanıma sunulduğundan beri web sitelerinin oluşturulması veya yüklenmesiyle ilgili teknik ayrıntılar yerine gerçek kullanıcı deneyimini ölçmeyi amaçlamaktadır. Üç Core Web Vitals metriği, kullanıcı odaklı metrikler olarak oluşturulmuştur. Bu metrikler, genellikle kullanıcıların sayfa performansını nasıl algıladığıyla ilgisi olmayan zamanlamaları ölçen DOMContentLoaded veya load gibi mevcut teknik metriklerin gelişmiş bir versiyonudur. Bu nedenle, sitenin iyi performans göstermesi koşuluyla, siteyi oluşturmak için kullanılan teknoloji puanlamayı etkilememelidir.

Gerçekler her zaman idealden biraz daha karmaşıktır ve popüler tek sayfalık uygulama mimarisi, Core Web Vitals metrikleri tarafından hiçbir zaman tam olarak desteklenmemiştir. Bu web uygulamaları, kullanıcı sitede gezinirken farklı web sayfalarını ayrı ayrı yüklemek yerine, sayfa içeriğinin JavaScript tarafından değiştirildiği "yazılımsal gezinme" yöntemini kullanır. Bu uygulamalarda, URL değiştirilerek ve tarayıcı geçmişindeki önceki URL'ler gönderilerek geleneksel bir web sayfası mimarisi yanılsaması sürdürülür. Böylece geri ve ileri düğmeleri kullanıcının beklediği şekilde çalışır.

Birçok JavaScript çerçevesi bu modeli kullanır ancak her biri farklı bir şekilde kullanır. Bu, tarayıcının geleneksel olarak "sayfa" olarak anladığı şeyin dışında olduğundan, bunu ölçmek her zaman zor olmuştur: Mevcut sayfadaki bir etkileşim ile bunu yeni bir sayfa olarak değerlendirmek arasındaki çizgi nerede çizilmelidir?

Chrome ekibi bir süredir bu zorluk üzerinde düşünüyor ve "yazılımsal gezinme"nin tanımını ve Core Web Vitals'ın bu konuda nasıl ölçülebileceğini standartlaştırmayı planlıyor. Bu, geleneksel çok sayfalı mimaride (MPA) uygulanan web sitelerinin ölçülme şekline benzer.

Geliştiricilerden gelen geri bildirimlere dayanarak teklifte çeşitli iyileştirmeler yaptık ve Chrome 151'den itibaren bu sorunu çözmeye yardımcı olacak iki yeni performans API'si kullanıma sunduk. Ayrıca, yumuşak gezinme metriklerini Chrome Kullanıcı Deneyimi Raporu'nda (CrUX) deneysel metrikler olarak kullanıma sunduk.

Yumuşak gezinme nedir?

Yumuşak gezinme için aşağıdaki tanımı geliştirdik:

  • Gezinme, kullanıcı işlemiyle başlatılır.
  • Gezinme, kullanıcıya görünen bir URL değişikliğiyle sonuçlanır.
  • Etkileşim, görünür bir boyamayla sonuçlanır.

Bazı sitelerde bu tanım, yanlış pozitiflere (kullanıcıların gerçekten bir "gezinme" gerçekleştiğini düşünmeyeceği) veya yanlış negatiflere (kullanıcının bu ölçütleri karşılamamasına rağmen bir "gezinme" gerçekleştiğini düşündüğü) yol açabilir. Yumuşak gezinme spesifikasyonu deposunda geri bildirimlerinizi bekliyoruz.

Yumuşak gezinmeler için Geliştirici Araçları desteği

Geliştirici Araçları Performans paneli'ndeki Canlı Metrikler görünümüne ve Analizler ile işaretçi desteği içeren izleme görünümüne geçiş desteği ekledik:

Yumuşak gezinmeler için Geliştirici Araçları desteği.

Chrome, web geliştiricileri için yumuşak gezinmeleri nasıl uygular?

Yumuşak gezinme özelliği etkinleştirildikten sonra (bu konuda daha fazla bilgiyi bir sonraki bölümde bulabilirsiniz) Chrome, bazı performans metriklerini raporlama şeklini değiştirir:

  • Her basit gezinme algılandığında bir soft-navigation PerformanceTiming etkinliği yayınlanır.
  • Bu soft-navigation girişi, navigationId, name özelliğindeki yeni URL ve başlatma etkileşiminin interactionId değerini içerir.
  • İçerikli boyamaya neden olan etkileşimlerden sonra bir veya daha fazla interaction-contentful-paint girişi yayınlanır. Bu, basit gezinmeler için Largest Contentful Paint (LCP) metriğini ölçmek amacıyla kullanılabilecek bir largestContentfulPaint girişi içerir.
  • navigationId özelliği, performans zamanlamalarının (first-paint, first-contentful-paint, largest-contentful-paint, interaction-contentful-paint, first-input-delay, event ve layout-shift) her birine eklenir. Bu, etkinliğin yayınlandığı gezinme girişine karşılık gelir. Bu girişler yumuşak gezinmeleri kapsadığında, girişin ne zaman yayınlandığına bağlı olarak önceki veya sonraki navigationId değerini içerebilir. Bu konu hakkında daha fazla bilgiyi Metrikleri uygun URL'ye göre raporlama bölümünde bulabilirsiniz.
  • soft-navigation, bu gezinme için en büyük interaction-contentful-paint girişini almak üzere bir getLargestInteractionContentfulPaint() işlevi içerir. Bu değer, söz konusu gezinme için ilk LCP olarak kullanılabilir ve bu LCP, söz konusu etkileşim için daha fazla interaction-contentful-paint girişi gözlemlendikçe güncellenebilir. Bu özelliğin, önceki kaynak denemelerinde kullanılabilen largestInteractionContentfulPaint özelliğinin yerini aldığını unutmayın.
  • Yumuşak gezinme gerçekleşmeden önce bazı interaction-contentful-paint girişleri yapılmış olabilir (URL güncellemesi bu boyamalardan sonra gerçekleşmezse). Bu gibi durumlarda getLargestInteractionContentfulPaint() işlevi, basit gezinme tamamlandıktan sonra eski girişleri arabelleğe alma ve geriye dönük inceleme ihtiyacını ortadan kaldırır. getLargestInteractionContentfulPaint() tarafından döndürülen girişin, yayınlandığı sırada en büyük interaction-contentful-paint girişinin tam bir kopyası olduğunu unutmayın. Bu nedenle, giriş, boyamanın gerçekleştiği zaman olduğu için önceki navigationId değerini kullanmış olabilir ancak bu boyamalar yeni navigationId değerine göre ölçülmelidir.
  • soft-navigation girişi, bu gezinme için FCP olarak paintTime ve presentationTime değerlerini de içerir.
  • Daha sonraki etkileşimlerden sonra interaction-contentful-paint girişlerinin de yayınlanacağını unutmayın. Ancak bir URL için LCP, bunları hariç tutmak amacıyla interactionId ile eşleşen interaction-contentful-paint girişleriyle ve yalnızca bu girişlerdeki largestContentfulPaint özellikleriyle sınırlandırılmalıdır.

Bu değişiklikler, Core Web Vitals'ın ve ilişkili teşhis metriklerinden bazılarının sayfada gezinme başına ölçülmesine olanak tanır. Ancak dikkate alınması gereken bazı ayrıntılar vardır.

Chrome'da yumuşak gezinmeleri etkinleştirmenin etkileri nelerdir?

Bu özellik etkinleştirildikten sonra site sahiplerinin dikkate alması gereken değişikliklerden bazıları şunlardır:

  • soft-navigation girişlerini izlemek, performans girişlerinin her bir "gezinme" için "dilimlenmesine" olanak tanır.
  • CLS ve INP metrikleri, tüm sayfa yaşam döngüsü boyunca ölçülmek yerine, isteğinize göre dilimlenebilir. Ancak Soft Navigation özelliği, kullanılan temel teknolojiden bağımsız olarak bunun ne zaman gerçekleştiğine dair standart bir ölçüm sağlar.
  • largest-contentful-paint girişi bir etkileşimde (yumuşak gezinmeyi başlatmak için gereklidir) sonlandırılır. Bu nedenle, yalnızca ilk "sert" gezinme LCP'sini ölçmek için kullanılabilir. Bu, basit gezinmeler ölçüldüğünde bu durumun değişmeyeceği anlamına gelir. Böylece ilk, zor gezinme, sayfa yükleme için LCP her zamanki gibi ölçülebilir.
  • Etkileşimlerden yayınlanacak yeni interaction-contentful-paint girişi, içindeki largestContentfulPaint özelliğine bakarak yumuşak gezinmeler için LCP'yi ölçmek amacıyla kullanılabilir. Ancak bu girişin nasıl kullanılacağıyla ilgili bazı noktaları bu makalede ele alacağız.
  • Tüm kullanıcıların bu yumuşak gezinme özelliğini desteklemeyeceğini unutmayın. Özellikle diğer tarayıcıları veya Chrome'un 151'den önceki sürümlerini kullananlar bu özelliği desteklemeyebilir. Bazı kullanıcıların, Core Web Vitals metriklerini raporlasalar bile geçiş tabanlı metrikleri raporlamayabileceğini unutmayın.

RUM sağlayıcınızın, Core Web Vitals'ı yumuşak gezinmeye göre ölçmeyi destekleyip desteklemediğini kontrol edin. Birçok şirket bu yeni standardı test etmeyi planlıyor ve önceki hususları dikkate alacak. Bu arada bazı sağlayıcılar, kendi buluşsal yöntemlerine dayalı olarak performans metriklerinin sınırlı ölçümlerine de izin verir.

Yumuşak gezinmelerle ilgili metriklerin nasıl ölçüleceği hakkında daha fazla bilgi için Yumuşak gezinme başına Core Web Vitals'ı ölçme bölümüne bakın.

Chrome'da geçici gezinmeleri nasıl etkinleştirebilirim?

Yumuşak gezinme özelliği, Chrome 151'den itibaren varsayılan olarak etkinleştirilir.

Soft Navigations API desteğini algılama özelliği

API'nin desteklenip desteklenmediğini test etmek için aşağıdaki kodu kullanabilirsiniz:

if (PerformanceObserver.supportedEntryTypes.includes('soft-navigation')) {
  // Monitor Soft Navigations
}

Alternatif olarak:

if ('SoftNavigationEntry' in window) {
  // Monitor Soft Navigations
}

Yumuşak gezinmeleri nasıl ölçebilirim?

Desteklenen durumlarda metrikler, diğer metriklerde olduğu gibi PerformanceObserver API kullanılarak raporlanabilir. Ancak bu metrikler için dikkate alınması gereken bazı ek noktalar vardır.

Yumuşak gezinmeleri raporlama

Yumuşak gezinmeleri gözlemlemek için PerformanceObserver kullanabilirsiniz. Aşağıda, buffered seçeneğini kullanarak bu sayfadaki önceki geçişler de dahil olmak üzere geçiş girişlerini konsola kaydeden örnek bir kod snippet'i verilmiştir:

const observer = new PerformanceObserver(console.log);
observer.observe({ type: "soft-navigation", buffered: true });

Bu, önceki gezinme için tam yaşam sayfası metriklerini tamamlamak amacıyla kullanılabilir.

Metrikleri uygun URL'ye göre raporlama

Yumuşak gezinme görüldüğünde, önceki sayfanın Core Web Vitals değerleri kesinleştirilip önceki URL için raporlanmalı ve yeni URL için yeni izleme başlatılmalıdır.

Uygun soft-navigation girişinin name özelliği, metriklerin raporlanacağı yeni URL'yi içerir ve navigationId, bu gezinme için benzersiz referans olur (aynı URL, tek sayfalık bir uygulamanın ömrü boyunca birden fazla kez ziyaret edilebileceğinden).

Bu, her soft-navigation girişi olarak ayarlanmalı ve bir sonraki soft-navigation girişi alınana kadar metrikleri raporlamak için kullanılmalıdır.

interaction-contentful-paint için doğru URL'yi bildirme

Tüm interaction-contentful-paint girişlerinin navigationId kullanılarak eşlenmesi ve ilgili URL için LCP olarak raporlanması gerekmediğinden, interaction-contentful-paint girişlerinden LCP hesaplanırken ek hususlar dikkate alınmalıdır:

  • İlk sorun, URL güncellemesinden önce bir boyama gerçekleşirse geçici gezinme gerçekleşmeden önce interaction-contentful-paint girişlerinin yayınlanabilmesidir. Bu durumlarda navigationId eski URL için olur. Önce URL güncellenirse boyama işlemi, geçişli gezinmeyi tamamlar. Bu durumda, önce soft-navigation girişi yayınlanır ve interaction-contentful-paint yeni URL'ye sahip olur.
  • İkinci sorun ise interaction-contentful-paint, girişlerin daha yeni etkileşimler için yayınlanmaya devam etmesidir. Bunun nedeni, bu performans metriğinin kapsamının basit gezinmeler için LCP'nin ötesine geçmesidir. LCP için yalnızca geçişli gezinme yüklemesine ait boyamaları dikkate almak istiyoruz, sonraki etkileşimlere ait boyamaları değil.

Bu nedenle, doğru URL'yi elde etmek için interaction-contentful-paint girişlerini soft-navigation-entries ile eşlerken navigationId yerine interactionId kullanılmalıdır. Bu işlem, eski navigationId içeren tüm girişleri işler ve LCP için dikkate alınmaması gereken interaction-contentful-paint girişlerini filtreler.

Ayrıca, soft-navigation entries yayınlanmadan önce gerçekleşen interaction-contentful-paint girişlerini işlemek için önce soft-navigation girişlerinin getLargestInteractionContentfulPaint() işlevini işlemeniz gerekir.

Yumuşak gezinmelerin startTime değerini alma

Yumuşak gezinmeler için olanlar da dahil olmak üzere tüm performans zamanlamaları ve Core Web Vitals metriklerini hesaplamak için kullanılan girişler, ilk "sert" sayfa gezinme zamanından itibaren geçen süre olarak raporlanır. Bu nedenle, yumuşak gezinme başlangıç zamanı, yumuşak gezinme yükleme metriği sürelerinden (ör. LCP) çıkarılmalıdır. Böylece, bu süreler bu yumuşak gezinme süresine göre raporlanır.

Gezinme başlangıç zamanı, uygun soft-navigation girişine eşlenerek ve startTime kullanılarak benzer şekilde elde edilebilir.

startTime, geçişli gezinmeyi başlatan ilk etkileşimin (ör. düğme tıklaması) zamanıdır. Bu, "başlangıç zamanının" yeni sayfanın tarayıcıya "kaydedildiği" ve etkinlik işleyici kodunun bir kısmı çalıştırıldıktan sonra olduğu "sert gezinmelerden" biraz farklıdır. Yumuşak gezinme başlangıç zamanları, etkileşim başlangıç zamanından itibaren ölçüm yaptığımız için bu etkinlik işleyici kodunu da içerir.

Her basit gezinme için Core Web Vitals'ı ölçme

Core Web Vitals'ı ölçmek için soft-navigation girişlerini dinleyin ve bunları aldığınızda metrikleri sıfırlayın. FCP, presentationTime girişine göre yayınlanabilir ve LCP, getLargestInteractionContentfulPaint() girişine göre başlatılabilir. INP ve CLS, sayfa yüklemede olduğu gibi 0 olarak başlatılmalıdır.

LCP, INP ve CLS daha sonra her zamanki gibi ölçülebilir ve izlenebilir (interactionId eşleşmelerini sağlayan LCP için interaction-contentful-paint kullanımı hariç). interactionId, daha önce açıklandığı gibi bir URL'ye girişleri adlandırmak için kullanılabilir.

Zamanlamalar, orijinal "kesin" gezinme başlangıç zamanına göre döndürülmeye devam eder. Örneğin, yumuşak gezinme için LCP'yi hesaplamak istiyorsanız interaction-contentful-paint zamanlamasını almanız ve daha önce açıklandığı gibi uygun yumuşak gezinme başlangıç zamanını çıkararak yumuşak gezinmeyle ilgili bir zamanlama elde etmeniz gerekir.

Bazı metrikler geleneksel olarak sayfanın ömrü boyunca ölçülür: Örneğin, LCP bir etkileşim gerçekleşene kadar değişebilir. CLS ve INP, herhangi bir etkileşimden bağımsız olarak sayfadan ayrılana kadar güncellenebilir. Bu nedenle, her yeni geçişli gezinme gerçekleştiğinde önceki gezinmenin metrikleri tamamlanmalıdır. Bu, Core Web Vitals'ı yumuşak gezinmelerle ölçerken ilk "sert" gezinme metriklerinin normalden daha erken tamamlanabileceği anlamına gelir.

Benzer şekilde, bu uzun ömürlü metriklerin yeni geçici gezinme metriklerini ölçmeye başlarken metriklerin "sıfırlanması" veya "yeniden başlatılması" ve önceki "sayfalar" için ayarlanan değerler hatırlanmadan yeni metrikler olarak değerlendirilmesi gerekir. Yani "en büyük" boyama, Interaction to Next Paint veya düzen kayması ile ilgili anlayış, sıfırdan tekrar ölçüm yapılmasına olanak tanıyacak şekilde sıfırlanır.

Gezinmeler arasında aynı kalan içerikler nasıl ele alınmalıdır?

Yumuşak gezinmeler için LCP (interaction-contentful-paint üzerinden hesaplanır) yalnızca yeni boyamaları ve yalnızca gezinmeye neden olan etkileşimle ilişkili boyamaları ölçer. Bu durum, söz konusu yumuşak gezinmenin sıfırdan yüklenmesi ile yumuşak yüklenmesi arasında farklı bir LCP'ye neden olabilir.

Örneğin, LCP öğesi olan büyük bir banner resmi içeren ancak altındaki metnin her geçişte değiştiği bir sayfa düşünün. İlk sayfa yüklemesi, banner resmini LCP öğesi olarak işaretler ve LCP zamanlamasını buna göre belirler. Sonraki geçişlerde, alttaki metin geçişten sonra boyanan en büyük öğe olur ve yeni LCP öğesi olur. Ancak sayfa, yumuşak gezinme URL'sine giden bir derin bağlantıyla yüklenirse banner resmi yeni bir boyama olur ve bu nedenle LCP öğesi olarak kabul edilmeye uygun olur.

Benzer şekilde, bir animasyon, gerçekleşen herhangi bir yumuşak gezinmeden bağımsız olarak sayfanın bir bölümünü sürekli olarak güncelliyor olabilir. Bu arka plan animasyonundan kaynaklanan yeni boyamalar, yeni geçiş için LCP kapsamında değerlendirilmez. Ancak sayfa bu URL'den yeniden yüklendiyse LCP için değerlendirilebilirler.

Bu örneklerde gösterildiği gibi, geçişli gezinme için LCP öğesi, sayfanın nasıl yüklendiğine bağlı olarak farklı şekilde raporlanabilir. Aynı şekilde, sayfanın daha alt kısmında yer işareti bağlantısı bulunan bir sayfanın yüklenmesi, tam gezinmeler için farklı bir LCP öğesiyle sonuçlanabilir.

TTFB nasıl ölçülür?

Geleneksel bir sayfa yükleme için Time to First Byte (TTFB), orijinal isteğin ilk baytlarının döndürüldüğü süreyi temsil eder.

Yumuşak gezinme için bu daha zor bir sorudur. Yeni sayfa için yapılan ilk isteği ölçmeli miyiz? Tüm içerik uygulamada zaten mevcutsa ve ek istek yoksa ne olur? Bu istek önceden getirme ile önceden yapılırsa ne olur? Kullanıcı açısından yumuşak gezinmeyle ilgili olmayan bir istek (örneğin, bir analiz isteği) varsa ne olur?

Daha basit bir yöntem, geri/ileri önbellek geri yüklemeleri için önerdiğimiz yönteme benzer şekilde, geçişler için TTFB'yi 0 olarak bildirmektir. Bu, web-vitals kitaplığının basit gezinmeler için kullandığı yöntemdir ve şu anda bu metrik için önerdiğimiz yöntemdir.

Core Web Vitals'ı her iki yöntemle de ölçmeli misiniz?

Bu yeni API'ler yalnızca Chromium tabanlı tarayıcılarla sınırlı olsa da siteler hem yumuşak gezinmelere hem de sert gezinmelere göre dilimleyerek ölçüm yapmak isteyebilir. Bu sayede tarayıcılar arasında ve geçmiş trendlere göre karşılaştırma yapılabilir.

LCP için bu, mevcut yöntem için yalnızca largest-contentful-paint girişlerini, yeni yöntem için ise hem largest-contentful-paint hem de interaction-contentful-paint girişlerini dikkate almak anlamına gelir.

CLS ve INP için bu, mevcut yöntemde olduğu gibi tüm sayfa yaşam döngüsü boyunca ölçüm yapılması ve yeni yöntem için ayrı CLS ve INP değerlerini ölçmek üzere zaman çizelgesinin yumuşak gezinmelere göre ayrı ayrı dilimlenmesi anlamına gelir.

Bu durumda metriklerin analiz için iki kez işaretlenmesi ve depolanması gerekir.

Yumuşak gezinmeler için Core Web Vitals'ı ölçmek üzere web-vitals kitaplığını kullanın.

Tüm ayrıntıları hesaba katmanın en kolay yolu, v6.0.0 sürümünden itibaren geçişleri destekleyen web-vitals JavaScript kitaplığını kullanmaktır. Bu, aşağıdaki şekilde ölçülebilir (doTraditionalProcessing ve doSoftNavProcessing değerlerini uygun şekilde değiştirin):

import {
  onTTFB,
  onFCP,
  onLCP,
  onCLS,
  onINP,
} from 'https://unpkg.com/web-vitals@soft-navs/dist/web-vitals.js?module';

function doTraditionalProcessing(callback) {
  ...
}

function doSoftNavProcessing(callback) {
  ...
}

onTTFB(doTraditionalProcessing);
onFCP(doTraditionalProcessing);
onLCP(doTraditionalProcessing);
onCLS(doTraditionalProcessing);
onINP(doTraditionalProcessing);

onTTFB(doSoftNavProcessing, {reportSoftNavs: true});
onFCP(doSoftNavProcessing, {reportSoftNavs: true});
onLCP(doSoftNavProcessing, {reportSoftNavs: true});
onCLS(doSoftNavProcessing, {reportSoftNavs: true});
onINP(doSoftNavProcessing, {reportSoftNavs: true});

web-vitals kitaplığı, geri çağırmaya sağlanan girişlerde hem navigationId hem de navigationURL içerdiğinden metriklerin daha önce belirtildiği gibi doğru URL'ye göre raporlanmasını da sağlar.

web-vitals kitaplığı, geçişler için aşağıdaki metrikleri raporlar:

Metrik Ayrıntılar
TTFB 0 olarak bildirildi.
FCP Yumuşak gezinmeyi tetikleyen etkileşimden itibaren, yumuşak gezinme başlangıç zamanına göre ilk zengin içerikli boyamanın zamanı. Önceki gezinmeden kalan veya etkileşimle ilişkili olmayan mevcut boyamalar dikkate alınmaz.
LCP Yumuşak gezinmeyi tetikleyen etkileşimden itibaren, yumuşak gezinme başlangıç zamanına göre en büyük zengin içerikli boyamanın zamanı. Önceki gezinmeden kalan mevcut boyamalar etkileşimle ilişkilendirilmez ve dikkate alınmaz. Her zamanki gibi, bu değer sayfa (veya geçici gezinme) terk edilene kadar güncellenmeye devam edebilir. LCP ancak bu aşamada kesinleşebilir.
INP Gezinme süreleri arasındaki INP. Her zamanki gibi, bu değer sayfa (veya geçici gezinme) terk edilene kadar güncellenmeye devam edebilir. INP ancak o zaman kesinleşebilir. Etkileşim yoksa 0 değeri raporlanmaz. Yumuşak gezinmeye neden olan etkileşimin genellikle yeni gezinme (gezinilen) yerine önceki gezinme (gezinilen) ile ilişkilendirildiğini unutmayın. Bunun nedeni, yumuşak gezinmeye neden olmak için ilk boyamanın gerekli olmasıdır. Bu, bir bağlantı tıklamasının INP'ye sahip olabileceği ancak tıklamanın gerçekleştiği sayfayla ilişkilendirileceği tam gezinmelere benzer.
CLS Navigasyon süreleri arasındaki en büyük vardiya aralığı. Her zamanki gibi, bu değer sayfa (veya geçici gezinme) terk edilene kadar güncellenmeye devam edebilir. CLS ancak o zaman kesinleşebilir. Gezinme etkinliğiyle ilişkili CLS'nin hariç tutulabileceğini (etkileşimden sonraki 500 ms içinde gerçekleşirse), önceki gezinmeyle ilişkilendirilebileceğini (kayma, URL güncellenmeden önce gerçekleşirse) veya yeni gezinmeyle ilişkilendirilebileceğini (kayma, geçişli gezinme tamamlandıktan sonra gerçekleşirse) unutmayın.

Bu değişiklikler Core Web Vitals ölçümlerinin bir parçası olacak mı?

Nihai amaç, gerçek kullanıcıların deneyimlediği performansı daha iyi ölçmenin bir yolunu sunmaktır. Yani evet, amaç API kullanıma sunulduktan sonra tüm araçlar tarafından gösterilen Core Web Vitals ölçümlerine bunları dahil etmektir.

Yumuşak gezinmeler CrUX'te nasıl raporlanır?

CrUX'te Core Web Vitals metriklerinin deneme sürümlerini kullanıma sunduk. Bunlar, ilk yumuşak gezinmeden sonra "sert gezinme" CLS ve INP'yi sonlandırır ve her yumuşak gezinme için ek LCP, CLS ve INP ölçümleri içerir. Bu deneysel metrikleri Mayıs 2027'de kararlı metrikler hâline getirmeyi planlıyoruz. Daha fazla bilgi için Deneysel yumuşak gezinme metrikleri artık CrUX'te kullanılabilir blog yayınına bakın.

Diğer tarayıcılarda geçişler nasıl işlenir?

Yazılımsal gezinmelerin, API'yi desteklemeyen tarayıcılarda programatik olarak algılanması zordur. Bu API üzerinde çalışmamızın nedeni de budur.

URL değişikliklerini izlemek için Navigation API'yi kullanabilirsiniz. Bu sayede INP'yi URL'ye göre dilimleyebilirsiniz (ve benzer şekilde CLS'yi de dilimleyebilirsiniz ancak şu anda yalnızca Chromium'da kullanılabildiği için ölçülmez). Ancak bu, yalnızca yaklaşık olarak hesaplanabilen boyama metriklerini (FCP ve LCP) ele almaz.

Aynı zamanda, bu API'nin sunduğu analizlerin hem geçişli gezinmelerin zamanlamasını ölçme hem de metrikleri doğru gezinmeyle ilişkilendirme açısından göz ardı edilemeyecek kadar değerli olduğunu düşünüyoruz. Şu anda tarayıcılar arası destek olmamasına rağmen bu yeni API'yi kullanmanızı öneririz. Core Web Vitals kullanıma sunulduğunda olduğu gibi, tespit edilen sorunlar ve performans çözümleri, görünürlük şimdilik yalnızca Chromium tabanlı tarayıcılarla sınırlı olsa bile muhtemelen tüm tarayıcıları etkileyecektir.

Standardizasyon süreci üzerinde çalışmaya ve bu API'nin önemini göstermek için diğer tarayıcı tedarikçileriyle etkileşim kurmaya devam edeceğiz.

Geri bildirim

Bu API ile ilgili geri bildirimleri aşağıdaki yerlerde aktif olarak topluyoruz:

Şüpheye düşerseniz endişelenmeyin. Geri bildirimleri her iki yerde de almayı tercih ederiz. Sorunları her iki yerde de memnuniyetle önceliklendirir ve doğru yere yönlendiririz.

Değişiklik günlüğü

Bu API geliştirilirken kararlı API'lere kıyasla daha fazla değişiklik yapıldı. Daha fazla bilgi için Soft Navigations Değişiklik Günlüğü'ne bakabilirsiniz.

Sonuç

Yumuşak Gezinmeler özelliği, Core Web Vitals girişiminin, metriklerimizde eksik olan modern web'deki yaygın bir kalıbı ölçmek için nasıl gelişebileceğine dair heyecan verici bir yaklaşımdır. Daha geniş web topluluğundan önemli geri bildirimler aldık ve bu API'nin potansiyeli bizi heyecanlandırıyor.

Onaylar

Küçük resim: Jordan Madrid, Unsplash

Bu çalışma, Google'da çalıştığı dönemde Yoav Weiss tarafından başlatılan çalışmanın devamı niteliğindedir. Yoav'a bu API ile ilgili çalışmaları için teşekkür ederiz.