• Performans
  • Core Web Vitals
  • Teknik SEO

INP Nedir? Core Web Vitals’ta INP’yi İyileştirmenin 7 Yolu

INP (Interaction to Next Paint) nedir, FID’den farkı ne, nasıl ölçülür? Core Web Vitals skorunu yükseltmek için uygulanabilir 7 teknik öneri.

Sayfanız hızlı açılıyor ama bir butona tıkladığınızda yarım saniye hiçbir şey olmuyor mu? İşte INP (Interaction to Next Paint) tam olarak bu gecikmeyi ölçer. Mart 2024’te FID’nin yerini alan INP, bugün Core Web Vitals’ın en çok zorlanılan metriğidir.

INP neyi ölçer?

INP, kullanıcının sayfa üzerindeki tıklama, dokunma ve klavye etkileşimlerinin her birinde, etkileşim anından ekranda bir sonraki görsel güncellemenin çizilmesine kadar geçen süreyi ölçer. Sayfa ömrü boyunca gerçekleşen etkileşimlerin en yavaşlarından biri sayfanın INP değeri olarak raporlanır.

  • İyi: 200 ms ve altı
  • İyileştirilmeli: 200 – 500 ms
  • Kötü: 500 ms üzeri

FID yalnızca ilk etkileşimin bekleme süresine bakıyordu; INP ise tüm etkileşimlerin toplam yanıt süresini değerlendirir. Bu yüzden ağır JavaScript kullanan siteler FID’de yeşil görünürken INP’de kırmızıya düşebilir.

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

  1. Gerçek kullanıcı verisi: Google Search Console’daki Core Web Vitals raporu ve PageSpeed Insights’taki CrUX verisi.
  2. Laboratuvar: Chrome DevTools’un Performance panelinde etkileşimleri kaydedip uzun görevleri (long tasks) inceleyin.
  3. Kendi izlemeniz: web-vitals kütüphanesiyle INP’yi analitik aracınıza gönderin ve hangi etkileşimin yavaş olduğunu sayfa bazında görün.

INP’yi iyileştirmenin 7 yolu

1. Uzun görevleri bölün

50 ms’den uzun süren JavaScript görevleri ana iş parçacığını kilitler. Büyük işlemleri parçalara ayırıp aralarda tarayıcıya nefes aldırın; scheduler.yield() veya setTimeout ile görevleri bölmek çoğu zaman tek başına ciddi iyileşme sağlar.

2. Gereksiz JavaScript’i kaldırın

Kullanılmayan kütüphaneler, her sayfada yüklenen ama yalnızca bir sayfada kullanılan bileşenler ve eski polyfill’ler INP’nin sessiz düşmanlarıdır. Kod bölme (code splitting) ve adalar mimarisi (islands) ile yalnızca gereken kodu yükleyin.

3. Üçüncü parti script’leri disipline edin

Canlı destek, ısı haritası, reklam ve pazarlama etiketleri ana iş parçacığında ciddi yer kaplar. Gerçekten ihtiyaç duyulanları tutun, geri kalanını kullanıcı etkileşiminden sonra veya boşta kalma anlarında yükleyin.

4. Olay işleyicilerini hafif tutun

Bir tıklamada yapılan işi ikiye ayırın: kullanıcıya anında görsel geri bildirim verin (buton durumu, yükleniyor göstergesi), ağır hesaplamayı ise bir sonraki kareden sonraya erteleyin.

5. DOM boyutunu küçültün

Binlerce düğümden oluşan sayfalarda her stil değişikliği pahalıdır. Uzun listelerde sanallaştırma (virtualization) kullanın, ekran dışındaki bölümler için content-visibility: auto ile tarayıcının işini azaltın.

6. Yeniden çizimleri (layout thrashing) önleyin

Aynı döngüde DOM’dan ölçüm okuyup hemen ardından stil yazmak, tarayıcıyı tekrar tekrar düzen hesaplamaya zorlar. Okuma ve yazma işlemlerini gruplayın; animasyonlarda transform ve opacity kullanın.

7. Sunucu taraflı render’dan yararlanın

Sayfanın büyük bölümünü sunucuda veya derleme anında HTML olarak üretmek, istemcide çalışması gereken JavaScript miktarını azaltır. Astro ve Next.js gibi modern çatılar bu yaklaşımı varsayılan hale getirir.

Sonuç

INP, kullanıcının sitenizi “hızlı” mı yoksa “hantal” mı algıladığını doğrudan belirler. İyi haber şu ki iyileştirmelerin çoğu büyük bir yeniden yazım gerektirmez; doğru ölçüm ve hedefli müdahalelerle birkaç hafta içinde yeşil skorlara ulaşmak mümkündür.

Yeni projelere açık

Bir sonraki büyük işinizi birlikte kuralım.

Ücretsiz 30 dakikalık keşif görüşmesinde ihtiyacınızı dinleyip size en uygun teknik yol haritasını, süreyi ve bütçeyi net olarak çıkarayım.

Keşif görüşmesi planla
Projeni anlat, teklifini al!