Core Web Vitals ve PageSpeed 100: Hızlı Web Sitesinin Teknik Rehberi
LCP, INP ve CLS nedir, "İyi" eşikleri nelerdir, Google bunları nasıl ölçer ve PageSpeed Insights'ta 100'e yaklaşmak için hangi teknik adımlar gerekir? Bu sitenin altyapısında ölçtüğüm sonuçlar ve platforma göre çözümlerle anlattım.
Kısa Cevap
Core Web Vitals, Google'ın gerçek kullanıcı deneyimini ölçen üç metriğidir. LCP en büyük içeriğin yüklenme süresidir (iyi: ≤ 2,5 sn). INP etkileşime yanıt süresidir (iyi: ≤ 200 ms). CLS görsel kaymadır (iyi: ≤ 0,1). Google bunları gerçek Chrome kullanıcılarının 75. yüzdelik değerine göre, mobil ve masaüstü için ayrı ayrı değerlendirir. Yüksek skor için sunucu yanıtını hızlandırın, LCP görselini önceliklendirin, render'ı engelleyen CSS'i ve gereksiz JavaScript'i kaldırın, görsellere boyut verin. Hız, sonradan eklenen bir ayar değil, mimari bir karardır.
Bu yazıda öğrenecekleriniz
- Core Web Vitals; LCP (≤ 2,5 sn), INP (≤ 200 ms) ve CLS (≤ 0,1) metriklerinden oluşur.
- Google, gerçek kullanıcı verisinin 75. yüzdeliğine bakar; mobil ve masaüstü ayrı değerlendirilir.
- PageSpeed skoru laboratuvar verisidir; Core Web Vitals değerlendirmesi son 28 günün saha verisine dayanır.
- LCP sorununu TTFB, kaynak gecikmesi, yükleme süresi ve render gecikmesi olarak dörde bölerek teşhis edin.
- INP sorunlarının kaynağı genellikle ana iş parçacığını meşgul eden JavaScript'tir.
- Sayfa deneyimi sıralamada sınırlı bir etkendir; alaka düzeyi her zaman önce gelir, ama hız dönüşümü doğrudan etkiler.
Bir web sitesinin hızı hem kullanıcı deneyiminin hem de SEO'nun sessiz kahramanıdır. Yavaş bir site en iyi içeriği bile okunmadan terk ettirir, reklam bütçesini boşa harcatır ve mobilde formların doldurulmasını zorlaştırır.
Bu rehberde Core Web Vitals'ı temelden anlatıyorum: metrikler ne ölçer, Google nasıl değerlendirir, PageSpeed skoru ile farkı ne? Ardından her metrik için teşhis ve çözüm yollarını, WordPress ve hazır e-ticaret altyapılarına özel önerileri ve bu sitenin altyapısında ölçtüğüm gerçek sonuçları paylaşıyorum.
Core Web Vitals nedir?
Core Web Vitals, Google'ın bir sayfanın yüklenme hızı, etkileşime yanıt verme ve görsel kararlılık deneyimini ölçen üç temel metriğidir. Bu metrikler Google'ın sayfa deneyimi sinyallerinin bir parçasıdır.
| Metrik | Ne ölçer? | İyi | İyileştirilmeli | Zayıf |
|---|---|---|---|---|
| LCP (Largest Contentful Paint) | Sayfadaki en büyük içeriğin görünme süresi | ≤ 2,5 sn | 2,5–4 sn | > 4 sn |
| INP (Interaction to Next Paint) | Kullanıcı etkileşimine yanıt süresi | ≤ 200 ms | 200–500 ms | > 500 ms |
| CLS (Cumulative Layout Shift) | Yükleme sırasında öğelerin beklenmedik kayması | ≤ 0,1 | 0,1–0,25 | > 0,25 |
Google nasıl değerlendirir?
Bu üç nokta, sonuçları yorumlarken en çok karıştırılan konular:
- 75. yüzdelik: Bir sayfanın "iyi" sayılması için ziyaretlerin en az %75'inde eşiğin altında kalması gerekir. Yani ortalama değil, yavaş kullanıcılarınızın deneyimi belirleyicidir.
- Mobil ve masaüstü ayrı: Masaüstünde her şey yeşil olabilir, mobilde kırmızı. Türkiye'de trafiğin büyük kısmı mobilden geldiği için önce mobile bakın.
- 28 günlük pencere: Saha verisi, Chrome Kullanıcı Deneyimi Raporu'ndan (CrUX) gelir ve son 28 günün kayan ortalamasıdır. Bugün yaptığınız iyileştirme raporlara kademeli olarak yansır.
Yeterli trafiği olmayan sayfalar için CrUX verisi oluşmaz. Bu durumda Search Console benzer URL gruplarının verisini veya sitenin genel verisini kullanır, PageSpeed Insights ise "veri yok" der.
PageSpeed skoru ile Core Web Vitals aynı şey mi?
Hayır, ve bu fark önemli. PageSpeed Insights iki tür veri gösterir:
| Saha verisi (Field) | Laboratuvar verisi (Lab) | |
|---|---|---|
| Kaynak | Gerçek Chrome kullanıcıları (CrUX) | Lighthouse simülasyonu |
| Zaman | Son 28 gün | Test anı |
| Ne verir? | Core Web Vitals değerlendirmesi (geçti/geçmedi) | 0–100 performans skoru |
| SEO ile ilişkisi | Google'ın sayfa deneyimi değerlendirmesinde kullanılır | Doğrudan kullanılmaz, teşhis aracıdır |
Lighthouse performans skoru beş metriğin ağırlıklı ortalamasıdır: Total Blocking Time (%30), LCP (%25), CLS (%25), First Contentful Paint (%10) ve Speed Index (%10). Laboratuvarda INP ölçülemediği için yerine onunla ilişkili olan TBT kullanılır.
Yani 100 skor almak güzel bir hedef, ama asıl önemli olan gerçek kullanıcılarınızın deneyimi. Laboratuvarda 100 alıp sahada kalan siteler de var: ağır bir canlı sohbet widget'ı, test sırasında yüklenmeyen ama gerçek kullanıcıda açılan bir çerez bannerı, yavaş mobil ağlar.
Core Web Vitals sıralamayı ne kadar etkiler?
Dürüst cevap: sınırlı ama gerçek. Google, sayfa deneyiminin sıralama sistemlerinde kullanıldığını ama alaka düzeyinin her zaman önce geldiğini açıkça belirtiyor. Hızlı ama soruyu cevaplamayan bir sayfa, yavaş ama mükemmel cevap veren bir sayfayı geçemez. Benzer kalitede sayfalar arasında ise hız fark yaratabilir.
Hızın asıl etkisi çoğu zaman sıralamadan çok dönüşümde görülür. Formun daha hızlı açılması, butonun dokunur dokunmaz tepki vermesi ve sayfanın kaymaması doğrudan daha fazla teklif talebi demektir.
LCP'yi iyileştirmek
LCP öğesi genellikle sayfanın üst kısmındaki büyük başlık, kapak görseli veya ürün fotoğrafıdır. PageSpeed Insights raporunda "Largest Contentful Paint öğesi" bölümü hangi öğe olduğunu gösterir.
LCP'yi dört parçaya ayırarak teşhis edin
Google'ın önerdiği yöntem, LCP süresini dört alt parçaya bölmektir. Hangi parça uzunsa çözüm oradadır:
| Alt parça | Ne demek? | Uzunsa tipik sebep | Çözüm |
|---|---|---|---|
| TTFB (sunucu yanıt süresi) | Tarayıcının HTML'in ilk baytını alması | Yavaş hosting, önbellek yok, ağır veritabanı sorguları | Tam sayfa önbelleği, OPcache, daha iyi hosting, CDN |
| Kaynak yükleme gecikmesi | HTML geldikten sonra LCP görselinin indirilmeye başlamasına kadar geçen süre | Görsel CSS arka planında veya JavaScript ile ekleniyor, lazy-load açık | Görseli HTML'de <img> olarak verin, fetchpriority="high", gerekirse preload |
| Kaynak yükleme süresi | Görselin indirilmesi | Büyük dosya, eski format | WebP/AVIF, doğru boyut, srcset |
| Render gecikmesi | İndirme bittikten sonra ekrana çizilmesi | Render'ı engelleyen CSS/JS, web fontu bekleme | Kritik CSS'i gömün, JS'yi erteleyin, font-display: swap |
Web.dev'in genel önerisi TTFB'nin 800 ms'nin altında olmasıdır. Paylaşımlı hostingde önbelleksiz çalışan bir WordPress sitesinde TTFB tek başına 1–2 saniyeyi bulabilir; bu durumda diğer optimizasyonlar LCP'yi yeşile taşımaya yetmez.
LCP için kontrol listesi
- Sayfaları önbellekten sunun. Bu sitede her sayfa ilk ziyaretten sonra tam sayfa önbelleğine alınıyor ve milisaniyeler içinde sunuluyor.
- LCP görselini asla lazy-load etmeyin. Ekranın üst kısmındaki görsele
loading="lazy"vermek en sık gördüğüm hatalardan biri. Bunun yerinefetchpriority="high"kullanın. - Render'ı engelleyen CSS'i azaltın. Kritik CSS'i sayfaya gömün veya tek, küçük bir dosyada tutun.
- Fontları kendi sunucunuzdan verin ve önceden yükleyin. Kritik font için
<link rel="preload">vefont-display: swapkullanın. - Kaydırıcıdan (slider) kaçının. Ana sayfa kaydırıcıları genellikle büyük görseller ve JavaScript yükler; LCP öğesi de çoğu zaman JS çalışana kadar görünmez.
INP'yi iyileştirmek
INP sorunlarının neredeyse tamamı ana iş parçacığını meşgul eden JavaScript'ten kaynaklanır. Kullanıcı dokunduğunda tarayıcı başka bir işle uğraşıyorsa yanıt gecikir.
- JavaScript'i azaltın. Kullanmadığınız eklentileri, kaydırıcıları ve üçüncü taraf scriptleri kaldırın. Her eklenen "küçük" script toplam yükü artırır.
- Uzun görevleri bölün. 50 ms'den uzun süren JavaScript görevleri "uzun görev" sayılır. Ağır işleri küçük parçalara ayırın ve aralarında tarayıcıya nefes aldırın (ör.
scheduler.yield()veyasetTimeoutile). - Üçüncü taraf scriptleri erteleyin. Analitik, sohbet widget'ları, reklam pikselleri ve harita gömmeleri sayfa yüklendikten veya kullanıcı etkileşime geçtikten sonra yüklenebilir.
- Önce görsel geri bildirim verin. Tıklanan butonun hemen tepki vermesini sağlayın (renk değişimi, yükleniyor durumu); ağır işi ondan sonra yapın.
- Büyük DOM'dan kaçının. Binlerce öğe içeren sayfalarda her etkileşim daha pahalıdır. Uzun listeleri sayfalayın veya
content-visibility: autokullanın.
CLS'yi iyileştirmek
- Görsellere ve videolara boyut verin. Her
<img>etiketindewidthveheightniteliklerini belirtin veya CSS'teaspect-ratiokullanın. - Dinamik içerik için alan ayırın. Reklam, banner, çerez bildirimi ve gömülü içeriklere sabit bir yükseklik verin. Çerez bannerını içeriği itmeden, üstte sabit katman olarak gösterin.
- Font kaymasını önleyin. Yedek fontun ölçülerini web fontuna yaklaştırın (
size-adjust,ascent-override) veya fontu önceden yükleyin. - Animasyonlarda yalnızca
transformveopacitykullanın.top,height,margingibi özellikleri canlandırmak hem kayma hem de performans sorunu yaratır. - bfcache'i bozmayın. Geri/ileri tuşuyla anında açılan sayfalar CLS ve LCP açısından da avantajlıdır;
unloadolay dinleyicileri bu önbelleği devre dışı bırakır.
Platforma göre öncelikler
WordPress
- Sayfa oluşturucu yükü: Ağır sayfa oluşturucular her sayfaya büyük CSS ve JS paketleri ekler. Mümkünse yerleşik blok editörü ve hafif bir tema kullanın.
- Eklenti envanteri: Her eklentinin ön yüze script ekleyip eklemediğini kontrol edin. Kullanılmayanları silin, yalnızca devre dışı bırakmak yetmez.
- Önbellek: Sunucu seviyesinde (LiteSpeed Cache, Nginx FastCGI cache gibi) veya bir önbellek eklentisiyle tam sayfa önbellek kurun.
- Görseller: WebP dönüşümü ve otomatik
srcsetsağlayan bir çözüm kullanın; medya kütüphanesine 4000 px fotoğraf yüklemeyin.
Hazır e-ticaret altyapıları
- Tema seçiminde demo sitenin mobil PageSpeed sonucunu kontrol edin.
- Uygulama/eklenti mağazasından eklenen her uygulamanın (yorum, sohbet, pop-up, sadakat) sayfaya script eklediğini unutmayın.
- Ürün görsellerini platformun önerdiği boyutlarda yükleyin; kategori sayfalarında lazy-load'ın yalnızca ekran dışı görsellere uygulandığından emin olun.
Özel yazılım
- Sunucu tarafında render (HTML'in hazır gelmesi) hem hız hem de yapay zekâ tarayıcıları için avantajlıdır. Detaylar: ChatGPT aramasında görünmek.
- Tam sayfa önbellek, OPcache, HTTP/2 veya HTTP/3 ve Brotli/Gzip sıkıştırma temel gereksinimlerdir.
Bu sitede neler yaptım ve sonuç ne oldu?
Bu siteyi baştan hız hedefiyle kurdum. Uyguladıklarım:
- Tüm CSS minify edilip sayfaya gömülü; render'ı engelleyen harici CSS isteği yok.
- Fontlar kendi sunucumda barındırılıyor, Türkçe karakterler için ayrı küçük bir alt küme kullanılıyor ve önceden yükleniyor.
- Yüklenen görseller otomatik olarak WebP'ye çevriliyor ve 480/960/1600 px boyutlarında
srcsetile sunuluyor. - Sayfalar tam sayfa önbellekten sunuluyor.
- Ana sayfadaki kaydırmaya bağlı animasyonlar yalnızca
transformveopacitykullanıyor; "hareketi azalt" tercihine saygı gösteriyor. - Yerleşik analitik çerezsiz ve sayfa yüklendikten sonra küçük bir istekle çalışıyor; Google Analytics açıldığında da sayfa yüklendikten birkaç saniye sonra yükleniyor.
Sonuç (Lighthouse, mobil, laboratuvar): Blog yazılarında performans 95–100, animasyonlu ana sayfada 93–99 (test makinesine göre değişiyor); erişilebilirlik, en iyi uygulamalar ve SEO 100; LCP 1,4–1,8 sn, CLS 0.
Hangi araçlarla ölçmeli?
| Araç | Ne için? |
|---|---|
| PageSpeed Insights | Tek bir URL için hem saha hem laboratuvar verisi |
| Search Console → Core Web Vitals raporu | Tüm sitenin URL grupları bazında durumu ve sorunlu sayfa listeleri |
| Chrome DevTools → Performance paneli | LCP alt parçaları, uzun görevler, INP'ye yol açan etkileşimler |
| Lighthouse (Chrome içinde) | Geliştirme sırasında hızlı tekrar testleri |
| web-vitals JavaScript kütüphanesi | Kendi analitiğinizde gerçek kullanıcı ölçümü |
Ölçüm yaparken laboratuvar testini en az üç kez çalıştırın ve ortancaya bakın; tek bir test sunucu veya ağ dalgalanmasından etkilenebilir.
Sık yapılan hatalar
- Yalnızca masaüstüne bakmak: Asıl sorun neredeyse her zaman mobildedir.
- Skor için kullanıcıyı feda etmek: Gerekli bir sohbet widget'ını veya formu sırf skor için kaldırmak yerine yüklenme zamanını erteleyin.
- LCP görselini lazy-load etmek: En hızlı yüklenmesi gereken görseli en son yükletmek.
- Optimizasyon eklentisi üstüne eklenti kurmak: Birbiriyle çakışan önbellek ve küçültme eklentileri siteyi bozabilir.
- Bir kez düzeltip unutmak: Yeni eklenen bir pop-up, kampanya bannerı veya pazarlama scripti tüm emeği sıfırlayabilir. Ayda bir kontrol edin.
Sonuç
PageSpeed'de 100 almak bir hedef değil, iyi kurulmuş bir altyapının doğal sonucudur. Önce saha verisine bakın; sorun varsa LCP'yi alt parçalarına ayırarak teşhis edin, INP için JavaScript yükünü, CLS için boyutsuz öğeleri hedefleyin. Yeni bir web sitesi planlıyorsanız hızı baştan gereksinim listesine koyun. Diğer kriterler için Web sitesi yaptırırken dikkat edilmesi gerekenler rehberime göz atabilirsiniz. Hız odaklı web siteleri için floopping ile çalışabilirsiniz.
Sıkça Sorulan Sorular
Core Web Vitals nedir?
Core Web Vitals, Google'ın sayfa yükleme hızı (LCP), etkileşime yanıt (INP) ve görsel kararlılığı (CLS) ölçen üç temel kullanıcı deneyimi metriğidir.
İyi bir LCP değeri nedir?
Google'a göre LCP'nin, ziyaretlerin en az %75'inde 2,5 saniye veya altında olması "iyi" kabul edilir.
PageSpeed skoru SEO'yu doğrudan etkiler mi?
Laboratuvar skoru doğrudan bir sıralama faktörü değildir. Google, sayfa deneyimi sinyallerinde gerçek kullanıcı verisine dayanan Core Web Vitals değerlerini dikkate alır ve alaka düzeyini her zaman önde tutar.
Yaptığım iyileştirme neden Search Console'a hemen yansımıyor?
Saha verisi son 28 günün kayan ortalamasıdır. İyileştirmeler raporlara birkaç hafta içinde kademeli olarak yansır.
WordPress sitemde PageSpeed skorunu nasıl yükseltirim?
Gereksiz eklentileri silin, hafif bir tema kullanın, tam sayfa önbellek kurun, görselleri WebP'ye çevirin, LCP görselini lazy-load'dan çıkarın ve üçüncü taraf scriptleri erteleyin.
INP ile FID arasındaki fark nedir?
FID yalnızca ilk etkileşimin gecikmesini ölçüyordu; INP ise sayfa boyunca yapılan tüm etkileşimlerin yanıt süresini dikkate alır. INP, Mart 2024'te FID'in yerini aldı.
Kaynaklar
Bu içerik düzenli olarak gözden geçirilir. Son kontrol: 8 Ekim 2026 · Markdown sürümü
