CORE WEB VITALS LCP CLS INP İYİLEŞTİRMEK

Core Web Vitals, Google'ın sayfa hızını ölçtüğü üç metriktir: LCP yükleme süresini, CLS sayfanın oynamasını, INP etkileşim hızını ölçer ve üçü de doğrudan SEO sıralama faktörüdür. Bu yazıda her metriğin eşiklerini, kök nedenlerini ve birbirinden bağımsız iyileştirme adımlarını örneklerle öğreneceksiniz.
1. Core Web Vitals nedir?
Google'ın belirlediği üç ana kullanıcı deneyimi metriği. Hem laboratuvar testleriyle (PageSpeed Insights, Lighthouse) hem de gerçek kullanıcı verisiyle (Chrome User Experience Report, CrUX) ölçülür. Sıralama için gerçek kullanıcı verisi belirleyici.
| Metrik | İyi | İyileştirilebilir | Zayıf |
|---|---|---|---|
| LCP (Largest Contentful Paint) | <2.5s | 2.5-4s | >4s |
| CLS (Cumulative Layout Shift) | <0.1 | 0.1-0.25 | >0.25 |
| INP (Interaction to Next Paint) | <200ms | 200-500ms | >500ms |
İyi skor için tüm sayfalarda mobil ve masaüstü her üç metriğin de "iyi" alanda olması gerek. Genel skor: sayfaların yüzde 75'i "iyi" alanda olmalı.
2. LCP: en büyük öğenin yükleme süresi
LCP, sayfanın görünür alanındaki en büyük içerik elementinin (genelde hero görseli veya ana başlık) ne kadar sürede yüklendiğini ölçer; eşik değerleri ve ölçüm yöntemleri konusunda Google'ın web performans kaynakları ayrıntılı referans sunar. Kullanıcının "sayfa açıldı" hissi LCP ile belirlenir.
LCP'yi olumsuz etkileyen unsurlar
- Optimize edilmemiş büyük görsel (özellikle hero img)
- Yavaş sunucu yanıt süresi (TTFB)
- Render-blocking CSS ve JavaScript
- Client-side rendering (SPA) ile geç yüklenen ana içerik
- Web fontlarının geç yüklenmesi
LCP iyileştirme adımları
- Hero görselini optimize et. WebP formatına çevir, doğru boyutta yükle, srcset ile responsive yap
- loading="eager" + fetchpriority="high" kullan. Hero img'a; tarayıcı bunu öncelikli yükler
- Preload kritik kaynakları. head içinde
<link rel="preload" href="hero.webp" as="image"> - CDN kullan. Cloudflare ücretsiz yeterli; coğrafi yakınlık LCP'yi 200-500ms düşürür
- Sunucu yanıt süresini düşür. TTFB 200ms altı hedef; hosting kalitesi belirleyici
- Render-blocking CSS'i azalt. Kritik CSS inline, geri kalan async
- Üçüncü taraf script'leri ertele. Analytics, chat, social embed'ler defer/async
Hızlı kazanç
Çoğu WordPress sitesinde LCP iyileştirmesinin yüzde 60'ı tek bir adımla gelir: hero görselin WebP'ye dönüştürülmesi ve preload edilmesi. ShortPixel veya benzeri eklenti ile saatler değil dakikalar içinde fark görülür.
3. CLS: kümülatif düzen kayması
CLS, sayfa yüklenirken içeriğin ne kadar oynadığını ölçer. Kullanıcı bir butonun konumunu görür, tıklamak için fareyi getirir; o sırada üst tarafta görsel yüklenip buton aşağı kayar; kullanıcı yanlış yere tıklar. CLS bu deneyimi sayısallaştırır.
CLS'i olumsuz etkileyen unsurlar
- Boyut belirtilmemiş görseller (yüklenirken yer kaplamıyor, sonra patlama yapıyor)
- Boyut belirtilmemiş reklam slot'ları
- Web fontlarının geç yüklenmesi (FOIT/FOUT: yazı boyut değişimi)
- Üst kısma sonradan eklenen banner veya bildirim
- Dynamic content (oturum durumu, kullanıcı menüsü)
CLS iyileştirme adımları
- Tüm görsellere width ve height ekle. Tarayıcı görsel yüklenmeden önce yer ayırır
- Aspect-ratio CSS kullan.
aspect-ratio: 16/9;görselin boyutu netleşir - Reklam slot'larına min-height ver. Slot dolmadan önce yer açık dursun
- font-display: swap kullan. Yedek fontla görüntü; web fontu yüklenince geçiş
- İçerik enjeksiyonunu üst kısımdan kaçın. Banner veya bildirim sayfanın altına; üstte ise yer önceden ayrılmış olmalı
- Layout shifts'i Performance panelinde incele. Hangi element kaydı, hangi anda kaydı

4. INP: etkileşim yanıt süresi
INP, kullanıcı bir tıklama, dokunma veya klavye girişi yaptığında sayfanın ne kadar sürede yanıt verdiğini ölçer. Mart 2024'te FID metriğinin yerine geldi; daha kapsamlı ve daha gerçekçi.
INP'yi olumsuz etkileyen unsurlar
- Ağır JavaScript main thread'i bloke ediyor
- Uzun süren event handler'lar
- Sayfa yüklenirken büyük hesaplamalar
- Üçüncü taraf script'lerin engelleme yapması
- React veya benzeri framework'lerde yanlış rerender yönetimi
INP iyileştirme adımları
- Long task'leri parçala. 50ms'i geçen task'leri requestIdleCallback veya scheduler.postTask ile böl
- Event handler'ları optimize et. Throttle/debounce kullan; her tıklamada ağır iş yapma
- Üçüncü taraf script'leri ertele. defer veya async ile yükle; sayfa interactive olduktan sonra başlatır
- Web Worker kullan. Ağır hesaplamaları main thread'ten ayır
- React optimize et. useMemo, useCallback, React.memo ile gereksiz rerender'ı engelle
- Asenkron API çağrılarını yönet. Promise zincirleri main thread'i bloke ederse INP düşer
5. Ölçüm araçları
PageSpeed Insights
Tek sayfa için kapsamlı analiz. Hem laboratuvar testi (Lighthouse) hem gerçek kullanıcı verisi (CrUX) gösterir. Mobil ve masaüstü ayrı raporlar. Ücretsiz ve hızlı.
Chrome User Experience Report (CrUX)
Gerçek kullanıcı davranışından toplanan veri. Google sıralama için bu veriyi kullanır. Search Console'da Core Web Vitals raporu CrUX'tan beslenir.
Chrome DevTools Performance
F12 → Performance sekmesi → Record. Tarayıcı içinde detaylı zaman çizelgesi. Long task'ler, layout shifts, network bloklamaları görünür.
Web Vitals JavaScript kütüphanesi
Kendi sitenizde gerçek kullanıcı metriklerini toplayıp Analytics'e gönderebilirsiniz:
import { onLCP, onCLS, onINP } from 'web-vitals';
onLCP(metric => sendToAnalytics(metric));
onCLS(metric => sendToAnalytics(metric));
onINP(metric => sendToAnalytics(metric));6. Mobil vs masaüstü farkı
Core Web Vitals mobilde çoğunlukla daha kötü. Sebepleri:
- Mobil cihaz CPU'su daha yavaş (özellikle düşük seviye Android)
- Mobil ağ daha değişken (3G/4G dalgalanma)
- Mobil ekranda hero görsel daha büyük yer kaplar (LCP olarak)
Google sıralamada mobil-first indexing kullandığı için mobil skoru daha kritiktir. Masaüstü skoru iyi olsa bile mobil zayıfsa SEO kaybı vardır.
7. Sık Görülen Sorunlar hatalar
- Sadece Lighthouse'a bakmak. Lab data tek nokta; gerçek kullanıcı verisi (CrUX) Google için daha belirleyici
- Tek bir sayfayı optimize edip "site hızlandı" demek. Tüm sayfa tiplerinde (ana, kategori, ürün, blog) ayrı kontrol gerekir
- WebP dönüşümünü atlamak. Hâlâ JPG hero kullanan siteler LCP'de büyük kayıp
- Üçüncü taraf script'leri saymamak. Chat widget, social embed, A/B test scripti INP'yi gizlice düşürür
- Görsel boyutu belirtmemek. CLS'in birinci numaralı sebebi
- Mobil ölçümü atlamak. Masaüstüde iyi mobil kötü; SEO sıralamada mobil sayılır
8. Hedef skor
"Mükemmel skor" değil "iyi skor" hedef. PageSpeed Insights'ta 100/100 abartılı bir hedef; üretim sitelerinde gerçekçi değil. Pratik hedef:
- Mobil skor 75-85+
- Masaüstü skor 90+
- Üç Core Web Vitals metriği de "iyi" alanda
- Tüm önemli sayfa tiplerinde tutarlı performans

9. İlerleme Yönü
Core Web Vitals modern web geliştirmenin temel ölçütleri. Sistemli optimizasyon için teknik SEO eğitimi programları performans metrikleri ve crawl bütçesi konularını birlikte aktarır.
Özetle
Core Web Vitals; LCP yükleme, CLS düzen kayması ve INP etkileşim yanıt süresi olmak üzere üç metrikten oluşan modern performans standardıdır. Her birinin farklı kök nedenleri ve farklı çözüm yolları vardır. LCP için görsel optimizasyonu ve preload, CLS için boyut belirtimi ve font-display swap, INP için JavaScript optimizasyonu ana çözümlerdir. Mobil skor masaüstünden daha kritik; SEO için sıralama faktörü. Yıllık değil sürekli izlenen bir alan; her yeni feature performans testinden geçmeli.
Sıkça Sorulan Sorular
LCP'yi etkileyen en büyük tek faktör nedir?
Hero görsel. Sayfanın görünür alanındaki en büyük görsel öğesi genelde LCP'yi belirler. WebP dönüşümü, doğru boyutlandırma, preload kullanımı ve loading=eager + fetchpriority=high attribute'ları LCP'yi dramatik şekilde iyileştirir. WordPress sitelerinde bu tek değişiklik sayfa hızını 1-2 saniye düşürür.
FID neden INP'ye dönüştü?
FID sadece ilk etkileşimi ölçüyordu; sayfanın geri kalanında yaşanan gecikmeleri görmezden geliyordu. INP ise tüm etkileşimleri ölçer ve en kötü olanı raporlar. Yani 'sayfanın ilk yüklenmesi hızlı ama sonradan butonlar yavaş tepki veriyor' senaryosunu FID yakalayamıyordu; INP yakalar. Mart 2024'te FID INP ile değiştirildi.
Mobile skor masaüstünden neden hep daha kötü?
Üç ana sebep var. Birincisi mobil CPU daha yavaş; özellikle düşük seviye Android cihazlar JavaScript ağırlığı altında zorlanır. İkincisi mobil ağ değişken; 3G/4G yavaşlamaları gerçek kullanıcı verisinde görünür. Üçüncüsü mobil ekranda hero görsel proporsiyonel olarak daha büyük yer kaplar; LCP daha geç gelir. Google sıralamada mobil-first kullandığı için mobil skoru daha kritiktir.
CLS için en kritik düzeltme nedir?
Tüm görsellere width ve height ekleme. Yüksekliği belirtilmemiş bir img tag yüklendiğinde sayfa şişer; alttaki içerik aşağı kayar. width=600 height=400 gibi attribute'lar veya CSS'te aspect-ratio:16/9 ile sorun çözülür. Tarayıcı görsel yüklenmeden önce yer ayırır. Bu tek değişiklik çoğu sitenin CLS'ini 0.25'ten 0.05'e düşürür.
Üçüncü taraf script'leri kaldırmadan INP iyileştirebilir miyim?
Kısmen evet. Async veya defer attribute'ları ile script yüklemesi parser'ı engellemez. Bazı script'leri (analytics, chat widget) sayfa interactive olduktan sonra başlatmak için JavaScript ile geciktirebilirsiniz. Ama agresif script kullanan siteler (10+ üçüncü taraf script) gerçek anlamda INP iyileştirmesi için bazılarını kaldırmak veya hafif alternatifle değiştirmek zorunda kalabilir.
PageSpeed Insights skoru 90+ olsa bile gerçek kullanıcı verisi neden zayıf gösterilir?
Lab data (Lighthouse) ideal koşullarda test eder; sabit ağ, sabit CPU, soğuk başlangıç. Gerçek kullanıcı verisi (CrUX) milyonlarca gerçek kullanıcının verisini toplar; eski telefonlar, yavaş ağlar dahil. İkisi farklı şeyler ölçer. Google sıralama kararı için CrUX kullanır; bu yüzden Lab skoru iyi ama saha verisi kötüyse SEO kaybı yaşanabilir.
WordPress cache eklentisi tek başına yeter mi?
Hayır. Cache eklentisi sunucu yanıt süresini düşürür (TTFB'ye yardım eder) ama LCP, CLS ve INP'in tamamını çözmez. Görsel optimizasyonu (ShortPixel veya benzeri), CDN (Cloudflare), kritik CSS, font optimizasyonu ek olarak gerekir. WP Rocket gibi premium cache eklentileri bu görevlerin çoğunu tek pakette sunar; ücretsiz cache eklentisi sadece temel cache verir.


