Chrome 147'de başlayacak nihai Soft Navigations kaynak denemesi

Yayın tarihi: 20 Nisan 2026

Chrome, daha önce denediğimiz Soft Navigations API'yi bu yılın ilerleyen dönemlerinde kullanıma sunmayı planlıyor. Bu hazırlık kapsamında, Chrome 147'den Chrome 149'a kadar sürecek bir kaynak denemesi daha sunuyoruz. Bu deneme, önceki denemelerden alınan geri bildirimleri API'nin beklenen son şekline dahil eder. Bu özellikle ilgilenen web sitesi sahiplerini, API'nin yayınlanmadan önce beklenen son şeklinin nihai bir testini yapmaya teşvik ediyoruz.

Yumuşak gezinme nedir?

"Yumuşak gezinme", JavaScript'in bir gezinmeyi (örneğin, bir bağlantıyı tıklama) engellediği ve URL adres çubuğunda güncellenmeye devam ederken yeni bir sayfa yüklemek yerine mevcut sayfadaki içeriği güncellediği durumlarda gerçekleşir. Kullanıcılar için bunlar geleneksel gezinmelerle aynı görünür ancak tarayıcının bakış açısına göre sayfa, orijinal sayfa olmaya devam eder.

Yumuşak Gezinme API'sinin gerekliliği

Soft Navigations API, Tek Sayfa Uygulaması (SPA) sitelerinin kullandığı yumuşak gezinmeleri algılamak için önerilen bir API'dir. Yumuşak gezinme sırasında gerçek bir sayfa gezinmesi gerçekleşmediğinden JavaScript'in, normalde gezinme sırasında gerçekleşecek belirli işlemleri manuel olarak yönetmesi gerekir. Gezinme geçmişi yönetimi gibi bazı işlemler mevcut API'lerle yapılabilir. Ancak Core Web Vitals'ı ölçme gibi diğer işlemler bu gezinmeler için mümkün değildir.

Soft Navigation API, yumuşak gezinmelerin gözlemlenmesine olanak tanır. Yumuşak gezinmeyi başlatan JavaScript (genellikle bir JavaScript çerçevesi), gezinmenin ne zaman gerçekleştiğinin farkında olsa da site tarafından kullanılan diğer JavaScript'ler (ör. Analytics komut dosyaları) ve tarayıcının kendisi bu durumun farkında olmaz.

Core Web Vitals ve tek sayfa uygulamaları

Soft Navigation API'nin temel amaçlarından biri, tek sayfa uygulamaları için Core Web Vitals metriklerinin ölçülmesine olanak tanımaktır. Core Web Vitals, hem tarayıcı (Chrome Kullanıcı Deneyimi Raporu gibi araçlarda görünmek için) hem de site sahipleri tarafından Gerçek Kullanıcı İzleme (RUM) çözümleri kullanılarak ölçülür.

JavaScript çerçeveleri, tek sayfalık uygulamalar için Core Web Vitals'ın bazı yönlerini ölçebilir. Özellikle Interaction to Next Paint (INP) ve Cumulative Layout Shift (CLS), bu metrikleri hesaplamak için herhangi bir zaman aralığında ölçülebilen temel öğelere (sırasıyla Event Timing API ve Layout Instability API) dayanır. Ancak Largest Contentful Paint (LCP) gibi diğer metrikler yalnızca tarayıcı tarafından, sayfa gezinmelerine göre yayınlanır ve etkileşimde bulunulduğunda sonlandırılır.

API, Core Web Vitals'ın tek sayfa uygulamaları için ölçülmesini nasıl sağlar?

Soft Navigation API, iki yeni performans girişi sunar:

  • Tüm yumuşak gezinme koşulları karşılandığında yayınlanan bir SoftNavigationEntry girişi. Bu, geçişsiz gezinmeye neden olan etkileşim için bir interactionId, benzersiz bir navigationId, yeni URL'ye ayarlanmış bir name ve geçişsiz gezinmenin ilk zengin içerikli boyamasını ölçmek için kullanılabilecek çeşitli boyama zamanlamalarını içerir.
  • Yumuşak gezinmelerde LCP'yi ölçmek için etkileşimlerden sonra giderek büyüyen birden fazla anlamlı boyamayı ölçmeye olanak tanıyan bir InteractionContentfulPaint giriş.

Bu yeni girişler, sırasıyla soft-navigation ve interaction-contentful-paint türleri kullanılarak PerformanceObserver ile gözlemlenebilir.

API ayrıca largest-contentful-paint, interaction-contentful-paint, event-timing ve layout-shift performans girişlerinin (ve diğerlerinin) her birini, girişin ait olduğu gezinmeyi temsil eden bir tanımlayıcı (navigationId) içerecek şekilde genişletir. PerformanceObserver, sayfa boşta kalana kadar performans girişlerini gözlemlemediğinden, performans girişini oluşturan etkinlik ile bu girişi gözlemlemeniz arasında bir süre geçebilir. Bu durum, özellikle sayfa çok yoğun olduğunda (ör. soft gezinmeler sırasında) geçerlidir. Bu navigationId değeri, girişlerin doğru gezinmeyle ilişkilendirilmesine yardımcı olur.

Bazı interaction-contentful-paint girişleri gezinmeden önce, bazıları ise sonra gerçekleşebilir. Yumuşak gezinmeye neden olabilecek tüm boyamaları izlemek yerine, soft-navigation girişi, bu zamana kadar görülen en büyük boyama olan bir largestInteractionContentfulPaint girişi içerir.

Bu üç metrik birlikte, Core Web Vitals'ın şu konularda ölçülmesini sağlar:

  • LCP: İlk sayfa yüklemesi için largest-contentful-paint, yumuşak gezinmeler için ise yeni interaction-contentful-paint ve soft-navigation girişlerini kullanma.
  • CLS: layout-shift girişlerini kullanma ve bunları yumuşak gezinmeler için soft-navigation girişlerine göre dilimleme.
  • Etkileşim Hazırlığı: event girişlerini kullanma ve bunları yumuşak gezinmeler için soft-navigation girişlerine göre dilimleme.
  • FCP: İlk sayfa yüklemesi ve yeni soft-navigation girişlerindeki boyama zamanlaması ayrıntıları için first-contentful-paint kullanılır.

Daha fazla bilgi için Soft Navigations dokümanlarına bakın.

Yumuşak gezinmeler nasıl tetiklenir?

Soft Navigation API, aşağıdakiler gerçekleştiğinde yumuşak gezinmeyi tetikler:

  • Kullanıcı etkileşimi gerçekleştiğinde,
  • … bu da kullanıcının içeriği görünür şekilde boyamasına neden olur.
  • … ve URL güncellemesi yapılır.

API, JavaScript çerçevesinin "yumuşak gezinme" yayınlamasına izin vermek veya Navigation API'yi temel almak yerine bu yaklaşımı iki nedenden dolayı kullanır:

  1. İlk olarak, bu özellik, mevcut tüm tek sayfa uygulaması sitelerini kapsar ve bu sitelerde herhangi bir değişiklik yapılması gerekmez.
  2. İkincisi, bir çerçeve veya geliştirici navigasyonları nasıl ele alırsa alsın, yumuşak gezinmenin ne olduğu konusunda tutarlı bir anlayış sağlar.

Çerçeveler veya geliştiriciler, kullanıcı etkileşimi olmadan ya da kullanıcıların gezinme olarak değerlendireceği bir DOM güncellemesi olmadan bile yumuşak gezinme için URL'yi güncelleyebilir. Ayrıca, URL'yi farklı zamanlarda (etkileşimin başında, yalnızca tamamlandığında sonunda veya aradaki herhangi bir durumda) güncelleyebilirler.

Tarayıcıya yumuşak gezinme algılama özelliğini eklemek, çerçeve ve geliştirici tercihlerine güvenmek yerine, yumuşak gezinmeler için Core Web Vitals'ın büyük ölçekte ölçülmesini sağlayan ve bu ölçümleri büyük ölçekte karşılaştırılabilir hale getiren kanonik bir tanım oluşturur.

Çerçeveler ve geliştiriciler, Soft Navigations API'yi de yoksayabilir ve istedikleri ek performans metriklerini ölçmek için temel Event Timing, Layout Instability API'leri ve yeni InteractionContentfulPaint performans girişini kullanabilir. Ancak siteler ve araçlar arasında tutarlı ölçüm sağlamak için Core Web Vitals'ı ölçmek üzere API'yi kullanmanızı öneririz.

Soft Navigation API'yi test etmek için yardıma ihtiyacım var

Soft Navigations API'yi test etmemize ve yumuşak gezinmenin ne zaman gerçekleşeceğiyle ilgili beklentilerinizi doğru şekilde karşılayıp karşılamadığını belirlememize yardımcı olmanızı rica ediyoruz. API, gerçekleştiğini düşündüğünüz geçişleri bildirmiyor mu? Bunun aksine, API, gezinme olarak değerlendirmediğiniz gezinmeleri fazla mı bildiriyor?

Son kaynak denemesinden bu yana neler değişti?

Bu son yinelemedeki temel değişiklik, InteractionContentfulPaint öğesinin diğer performans girişi kullanım alanlarını etkinleştirmek için yumuşak gezinmelerden ayrılması ve SoftNavigationEntry öğesine ek largestInteractionContentfulPaint özelliği eklenmesidir.

Web sitesi açısından bakıldığında, API artık replaceState öğesini de yumuşak gezinme olarak içeriyor. Bunun nedeni, geri bildirimlerinizde bu öğenin birçok durumda gezinme olarak değerlendirilmesinin önemli olduğunu belirtmenizdir. API'nin yumuşak gezinmeyi tanımadığı diğer durumları da öğrenmek isteriz.

Uygulamada sayısız başka iyileştirme de yaptık. En son yinelemede tam olarak neyin değiştiğini öğrenmek isteyenler, tüm değişikliklerin ayrıntılı geçmişini Soft Navigations Changelog'da bulabilir.

API'nin olabildiğince kullanışlı olmasını istiyoruz ve bu doğrultuda daha fazla değişiklik yapmaya hazırız. API kullanıma sunulmadan ve siteler uygulamaya bağlı kalmaya başlamadan önce API'de değişiklik yapmak çok daha kolaydır. Bu nedenle, SPA geliştiricilerden ve bu sitelerin web performansını ölçmek isteyenlerden bu API'yi test etmelerini ve API hakkında geri bildirimde bulunmalarını rica ediyoruz.

Test etme

API, Chrome flags veya komut satırı seçenekleriyle yerel olarak test edilebilir. Ayrıca, kaynak denemesiyle sahada test edebilirsiniz (kaynak denemeleri hakkında daha fazla bilgi edinin).

API hakkında daha fazla teknik bilgi edinmek için dokümanlarımıza veya GitHub deposuna göz atın. Özellikle Core Web Vitals'ı nasıl ölçeceğiniz hakkında bilgi edinin.

Ayrıca, web-vitals kitaplığının deneysel bir yumuşak gezinme sürümü GitHub ve npm'de mevcuttur.

Daha basit bir test için Chrome Geliştirici Araçları'nın Performans paneli, Chrome 145'ten itibaren özelliği etkinleştirmeden bile performans izlemelerinde yumuşak gezinmeyi gösterir:

Performans panelinde youtube.com'dan gelen izlemesi olan bir yumuşak gezinme işaretçisi.

Geri bildirim

API ile ilgili geri bildirimler GitHub'da sorun olarak gönderilmeli, Chromium uygulamasındaki hatalar ise Chrome'un sorun izleyicisinde bildirilmelidir. Geri bildirimin hangi kategoriye girdiğinden emin değilseniz endişelenmeyin. Geri bildirimleri her iki yerden de almayı tercih ederiz. Her iki yerdeki sorunları öncelik sırasına göre ele alıp doğru yere yönlendiririz.