Shopify & Performans

Shopify’da Core Web Vitals: LCP, INP ve CLS’yi teknik olarak nasıl düzeltirsiniz

Shopify mağazanızda LCP, INP ve CLS sorunlarını kaynağında çözen uygulamalı rehber: 2026 eşikleri, Liquid kod örnekleri, uygulama (app) denetimi, font ve görsel stratejisi, ölçüm araçları.

Kısa cevap

Shopify’da Core Web Vitals üç sayıdan ibarettir: LCP ≤ 2,5 sn, INP ≤ 200 ms, CLS ≤ 0,1 (gerçek kullanıcıların %75’inde). Mağazaların büyük çoğunluğunda sorunun kaynağı sırasıyla hero görselinin geç yüklenmesi (LCP), üçüncü taraf uygulama script’leri (INP) ve boyutu belirtilmemiş görsel, banner ve font değişimleridir (CLS).

Çözüm sırası: önce Shopify Admin’deki Web Performance raporunda hangi metriğin kırmızı olduğunu bulun, sonra bu yazıdaki Liquid ve CSS düzeltmelerini tema koduna uygulayın, en sonunda kullanmadığınız uygulamaları kaldırıp app embed’leri kapatın. Ödeme sayfası (checkout) Shopify tarafından barındırılır ve sizin kontrolünüzde değildir.

Core Web Vitals nedir ve 2026’da eşikler nelerdir?

Core Web Vitals, Google’ın gerçek kullanıcı verisiyle ölçtüğü üç sayfa deneyimi metriğidir: yükleme hızı (LCP), etkileşim tepkisi (INP) ve görsel kararlılık (CLS). Google bu metrikleri sayfa deneyimi sinyali olarak sıralamada kullanır ve her metrik, site ziyaretçilerinin %75’lik dilimine göre değerlendirilir.

Veri kaynağı Chrome User Experience Report’tur (CrUX). Yani laboratuvar aracı Lighthouse’ta 95 puan almanız, gerçek müşterilerinizin telefonlarında yeşil olduğunuz anlamına gelmez. Shopify mağazalarında trafiğin büyük bölümü mobil olduğu için mobil veriyi esas alın.

MetrikNe ölçerİyiGeliştirilmeliZayıf
LCP (Largest Contentful Paint)Ekrandaki en büyük içerik öğesinin görünme süresi≤ 2,5 sn2,5 – 4,0 sn> 4,0 sn
INP (Interaction to Next Paint)Tıklama, dokunma ve klavye etkileşimlerine tepki gecikmesi (sayfa boyunca en kötü değer)≤ 200 ms200 – 500 ms> 500 ms
CLS (Cumulative Layout Shift)Beklenmeyen yerleşim kaymalarının toplamı≤ 0,10,1 – 0,25> 0,25

INP, 12 Mart 2024’te FID’in (First Input Delay) yerini aldı. FID yalnızca ilk etkileşimi ölçüyordu; INP tüm oturum boyunca en yavaş etkileşimi raporlar. Shopify mağazalarında metriklerin en sık kırmızıya düşeni bu yüzden INP’dir: çok sayıda uygulama script’i ana iş parçacığını (main thread) meşgul eder.

Hızın ciro etkisi ölçülmüş bir gerçektir. Google ve Deloitte’un 37 markayı kapsayan “Milliseconds Make Millions” araştırmasına göre mobil site hızında 0,1 saniyelik iyileşme perakende dönüşümünü %8,4 artırdı. Vodafone, LCP’yi %31 iyileştirdiğinde satışlarda %8 artış ölçtü (web.dev vaka çalışması).

%8,40,1 sn hız iyileşmesiyle perakende dönüşüm artışı (Deloitte, 2020)
%8Vodafone’da LCP %31 iyileşince satış artışı (web.dev)
%75Metriklerin değerlendirildiği kullanıcı yüzdelik dilimi (Google)

Shopify’da neyi değiştirebilirsiniz, neyi değiştiremezsiniz?

Shopify barındırılan (hosted) bir platformdur. Sunucu, CDN ve ödeme sayfası sizin kontrolünüzde değildir; tema kodu, görseller, fontlar ve uygulamalar ise tamamen sizin elinizdedir. Gerçekçi bir optimizasyon planı bu ayrımla başlar.

KatmanKontrolNe yapabilirsiniz
Sunucu yanıtı (TTFB), CDN, HTTP/2 ve HTTP/3ShopifyHiçbir şey; zaten iyi durumdadır
Ödeme sayfaları (checkout)ShopifyCheckout Extensibility ile sınırlı; performans Shopify’ındır
Tema (Liquid, CSS, JS, bölümler)SizLCP, CLS ve INP’nin büyük kısmı burada çözülür
Görseller ve fontlarSizBoyut, format, öncelik ve yükleme stratejisi
Uygulamalar (apps) ve app embed’lerSizINP’nin bir numaralı nedeni; kaldırma ve kapatma
Üçüncü taraf etiketler (Pixel, chat, A/B test)SizYükleme zamanlaması ve consent ile koşullu yükleme

Önce ölçün: hangi metrik, hangi sayfa tipi?

Üç veri kaynağını birlikte kullanın. Tek bir araca güvenmek Shopify’da en sık yapılan hatadır.

  1. Shopify Admin → Online Store → Themes → Web performance. Shopify’ın kendi CrUX tabanlı raporu. LCP, CLS ve INP’yi mağazanızın gerçek ziyaretçileri üzerinden gösterir ve “Shopify ortalaması” ile kıyaslar. Buradan başlayın.
  2. Google Search Console → Deneyim → Core Web Vitals. Hangi URL gruplarının (ürün sayfaları, koleksiyonlar, ana sayfa) zayıf olduğunu söyler. Shopify’da sorun genellikle sayfa tipine özgüdür.
  3. PageSpeed Insights. Üstte alan verisi (CrUX), altta laboratuvar teşhisi. “LCP öğesi” ve “Yerleşim kaymasına neden olan öğeler” bölümleri hangi DOM öğesini düzelteceğinizi gösterir.

INP için laboratuvar araçları yetersizdir; etkileşim gerekir. Chrome DevTools’un Performance panelinde “Interactions” şeridini kullanın ya da sayfaya geçici olarak web-vitals kütüphanesinin attribution derlemesini ekleyip hangi script’in gecikmeye neden olduğunu loglayın:

<script type="module">
import {onINP, onLCP, onCLS} from 'https://unpkg.com/web-vitals@4/dist/web-vitals.attribution.js';
const log = m => console.log(m.name, Math.round(m.value), m.attribution);
onINP(log); onLCP(log); onCLS(log);
</script>

LCP: hero görselini ilk byte’tan itibaren önceliklendirin

Shopify mağazalarında LCP öğesi %90 ihtimalle ana sayfadaki hero görseli, koleksiyonda ilk ürün görseli, ürün sayfasında ise ana ürün fotoğrafıdır. Dört teknik yeterlidir.

1. Doğru boyutta, modern formatta görsel isteyin

Shopify CDN görselleri otomatik olarak WebP/AVIF’e dönüştürür ama yalnızca doğru width ve sizes verdiğinizde doğru boyutu gönderir. 4000 piksellik orijinali 390 piksellik telefona göndermek en yaygın LCP hatasıdır.

{{ section.settings.image
   | image_url: width: 1600
   | image_tag:
       widths: '480, 768, 1024, 1366, 1600',
       sizes: '100vw',
       loading: 'eager',
       fetchpriority: 'high',
       preload: true,
       alt: section.settings.image.alt }}

preload: true Shopify’ın image_tag filtresinde <link rel="preload"> üretir; fetchpriority="high" tarayıcıya bu görseli diğer kaynaklardan önce indirmesini söyler. Bu iki satır tek başına LCP’yi 0,5–1,5 saniye düşürebilir.

2. Ekran üstü görsellerde lazy loading kullanmayın

Dawn tabanlı temalarda tüm görseller varsayılan olarak loading="lazy" gelir. Hero ve ilk ürün kartları için bunu eager yapın. Lazy yüklenen bir LCP görseli, tarayıcı yerleşimi hesaplayana kadar indirilmeye başlamaz.

3. Slider’dan vazgeçin

Otomatik kayan hero slider’ları hem LCP’yi geciktirir hem CLS üretir hem de dönüşüme katkısı ölçülmüş çok az örnek vardır. Tek statik hero + net başlık + tek CTA, Shopify’da en iyi performans veren kalıptır.

4. Fontları ve CSS’i yoldan çekin

Shopify’ın font_face filtresine font_display: 'swap' ekleyin ve font dosyasını preload edin. Üçüncü taraf font servislerinden (Google Fonts dahil) kaçının; Shopify’ın kendi font kütüphanesi CDN’den gelir ve ek DNS/TLS maliyeti yoktur.

{{ settings.type_header_font | font_face: font_display: 'swap' }}
<link rel="preload" as="font" type="font/woff2" crossorigin
      href="{{ settings.type_header_font | font_url }}">

INP: uygulama script’lerini denetleyin

INP’de sorun neredeyse her zaman JavaScript’tir ve Shopify’da JavaScript’in çoğu sizin yazmadığınız uygulamalardan gelir. Her yüklü uygulama ortalama 1–3 script, bazıları 10’dan fazla dosya ekler. Bunlar ana iş parçacığında uzun görevler (long tasks, >50 ms) oluşturur; kullanıcı “Sepete ekle”ye bastığında tarayıcı boşta değildir.

Denetim adımları

  1. Tüm uygulamaları listeleyin ve son 90 günde gerçekten kullanılanları işaretleyin. Kullanılmayan her uygulamayı kaldırın. Kaldırmak yetmez: Online Store → Themes → Customize → App embeds bölümünden kalan embed’leri kapatın; bazı uygulamalar kaldırıldıktan sonra da theme.liquid içinde kod bırakır.
  2. theme.liquid ve layout dosyalarını temizleyin. Eski uygulamaların bıraktığı <script> satırlarını arayın. Arama: cdn.shopify.com/extensions ve {{ content_for_header }} dışındaki script’ler.
  3. Ölçün ve karşılaştırın. DevTools Performance → kayıt alın → “Sepete ekle”ye tıklayın → Interactions şeridinde süreye ve “Long tasks”a bakın. Hangi dosyadan geldiği dosya adıyla görünür.
  4. Kalan script’leri erteleyin. Kendi tema JS’inizde defer kullanın; etkileşim gerektirmeyen işleri requestIdleCallback ile boşa alın; scroll ve resize dinleyicilerini { passive: true } yapın.
// Uzun görevleri parçalayın: ağır işi etkileşimden sonraya bırakın
button.addEventListener('click', () => {
  updateCartUI();                       // hemen görünür tepki
  requestIdleCallback(() => {           // ağır iş boşta yapılır
    trackAnalytics(); rebuildRecommendations();
  });
});

Pratik eşik: Sahada gördüğümüz mağazalarda 15’ten fazla aktif uygulama olan hiçbir Shopify mağazası mobilde INP “iyi” eşiğini tutturamıyor. Hedef, satışa doğrudan katkısı olmayan hiçbir uygulamanın storefront’ta script yüklememesi.

CLS: her öğeye yer ayırın

Yerleşim kayması üç nedenden olur: boyutu bildirilmemiş görseller, sayfa yüklendikten sonra eklenen banner/widget’lar ve font değişimi. Üçünün de çözümü “yeri önceden ayır” ilkesidir.

  • Görseller: image_tag filtresi width ve height özniteliklerini otomatik ekler. Elle yazdığınız <img> etiketlerinde bunları eksik bırakmayın ya da CSS aspect-ratio kullanın.
  • Duyuru çubuğu ve uygulama widget’ları: Sonradan DOM’a eklenen her şey (ücretsiz kargo çubuğu, chat balonu, pop-up) aşağısındaki içeriği iter. Konteyner için min-height ayırın; pop-up’ları akışın dışında (position: fixed) tutun.
  • Font değişimi: font-display: swap görünürlüğü çözer ama metrikleri farklı fontlar kaymaya neden olur. Yedek fontu size-adjust ve ascent-override ile eşleyin:
@font-face {
  font-family: "Fallback-Heading";
  src: local("Arial");
  size-adjust: 104%;
  ascent-override: 92%;
  descent-override: 22%;
}
h1, h2 { font-family: "Marka-Font", "Fallback-Heading", sans-serif; }

Ürün sayfalarında varyant seçildiğinde görsel galerisinin yeniden çizilmesi de CLS üretir. Galeri konteynerine sabit en-boy oranı verin ve varyant görsellerini aynı oranda yükleyin.

Shopify’a özel kontrol listesi

KontrolEtkilediği metrikNerede
Online Store 2.0 tema (Dawn ve türevleri) kullanılıyorHepsiThemes
Hero görseli: loading: 'eager', fetchpriority: 'high', preload: trueLCPsections/image-banner.liquid
Koleksiyonda ilk 2–4 ürün kartı eager, gerisi lazyLCPsections/main-collection-product-grid.liquid
Tüm görsellerde widths + sizesLCP, CLSsnippets/card-product.liquid
Kullanılmayan uygulamalar kaldırıldı, app embed’ler kapalıINPApps, Theme → App embeds
theme.liquid içinde yetim script yokINPlayout/theme.liquid
Shopify fontları, font_display: 'swap' + preloadLCP, CLSsnippets/… veya layout
Duyuru çubuğu ve widget’lara min-heightCLSCSS
Pixel, chat ve A/B test script’leri consent ile koşullu yükleniyorINPCustomer events / GTM
Ana sayfada video arka plan yok ya da preload="none" + posterLCPsections

Sıralama ve ciro etkisini nasıl doğrularsınız?

Değişikliklerden sonra CrUX verisinin yenilenmesi 28 günlük kayan pencere nedeniyle 2–4 hafta alır. Bu süre boyunca iki şeyi izleyin: Search Console’daki “iyi” URL sayısının artışı ve Shopify Analytics’te mobil dönüşüm oranı. Hız çalışmasını reklam dönemleriyle birlikte planlayın; INP’si kötü bir mağazaya trafik satın almak, bütçenin bir kısmını çöpe atmaktır.

Core Web Vitals, teknik SEO’nun yalnızca bir parçasıdır. Yapılandırılmış veri ve dönüşüm ölçümü için blogdaki E-ticaret için Schema.org JSON-LD rehberi ve GA4 Consent Mode v2 ve Meta CAPI kurulumu yazılarına bakın.

Öne çıkanlar

  • Eşikler: LCP ≤ 2,5 sn, INP ≤ 200 ms, CLS ≤ 0,1; gerçek kullanıcıların %75’lik diliminde ve mobilde değerlendirilir.
  • Shopify’da sunucu ve checkout Shopify’ındır; LCP, INP ve CLS’nin neredeyse tamamı tema, görsel, font ve uygulama katmanında çözülür.
  • LCP için hero görselinde preload: true, fetchpriority: 'high' ve loading: 'eager' kullanın, slider’dan vazgeçin.
  • INP’nin bir numaralı nedeni uygulama script’leridir: kullanılmayanları kaldırın, app embed’leri kapatın, theme.liquid’i temizleyin.
  • CLS için her görsele boyut, her widget’a min-height, yedek fonta size-adjust verin.
  • Ölçümü Shopify Web Performance raporu, Search Console ve PageSpeed Insights’ı birlikte kullanarak yapın; CrUX 28 günlük pencereyle güncellenir.

Sık sorulan sorular

Shopify’da Core Web Vitals için hangi puan yeterlidir?

Puan değil, üç metriğin her birinin “iyi” eşiğinde olması gerekir: LCP 2,5 saniye veya altı, INP 200 milisaniye veya altı, CLS 0,1 veya altı. Google bu değerleri gerçek ziyaretçilerin %75’lik dilimine göre, mobil ve masaüstü için ayrı ayrı değerlendirir. Lighthouse’un 0–100 arası puanı laboratuvar tahminidir ve sıralamada kullanılmaz.

Shopify uygulamaları sayfa hızını gerçekten yavaşlatır mı?

Evet, özellikle INP metriğini. Her uygulama storefront’a JavaScript ekler; bu script’ler ana iş parçacığını meşgul ederek tıklamalara tepkiyi geciktirir. Bir uygulamayı kaldırmak yetmez; Theme → Customize → App embeds bölümünden kalan embed’leri kapatmak ve theme.liquid’de bıraktığı script satırlarını silmek gerekir.

Shopify’da LCP’yi en hızlı düşüren tek değişiklik nedir?

Hero görselini image_tag filtresiyle preload: true, fetchpriority: 'high' ve loading: 'eager' parametreleriyle çıkarmak. Bu, tarayıcının en büyük görseli HTML’i okur okumaz ve diğer kaynaklardan önce indirmesini sağlar; sahada 0,5–1,5 saniyelik LCP iyileşmesi tipiktir.

Shopify checkout sayfasının hızını iyileştirebilir miyim?

Hayır. Checkout Shopify tarafından barındırılır ve optimize edilir; tema kodunuz orada çalışmaz. 2024’ten itibaren checkout.liquid kaldırıldığı için özelleştirmeler yalnızca Checkout Extensibility ile yapılır. Core Web Vitals çalışmanızı ana sayfa, koleksiyon ve ürün sayfalarına odaklayın.

INP nedir ve FID’den farkı ne?

INP (Interaction to Next Paint), sayfa boyunca yapılan tüm tıklama, dokunma ve klavye etkileşimlerinin en yavaşının ekrana yansıma süresidir. FID yalnızca ilk etkileşimin giriş gecikmesini ölçüyordu. INP 12 Mart 2024’te Core Web Vitals’ta FID’in yerini aldı ve Shopify mağazalarında en sık “zayıf” çıkan metriktir.

Hız iyileştirmesi sıralamaya ne zaman yansır?

Google alan verisi (CrUX) 28 günlük kayan pencere kullanır; değişikliklerin Search Console Core Web Vitals raporuna tam yansıması 2–4 hafta alır. Sıralama etkisi küçük ama ölçülebilirdir; asıl kazanç mobil dönüşüm oranındaki artıştır ve bunu Shopify Analytics’te aynı hafta görebilirsiniz.

Kaynaklar

  1. Google web.dev – Web Vitals (eşikler ve %75 kuralı)
  2. Google web.dev – Interaction to Next Paint (INP)
  3. Google Search Central – Core Web Vitals ve sayfa deneyimi
  4. Shopify Help Center – Web performance raporu
  5. Shopify.dev – Tema performansı en iyi uygulamaları
  6. Shopify.dev – image_tag filtresi (preload, fetchpriority, widths, sizes)
  7. Deloitte & Google – Milliseconds Make Millions (2020)
  8. web.dev – Vodafone: LCP %31 iyileşme, satış %8 artış
  9. Google web.dev – web-vitals kütüphanesi