INP ve Shopify uygulamaları: sepete ekle düğmesi neden geç tepki veriyor?
INP, ziyaretçinin tıklamasından ekranda bir şey değişene kadar geçen süreyi ölçüyor ve 200 milisaniyenin üstü iyi sayılmıyor. Shopify mağazalarında bu süreyi en çok uzatan şey uygulama betikleri. Hangi uygulamanın sorun çıkardığı nasıl bulunur, ne sırayla düzeltilir?
Ziyaretçi sepete ekle düğmesine basıyor ve yarım saniye hiçbir şey olmuyor; ya bir daha basıyor ya da sayfadan çıkıyor. Bu gecikmeyi ölçen metrik INP (Interaction to Next Paint, sonraki boyamaya kadar etkileşim süresi). Google 12 Mart 2024'te INP'yi Core Web Vitals'a aldı ve eski FID metriğini çıkardı.
Shopify mağazalarında bu süreyi en çok uzatan, kurulu uygulamaların betikleri. Her uygulama sayfaya kendi betiğini ekliyor ve bu betikler ziyaretçinin tıklamasıyla aynı iş parçacığında sıra bekliyor. Bu yazı INP'nin neyi ölçtüğünü, Shopify panelinde nereden izleneceğini ve sorunlu uygulamanın nasıl bulunacağını anlatıyor.
INP neyi ölçüyor?
INP, sayfadaki tıklama, dokunma ve tuşa basma etkileşimlerinin her birinde, etkileşimden ekranın güncellenmesine kadar geçen süreye bakıyor. Fareyle üzerine gelmek, kaydırmak ve yakınlaştırmak hesaba girmiyor. Çoğu sayfada raporlanan değer, ziyaret boyunca yaşanan en yavaş etkileşim; çok etkileşimli sayfalarda her elli etkileşimde en yavaş olan bir tanesi aykırı değer olarak atılıyor.
Eşik, ziyaretlerin yüzde 75'ine uygulanıyor. Yani hızlı telefonlarda her şey yolunda görünse bile, daha yavaş cihazlardan gelen ziyaretçilerin dörtte biri 500 milisaniyeyi aşıyorsa mağaza zayıf sınıfa düşüyor.
Bir tıklamanın üç parçası
Bir etkileşimin süresi üç parçadan oluşuyor ve uygulamalar üçüne de farklı biçimde dokunabiliyor:
Shopify'ın tema geliştirme rehberi de aynı noktayı yazıyor: tema kodu da uygulama betikleri de ana iş parçacığında çalışıyor ve tarayıcının ekranı çizme ve kullanıcıya yanıt verme işiyle yarışıyor.
Shopify panelinde INP nereden izlenir?
Shopify yönetici panelindeki web performansı panosu LCP, INP ve CLS değerlerini gösteriyor. Veriler son 30 günün gerçek ziyaretçi verisinden geliyor ve her metrik için yüzde 75'lik değer milisaniye cinsinden yazıyor. Veri 36 saate kadar gecikebiliyor ve yalnızca son 90 gün için tutuluyor.
Panonun bu iş için en kullanışlı kısmı grafikteki numaralı dikey çizgiler. Shopify bunları uygulama kurulumu, tema güncellemesi ve yeni kod eklenmesi gibi performansı etkileyebilecek olaylar için ekliyor. INP bir tarihten sonra yükselmişse ilk bakılacak yer o tarihteki çizgi. Sayfa türü ve sayfa adresi raporları da sorunun ürün sayfasında mı, koleksiyonda mı, sepette mi yoğunlaştığını gösteriyor.
PageSpeed Insights da sitenin Chrome kullanıcılarından toplanan saha verisini gösteriyor. Bu veri sayfanın ne kadar yavaş yanıt verdiğini gösteriyor ama hangi betiğin yavaşlattığını göstermiyor.
Saha ve laboratuvar verisinin farkını, hangi sayfaların ölçüleceğini ve düzeltmelerin nasıl sıralanacağını hız denetimi yazısında anlattık.
Hız denetimi yazısıSorunlu uygulamayı bulmak
En pratik yöntem, temanın bir kopyası üzerinde uygulama yerleştirmelerini (app embeds) tek tek kapatıp en yavaş sayfa türünü yeniden denemek. Tema düzenleyicinin kenar çubuğundaki uygulama yerleştirmeleri simgesinden her uygulamanın yerleştirmesi açılıp kapatılabiliyor. Kopya temada yapılan değişiklik yayındaki mağazayı etkilemiyor.
Gerçek ziyaretçilerden veri toplamak isteyen ekipler için daha kesin bir yol var. Tarayıcıların Long Animation Frames (uzun animasyon kareleri) arayüzü, yavaş bir karenin hangi betik adresinden kaynaklandığını bildiriyor. Google'ın web-vitals kütüphanesinin atıf sürümü bu bilgiyi INP ölçümüne ekliyor ve giriş gecikmesi, işleme süresi ve sunum gecikmesini ayrı ayrı veriyor. Betik adresi çoğu zaman uygulamanın sunucusunu gösterdiği için hangi uygulamanın tıklamayı yavaşlattığı doğrudan görülüyor.
Uygulama seçerken nelere bakılmalı?
Shopify'ın “Built for Shopify” rozeti için koyduğu şartlar uygulama seçerken iyi bir ölçü. Rozetli bir uygulama mağazanın Lighthouse performans puanını en fazla on puan düşürebiliyor, mağazaya eklenecek öğeleri tema uygulama uzantılarıyla kurmak zorunda ve sayfa oluşturucu ya da yedekleme gibi istisnalar dışında temanın dosyalarını değiştiremiyor.
Rozetin iki sınırı var. Lighthouse puanı bir laboratuvar ölçümü ve yükleme tarafına ağırlık veriyor; tıklama gecikmesini doğrudan ölçmüyor. Rozet şartlarındaki 200 milisaniyelik INP sınırı da uygulamanın Shopify yönetici panelindeki kendi arayüzü için geçerli, mağaza vitrini için değil. Rozet bu yüzden bir başlangıç ölçütü; kurduktan sonra kendi panonuzdaki INP'ye bakmanız yine gerekiyor.
Kaldırılmış ama kodu temada kalan uygulamaları ve aynı işi yapan birden fazla uygulamayı ayrı bir yazıda anlattık.
Gizli sebepler yazısıDüzeltme sırası
Uygulama yığınınızı panodaki veriye göre tarıyor, tıklamayı yavaşlatan betikleri buluyor ve kaldırma, sınırlama ya da erteleme planını sizinle birlikte çıkarıyoruz. Mağazanız zaten iyi sınıftaysa bunu da açıkça söyleriz.
Hız ve performansYapmanıza gerek olmayanlar
Kaynaklar
- web.dev, Interaction to Next Paint (INP): tıklama, dokunma ve tuş etkileşimleri; 200 ve 500 milisaniyelik eşikler ve yüzde 75; her elli etkileşimde bir aykırı değerin atılması; giriş gecikmesi, işleme süresi ve sunum gecikmesi
- web.dev, INP'nin 12 Mart 2024'te Core Web Vital olması ve FID'nin yerini alması
- web.dev, Sahada yavaş etkileşimleri bulmak: Long Animation Frames arayüzünde betik adresi (sourceURL) ve süre; web-vitals kütüphanesinin atıf sürümü; CrUX verisinin nedeni göstermemesi
- Shopify Yardım Merkezi, Web performansı panosu: LCP, INP ve CLS; son 30 günün gerçek ziyaretçi verisi ve yüzde 75; 36 saate kadar gecikme ve 90 günlük saklama; sayfa türü ve adres raporları; uygulama kurulumu ve tema güncellemesi işaretleri
- Shopify Yardım Merkezi, Temalarda uygulamalar: tema düzenleyicide uygulama yerleştirmelerinin açılıp kapatılması; tema değişince uygulamaların yeniden etkinleştirilmesi
- Shopify geliştirici belgeleri, Built for Shopify şartları: vitrin Lighthouse puanını en fazla on puan düşürme; tema uygulama uzantıları; tema dosyalarının değiştirilmemesi; yönetici panelinde 200 milisaniyelik INP
- Shopify geliştirici belgeleri, Tema performansı en iyi uygulamaları: betiklerin ana iş parçacığında çalışması; defer ve async; etkileşimde dinamik yükleme; işleyicilerin seyrekleştirilmesi
