Core Web Vitals, Google’ın gerçek kullanıcı deneyimini ölçtüğü üç metrikten oluşur: LCP (yüklenme), INP (etkileşim) ve CLS (görsel kararlılık). Bu rehberde her metriği alan verisiyle nasıl ölçeceğinizi, sorunun kaynağını nasıl bulacağınızı ve kod düzeyinde nasıl çözeceğinizi adım adım anlatıyoruz.
Önemli: Google sıralama değerlendirmesinde laboratuvar skorunu değil, alan verisini (CrUX — Chrome User Experience Report) kullanır. PageSpeed Insights’taki 100 puan hedef değil araçtır; hedef, gerçek kullanıcılarınızın %75’inin “iyi” eşiğinin altında kalmasıdır.
Metrikler ve “iyi” eşikleri
| Metrik | Neyi ölçer? | İyi | Zayıf |
|---|---|---|---|
| LCP — Largest Contentful Paint | En büyük içerik öğesinin ekranda görünme süresi | ≤ 2,5 sn | > 4 sn |
| INP — Interaction to Next Paint | Kullanıcı etkileşimine görsel tepki gecikmesi | ≤ 200 ms | > 500 ms |
| CLS — Cumulative Layout Shift | Beklenmeyen düzen kaymalarının toplamı | ≤ 0,1 | > 0,25 |
1. Doğru ölçüm: alan verisinden başlayın
Sıralamada önemli olan veri kaynağı sırasıyla:
- Search Console → Core Web Vitals raporu: URL gruplarına göre gerçek kullanıcı durumu. İyileştirme sonrası “Doğrulamayı başlat” ile süreci takip edin.
- PageSpeed Insights (üst bölüm): URL ve origin bazında CrUX verisi.
- Lighthouse / laboratuvar testi: Tanı aracı — sorunun nerede olduğunu gösterir, sıralamayı etkilemez.
Denetimlerimizde en sık gördüğümüz hata, ekiplerin laboratuvar skorunu kovalayıp alan verisindeki mobil segmenti gözden kaçırması. Türkiye’de mobil trafik payı çoğu sitede %80’in üzerinde; önce mobil CrUX verisine bakın.
2. LCP: en büyük öğeyi hızlandırın
LCP sorunlarının neredeyse tamamı dört nedenden çıkar: yavaş sunucu yanıtı (TTFB), render’ı bloklayan kaynaklar, geç keşfedilen LCP görseli ve istemci tarafı render.
- LCP görseline asla
loading="lazy"vermeyin. Ekranın üstündeki görsellerde lazyload, LCP’yi doğrudan geciktirir; lazyload yalnızca ekran altı içerik içindir. - LCP görselini erken keşfettirin:
<link rel="preload" as="image" fetchpriority="high">veya img üzerindefetchpriority="high". - Kritik CSS’i inline verin, kalan CSS’i küçültün; kullanılmayan CSS/JS’i ayıklayın.
- Görselleri modern formatta (AVIF/WebP) ve gerçek görüntülenme boyutunda servis edin.
- TTFB için: CDN, önbеlleğe alma ve sunucu yanıt süresi optimizasyonu (hedef ≤ 800 ms).
<img src="/gorsel/kapak.avif" alt="Kapak görseli"
width="1200" height="675"
fetchpriority="high" decoding="async">
3. INP: ana iş parçacığını serbest bırakın
INP, 2024’te FID’in yerini aldı ve çok daha zorlu bir metrik: yalnızca ilk etkileşimi değil, sayfa ömrü boyunca tüm etkileşimlerin en yavaşlarını ölçer.
- 50 ms’den uzun görevleri (long tasks) bölün; ağır işleri
requestIdleCallbackveya web worker’a taşıyın. - Üçüncü taraf script’leri denetleyin: her tag yöneticisi eklentisi, sohbet balonu ve analitik kodu INP bütçenizden yer.
- JS’i
deferile yükleyin; hydration maliyeti yüksek framework’lerde adalı (islands) mimariyi değerlendirin. - Etkileşim sonrası görsel geri bildirimi hemen verin; ağır işlemi sonraya bırakın.
4. CLS: her öğeye yerini önceden ayırın
Denetimlerimizde CLS’nin bir numaralı nedeni boyutsuz medya, ikincisi geç enjekte edilen bloklardır (reklam, banner, embed). Kural basit: sonradan gelen her şeyin alanı önceden rezerve edilir.
- Tüm
<img>ve<video>öğelerine gerçekwidth/height(veya CSSaspect-ratio) verin. - Reklam ve embed alanlarına sabit
min-heighttanımlayın; içerik gelmezse alan boş kalsın, düzen kaymasın. - Web fontlarında
font-display: swap+ metrik uyumlu fallback (size-adjust) kullanın. - Sayfa yüklenirken görünüp sonra kaybolan öğelerden kaçının; bu desen hem CLS üretir hem kullanıcıyı yanıltır.
5. Mobil deneyimi kısıtlamayın
Sayfa deneyimi yalnız hız değildir. Viewport meta etiketinde maximum-scale veya user-scalable=0 kullanmak, kullanıcının yakınlaştırma hakkını elinden alır ve erişilebilirlik denetimlerinden geçmez:
<!-- Doğru -->
<meta name="viewport" content="width=device-width, initial-scale=1">
Benzer şekilde, araya giren reklam pencereleri (intrusive interstitial) ve ekran üstünü kaplayan banner yoğunluğu Google’ın sayfa deneyimi değerlendirmesinde açıkça olumsuz sinyaldir.
Sık sorulan sorular
PageSpeed 100 almak şart mı?
Hayır. Şart olan, CrUX alan verisinde üç metriğin de “iyi” bölgede olması. 100 puan mükemmel bir mühendislik göstergesidir ama 95 ile 100 arasındaki fark sıralamada ölçülebilir etki yaratmaz; alan verisindeki “zayıf → iyi” geçişi yaratır.
Core Web Vitals tek başına sıralamayı belirler mi?
Hayır; içerik kalitesi her zaman öndedir. Ancak benzer kalitedeki rakipler arasında sayfa deneyimi ayrıştırıcıdır ve zayıf CWV, özellikle Discover ve Top Stories görünürlüğünü sınırlar.
İyileştirme sonrası etkiyi ne zaman görürüm?
CrUX 28 günlük hareketli pencere kullanır; kalıcı düzelmeyi Search Console'da görmek genellikle 4–6 hafta alır.