Cumulative Layout Shift (CLS) Nedir?
CLS, sayfa render'ı sırasında ekranda element'lerin kayma toplamını ölçen Core Web Vitals metriği. Kullanıcı bir butona tıklamak üzereyken sayfa kayarsa CLS skoru bozuluyor. <0.1 'iyi', 0.1-0.25 'iyileştirilmeli', >0.25 'kötü'. Mobile'da reklam pop-up'ları + lazy-load resimler en yaygın sebep.
CLS = Layout Shift miktarı × görünürlük oranı. Yani: sayfada bir element kaydığında, hem ne kadar kaydığı hem viewport'ta ne kadar görünür olduğu hesaplanıyor.
CLS'yi bozan tipik senaryolar: 1. Resimlere width/height verilmemesi — resim yüklendiğinde altındaki içerik aşağı kayıyor 2. Lazy load reklam — sayfa açıldıktan 2 sn sonra reklam injected, içerik aşağı kayıyor 3. Web font yüklemesi — fallback font (Arial) ile asıl font (Inter) arası boyut farkı text reflow yaratıyor 4. Dynamic injected content — 'flash sale' banner, cookie consent pop-up 5. Sayfa açılışında animation — slide-in transition CLS'yi etkileyebiliyor
CLS optimizasyon teknikleri: 1. <img width='800' height='450' /> — explicit dimensions VEYA aspect-ratio CSS 2. Reklam container'ına min-height ver — boş gelse bile yer tutsun 3. Font preload + size-adjust — fallback ile asıl font arası fark sıfırlanır 4. Cookie consent banner fixed bottom position (sayfa içeriğini kaydırmaz) 5. Skeleton loader — yüklenmeyen yer boş bırakılmasın
Google CLS hesabını 'session window' içinde yapıyor — 5 saniyelik pencere içinde max layout shift değerleri alıyor. Sayfa açılışında 1 büyük shift olabilir; sonraki 5 saniyede sakin olursa skor kötü değil.
DevPixel projelerinde CLS hedefi <0.05 — Next.js Image component otomatik aspect-ratio veriyor + critical CSS inline + font preload. Tipik CLS skorumuz 0.02-0.04.
DevPixel'in CLS optimizasyon yaklaşımı: Next.js Image component otomatik aspect-ratio ve width/height, font preload + display swap, cookie consent fixed footer (sayfa kayması yok), animation'lar transform CSS ile (layout shift yaratmaz). 50+ projemizde ortalama CLS 0.03.
İlgili terimler
- Core Web Vitals (CWV)— Core Web Vitals, Google'ın sayfa deneyimini ölçen 3 ana metrik: LCP (Largest Con...
- Interaction to Next Paint (INP)— INP, kullanıcının bir butona/linke tıkladığında ekranda görsel response'a kadar ...
- Lighthouse— Lighthouse, Google'ın geliştirdiği açık kaynak web sayfası analiz aracı. Perform...