CLS (Cumulative Layout Shift) neden olur? Nasıl düzeltilir?
Cevap
CLS, sayfa yüklenirken veya kullanım sırasında beklenmedik şekilde kayan içeriği ölçer. İyi değer 0.1 veya altıdır. Kullanıcı tam butona tıklayacakken içeriğin kayması klasik bir örnektir.
Sık nedenler ve çözümler
| Neden | Çözüm |
|---|---|
| Boyutu belirtilmemiş görsel/video | width/height attribute'ları veya CSS aspect-ratio |
| Sonradan yüklenen reklam, embed, banner | Önceden min-height ile yer ayırmak |
| Web font değişimi (FOUT) | font-display: optional veya size-adjust ile fallback fontu eşleştirmek, fontu preload etmek |
| İçeriğin üstüne dinamik eklenen öğeler (çerez bandı, "yeni gönderi") | Overlay olarak göstermek veya kullanıcı etkileşimiyle eklemek |
top/left/height ile animasyon | transform ile animasyon |
| Skeleton ile gerçek içerik boyut farkı | Skeleton'ı gerçek boyuta yakın yapmak |
<img src="/hero.webp" width="1200" height="600" alt="..." />.video-embed { aspect-ratio: 16 / 9; width: 100%; }
.ad-slot { min-height: 250px; }Nasıl tespit edilir?
- Chrome DevTools > Performance panelinde "Layout shifts" izi; kayan elemanlar vurgulanır.
web-vitalskütüphanesininonCLSattribution build'i hangi elemanın kaydığını raporlar.- Kullanıcı etkileşiminden sonraki 500 ms içindeki kaymalar CLS'e sayılmaz (beklenen kayma).
Not: CLS tüm kaymaların toplamı değildir; aralarında 1 sn'den az olan kaymalar en fazla 5 sn'lik "session window"lar halinde gruplanır ve sayfanın ömrü boyunca en kötü pencerenin toplamı raporlanır. bfcache (geri/ileri önbellek) ile sayfa geri geldiğinde ölçüm sıfırlanır.
İlgili Web Performansı soruları
- Bundle boyutunu nasıl analiz eder ve küçültürsünüz?
- Çok uzun bir listeyi (on binlerce satır) performanslı nasıl gösterirsiniz?
- Bir web sayfasının yükleme performansını nasıl iyileştirirsiniz?
- Core Web Vitals nedir? LCP, INP ve CLS neyi ölçer?
- preload, prefetch, preconnect ve dns-prefetch resource hint'leri arasındaki fark nedir?
- Vite ile webpack arasındaki temel fark nedir? Tree shaking nasıl çalışır, neden bazen çalışmaz?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.