Kullanıcı odaklı performans metrikleri

Performansın ne kadar önemli olduğunu hepimiz duymuşuz. Peki performanstan ve web sitelerini "hızlı" hale getirmekten söz ettiğimizde, tam olarak neyi kastediyoruz?

Gerçek şu ki performans görecelidir:

  • Bir site bir kullanıcı için hızlı (güçlü bir cihaza sahip hızlı bir ağda), başka bir kullanıcı için ise yavaş olabilir (düşük teknolojili bir cihaza sahip yavaş bir ağda).
  • İki sitenin yüklenmesi tam olarak aynı sürede tamamlanabilir, ancak bunlardan biri daha hızlı yükleniyor görebilir (içerik, herhangi bir şey görüntülemek için sonuna kadar beklemek yerine kademeli olarak yükleniyorsa).
  • Bir site hızlı yükleniyor gibi görünse de kullanıcı etkileşimine daha sonra yavaş yanıt verebilir (veya hiç yanıt vermeyebilir).

Bu nedenle performanstan bahsederken net olmak ve niceliksel olarak ölçülebilen nesnel kriterler bağlamında performanstan bahsetmek önemlidir. Bu ölçütler metrics olarak bilinir.

Ancak bir metriğin nesnel ölçütlere dayanması ve nicel olarak ölçülebilmesi, bu ölçümlerin mutlaka faydalı olduğu anlamına gelmez.

Metrikleri tanımlama

Geçmişte web performansı load etkinliğiyle ölçülüyordu. Ancak load, bir sayfanın yaşam döngüsünde iyi tanımlanmış bir an olsa da bu an, kullanıcının önem verdiği herhangi bir şeye karşılık gelmez.

Örneğin, bir sunucu hemen "yüklenen" ancak daha sonra load etkinliğinin tetiklenmesinden birkaç saniye sonrasına kadar içerik getirmeyi ve sayfadaki herhangi bir şeyi görüntülemeyi erteleyen minimal bir sayfayla yanıt verebilir. Böyle bir sayfanın teknik olarak kısa bir yükleme süresi olsa da bu süre, kullanıcının gerçekte sayfa yükleme deneyimine karşılık gelmez.

Geçtiğimiz birkaç yılda, Chrome ekibinin üyeleri (W3C Web Performansı Çalışma Grubu ile birlikte), kullanıcıların web sayfalarının performansını daha doğru bir şekilde ölçen bir dizi yeni API'yi ve metriği standart hale getirmek için çalışmaktadır.

Metriklerin kullanıcılarla alakalı olduğundan emin olmak için bunları birkaç temel soruya göre değerlendiririz:

Sorun yaşıyor musunuz? Gezinme başarılı bir şekilde başladı mı? Sunucu yanıt verdi mi?
Yararlı mı? Kullanıcıların etkileşimde bulunabileceği kadar içerik oluşturuldu mu?
Kullanılabilir mi? Kullanıcılar sayfayla etkileşimde bulunabiliyor mu, yoksa sayfa meşgul mü?
Keyifli miydi? Etkileşimler sorunsuz ve doğal mı, gecikme ve duraklama içermiyor mu?

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

Performans metrikleri genellikle şu iki yöntemden biriyle ölçülür:

  • Laboratuvarda: Tutarlı, kontrollü bir ortamda sayfa yüklemeyi simüle etmek için araçları kullanma
  • Sahada: sayfayı yükleyen ve etkileşimde bulunan gerçek kullanıcılarda

Bu seçeneklerin hiçbiri mutlaka diğerinden daha iyi veya daha kötü değildir. Aslında, iyi bir performans sağlamak için genellikle her ikisini de kullanmak istersiniz.

Laboratuvarda

Yeni özellikler geliştirirken laboratuvarda performansı test etmek şarttır. Özellikler üretimde yayınlanmadan önce, performans özelliklerini gerçek kullanıcılar üzerinde ölçmek mümkün değildir. Bu nedenle, bunları özellik yayınlanmadan önce laboratuvarda test etmek performans gerilemelerini önlemenin en iyi yoludur.

Sahada

Diğer yandan, laboratuvarda test etmek performans için makul bir gösterge olsa da tüm kullanıcıların sitenizle vahşi doğada yaşadığı deneyimleri yansıtmayabilir.

Bir sitenin performansı, kullanıcının cihazının kapasitesine ve ağ koşullarına bağlı olarak önemli ölçüde değişiklik gösterebilir. Ayrıca, bir kullanıcının sayfayla etkileşimde bulunup bulunmadığına (veya nasıl) bağlı olarak da değişiklik gösterebilir.

Ayrıca, sayfa yüklemeleri belirleyici olmayabilir. Örneğin, kişiselleştirilmiş içerik veya reklam yükleyen sitelerin performans özellikleri kullanıcıdan kullanıcıya çok farklı olabilir. Laboratuvar testleri bu farkları yakalamaz.

Sitenizin kullanıcılarınız için nasıl performans gösterdiğini tam olarak anlamanın tek yolu, kullanıcılar sitenizi yüklerken ve sitenizle etkileşime geçerken gösterdiği performansı ölçmektir. Bu ölçüm türü genellikle Gerçek Kullanıcı İzleme veya kısaca RUM olarak adlandırılır.

Metrik türleri

Kullanıcıların performansı nasıl algıladığıyla alakalı olan başka metrik türleri de vardır.

  • Algılanan yükleme hızı: Bir sayfanın ne kadar hızlı yüklenip tüm görsel öğelerini ekranda oluşturabildiğini gösterir.
  • Yükleme duyarlılığı: bileşenlerin kullanıcı etkileşimine hızlı yanıt vermesi için bir sayfanın gerekli JavaScript kodunu ne kadar hızlı yükleyip çalıştırabildiğini gösterir
  • Çalışma zamanı duyarlılığı: Sayfa yüklendikten sonra sayfanın kullanıcı etkileşimine ne kadar hızlı yanıt verebildiği.
  • Görsel kararlılık: Sayfadaki öğeler, kullanıcıların beklemediği ve etkileşimlerine müdahale edebilecek şekilde kayıyor mu?
  • Düzgünlük: Geçişler ve animasyonlar tutarlı bir kare hızında oluşturuluyor ve bir durumdan diğerine akıcı bir şekilde akıyor mu?

Yukarıdaki tüm performans metriği türlerine bakıldığında, bir sayfanın tüm performans özelliklerini yakalamak için tek bir metriğin yeterli olmadığı açıktır.

Ölçülecek önemli metrikler

  • İlk Zengin İçerikli Boyama (FCP): Sayfanın yüklenmeye başlamasından sayfa içeriğinin herhangi bir bölümünün ekranda oluşturulmasına kadar geçen süreyi ölçer. (lab, alan)
  • Largest Contentful Paint (LCP): sayfanın yüklenmeye başlamasından ekranda en büyük metin bloğunun veya resim öğesinin oluşturulmasına kadar geçen süreyi ölçer. (lab, alan)
  • Sonraki Boyamayla Etkileşim (INP): Sayfayla gerçekleştirilen her dokunma, tıklama veya klavye etkileşiminin gecikmesini ölçer ve etkileşim sayısına bağlı olarak sayfanın genel duyarlılığını açıklamak için sayfanın en kötü etkileşim gecikmesini (veya en yüksek değere yakın bir değeri) tek bir temsili değer olarak seçer. (lab, alan)
  • Toplam Engelleme Süresi (TBT): FCP ve TTI arasında, ana iş parçacığının girişe yanıt vermeyi önleyecek kadar uzun süre engellendiği toplam süreyi ölçer. (laboratuvar)
  • Cumulative Layout Shift (CLS): Sayfanın yüklenmeye başlaması ile yaşam döngüsü durumunun gizli olarak değişmesi arasında gerçekleşen tüm beklenmedik düzen kaymalarının kümülatif puanını ölçer. (lab, alan)
  • İlk Bayt Süresi (TTFB): Ağın, bir kaynağın ilk baytıyla birlikte kullanıcı isteğine yanıt vermesi için gereken süreyi ölçer. (lab, alan)

Bu liste performansın kullanıcılarla alakalı çeşitli yönlerini ölçen metrikleri içerse de tüm unsurları içermez. Örneğin, çalışma zamanı yanıt verme ve düzgün çalışma özellikleri şu an için kapsam dahilinde değildir.

Bazı durumlarda, eksik alanları kapsayacak yeni metrikler kullanıma sunulacaktır. Bazı durumlarda ise en iyi metrikler, sitenize özel olarak uyarlanmış metriklerdir.

Özel metrikler

Yukarıda listelenen performans metrikleri, web'deki çoğu sitenin performans özelliklerini genel olarak anlamak için yararlıdır. Ayrıca, sitelerin performanslarını rakipleriyle karşılaştırabilecekleri ortak bir metrik grubuna sahip olmaları açısından da yararlıdır.

Bununla birlikte, belirli bir sitenin, tüm performans resmini yakalamak için ek metrikler gerektiren bir şekilde benzersiz olduğu zamanlar olabilir. Örneğin, LCP metriğinin amacı, bir sayfanın ana içeriğinin yüklenmesi bittiğinde ölçümlemektir. Ancak en büyük öğenin, sayfa ana içeriğinin parçası olmadığı ve dolayısıyla LCP'nin alakalı olmayabileceği durumlar olabilir.

Bu tür durumları ele almak için Web Performansı Çalışma Grubu, kendi özel metriklerinizi uygulamanız için yararlı olabilecek, standartlaştırılmış alt düzey API'lere de sahiptir:

Sitenize özgü performans özelliklerini ölçmek üzere bu API'leri nasıl kullanacağınızı öğrenmek için Özel Metrikler hakkındaki kılavuza bakın.