smplx.
Shopify SEO

Core Web Vitals für Shopify: Performance als Ranking-Faktor

smplx. Team··13 min

Einleitung: Warum Performance jetzt ein Ranking-Faktor ist

Seit Mai 2021 sind Core Web Vitals offiziell ein Ranking-Faktor bei Google. Das bedeutet: Ein schneller Shop rankt besser als ein langsamer, selbst wenn der Inhalt identisch ist.

Noch wichtiger: Conversion Rate und Core Web Vitals sind direkt korreliert. Studien zeigen:

  • Jede Sekunde Verzögerung kostet dich 7% Conversions
  • Ein Shop mit „gut" bewerteten Core Web Vitals konvertiert 24% besser als ein Shop mit „schlecht" bewerteten
  • Mobile Performance ist entscheidend: 65% des E-Commerce Traffic kommt mobil

Für Shopify-Shops ist das besonders wichtig, weil:

  1. Viele Apps bremsen die Performance
  2. Third-Party Scripts (Analytics, Tracking, Marketing) werden schnell unkontrollierbar
  3. Mobile-First-Indexing favorisiert schnelle Mobile-Seiten

Bei smplx. haben wir Shops wie Bekateq von 4,2 Sekunden auf 2,1 Sekunden LCP gebracht – und damit ihre Conversion Rate um 18% erhöht.

In diesem Artikel zeigen wir dir, wie du Core Web Vitals meistern wirst.

1. Die drei Core Web Vitals verstehen

LCP (Largest Contentful Paint) – Das Tempo wahrnehmen

Was ist LCP? LCP misst, wie schnell der größte sichtbare Inhalt lädt. Das ist normalerweise:

  • Ein Produkt-Bild
  • Ein Hero-Banner
  • Ein Text-Block

Benchmark:

  • Grün (gut): < 2,5 Sekunden
  • Orange (verbesserungsbedürftig): 2,5 – 4,0 Sekunden
  • Rot (schlecht): > 4,0 Sekunden

Wie Google LCP misst:

User startet die Seite
     ↓
[0s] Weiß
[0,5s] Logo erscheint
[1,2s] Text wird sichtbar
[2,0s] HERO IMAGE LÄDT ← Das ist dein LCP
[2,5s] Weitere Elemente laden

Der LCP ist also nicht die Zeit, bis die Seite vollständig geladen ist, sondern bis das größte Element sichtbar ist.

INP (Interaction to Next Paint) – Die Reaktion spüren

Was ist INP? INP misst die Zeit zwischen Nutzer-Aktion und visueller Antwort:

  • User klickt auf Filterbutton
  • [Verzögerung] ← Das ist INP
  • Filter werden angewendet

Benchmark:

  • Grün: < 200 Millisekunden
  • Orange: 200 – 500 ms
  • Rot: > 500 ms

Typische INP-Probleme in Shopify:

  • Filter/Sortierung-Buttons reagieren langsam
  • Produktoptionen (Farbe, Größe) ändern sich mit Verzögerung
  • Add-to-Cart Button friert ein
  • Suchvorhersagen brauchen zu lange

CLS (Cumulative Layout Shift) – Die Stabilität spüren

Was ist CLS? CLS misst, wie viel sich Layout unerwartet verschiebt. Jede Bewegung ist frustrierend:

Beispiel schlechtes CLS:

Nutzer sieht Preis: 89,99€
Nutzer möchte klicken
[Währungssymbol lädt] ← Layout verschiebt sich um 0,05 Einheiten
Nutzer klickt zu früh oder daneben

Benchmark:

  • Grün: < 0,1
  • Orange: 0,1 – 0,25
  • Rot: > 0,25

Hauptverursacher von CLS in Shopify:

  • Bilder ohne definierte Höhe
  • Eingebettete Ads/Pop-ups
  • Lazy-geladene Bilder
  • Fonts die sich noch laden

2. LCP optimieren: Die Hero-Image Strategie

Problem: Hero-Bilder sind oft zu groß

Ein typisches Hero-Bild auf Shopify:

  • Größe: 2-5 MB (unkomprimiert)
  • Format: JPG
  • Auflösung: 1920x1200px

Das kann 4-6 Sekunden LCP bedeuten, besonders auf Mobile.

Lösung: WebP + Responsive Images

Schritt 1: WebP Format verwenden

WebP ist 25-35% kleiner als JPG, bei gleicher Qualität.

<!-- Shopify Section Code -->
<picture>
  <source srcset="{{ 'hero.webp' | asset_url }}" type="image/webp">
  <img src="{{ 'hero.jpg' | asset_url }}" alt="Hero Banner" loading="eager">
</picture>

Schritt 2: Responsive Bilder Sizes definieren

<img
  src="{{ hero_image | img_url: '800x600' }}"
  srcset="{{ hero_image | img_url: '400x300' }} 400w,
          {{ hero_image | img_url: '800x600' }} 800w,
          {{ hero_image | img_url: '1200x900' }} 1200w"
  sizes="(max-width: 600px) 400px,
         (max-width: 1024px) 800px,
         1200px"
  alt="Hero"
  loading="eager">

Dies stellt sicher:

  • Mobile bekommt 400px Bild (statt 1920px)
  • Tablet bekommt 800px Bild
  • Desktop bekommt 1200px Bild

Ergebnis: LCP von 4,2s auf 2,1s (typisch für Bekateq-ähnliche Optimierungen)

Schritt 3: Preload kritischer Ressourcen

Im Theme's <head> hinzufügen:

<link rel="preload" as="image" href="{{ 'hero.webp' | asset_url }}" imagesrcset="{{ 'hero-400.webp' | asset_url }} 400w, {{ 'hero-800.webp' | asset_url }} 800w" imagesizes="(max-width: 600px) 400px, 800px">
<link rel="preload" as="font" href="{{ 'font.woff2' | asset_url }}" type="font/woff2" crossorigin>

Preload sagt Browser: "Diese Ressource ist wichtig, lade sie sofort."

3. CLS verhindern: Layout Stabilität

Häufigste CLS-Fehler in Shopify und Lösungen

Fehler 1: Bilder ohne definierten Aspect Ratio

<!-- FALSCH: Browser weiß nicht, wie viel Platz reservieren -->
<img src="product.jpg" alt="Product">

<!-- RICHTIG: Mit CSS Aspect Ratio -->
<img
  src="product.jpg"
  alt="Product"
  width="400"
  height="400"
  style="aspect-ratio: 1;">

Fehler 2: Lazy-geladene Bilder ohne Container

/* FALSCH: Kein Platz reserviert */
.product-image {
  width: 100%;
  /* Höhe fehlt! */
}

/* RICHTIG: Padding-Bottom-Trick */
.product-image-container {
  position: relative;
  width: 100%;
  padding-bottom: 100%; /* 1:1 Aspect Ratio */
}

.product-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

Fehler 3: Fonts laden und ändern das Layout

/* FALSCH: Fallback-Font verursacht Shift */
body {
  font-family: 'Roboto', sans-serif;
}

/* RICHTIG: Roboto laden ohne Shift */
@font-face {
  font-family: 'Roboto';
  src: url('roboto.woff2') format('woff2');
  font-display: swap; /* Zeige Fallback, ersetze später */
}

Mit font-display: swap wird die Seite sofort mit Fallback-Font angezeigt, Roboto lädt im Hintergrund nach.

Fehler 4: Ads und Pop-ups injiziert Google Ads, Intercom etc.)

// FALSCH: Ad wird injiziert, verschiebt Layout
<div id="ad-container"></div>
<script>
  // Ad wird nachgeladen
  loadAd();
</script>

// RICHTIG: Container mit fixer Höhe
<div id="ad-container" style="height: 250px; overflow: hidden;"></div>
<script>
  loadAd(); // Passt sich in den Container
</script>

4. INP optimieren: Schnelle Interaktionen

Das INP-Problem in Shopify

Der größte INP-Killer in Shopify ist zu viel JavaScript:

  1. Zu viele Apps installiert

    • Jede App injiziert JavaScript
    • 10 Apps = möglicherweise 500KB+ extra JavaScript
  2. Heavy Event Listeners

    • Produktoptionen (Varianten-Auswahl) sind oft langsam
    • Filter-Anwendung braucht zu lange
  3. Render-Blocking Scripts

    • Analytics, Tracking-Code blockiert Page Render

Lösung: JavaScript optimieren

Schritt 1: Weniger Apps

Audit deine installierten Apps:

Admin > Apps und Kanäle > Apps und Vertriebskanäle

Fragen:

  • Brauche ich diese App wirklich?
  • Kann eine andere App 2-3 Funktionen übernehmen?
  • Verursacht die App merkbare Performance-Verluste?

Effekt: Jede entfernte App spart 10-50KB JavaScript.

Schritt 2: Third-Party Scripts asynchron laden

<!-- FALSCH: Blockiert Page Render -->
<script src="analytics.js"></script>

<!-- RICHTIG: Asynchron laden -->
<script async src="analytics.js"></script>

<!-- RICHTIG: Deferred laden (nach Page Load) -->
<script defer src="analytics.js"></script>

Schritt 3: JavaScript Code Splitting

Wenn dein Theme viel Custom JavaScript hat, teile es auf:

// FALSCH: Alles in einem großen Bundle
// main.js = 250KB (Produktseite, Checkout, etc. alles drin)

// RICHTIG: Teilen nach Seite
// products.js = 80KB (nur Produktseite)
// checkout.js = 60KB (nur Checkout)
// common.js = 50KB (auf allen Seiten)

Schritt 4: Event Listener Optimization

Für Varianten-Selector (oft sehr langsam):

// FALSCH: Event Listener auf JEDEM Varianten-Button
document.querySelectorAll('.variant-btn').forEach(btn => {
  btn.addEventListener('click', updatePrice); // Ändert DOM
  btn.addEventListener('click', updateImage); // Ändert DOM
  btn.addEventListener('click', updateInventory); // Ändert DOM
});

// RICHTIG: Event Delegation + Batched Updates
document.addEventListener('click', (e) => {
  if (e.target.matches('.variant-btn')) {
    const updates = {
      price: calculatePrice(),
      image: getImage(),
      inventory: getInventory()
    };
    // Alle Updates in einem Render-Schritt
    updateDOM(updates);
  }
});

5. Case Study: Bekateq – Von 4,2s auf 2,1s LCP

Bekateq ist ein B2B E-Commerce Shop für Großflächenverteilung mit 24 Produkttemplates und hohem Anspruch an Performance.

Ausgangslage:

  • LCP: 4,2 Sekunden
  • CLS: 0,18 (orange)
  • INP: 280ms (orange)

Probleme identified:

  1. Hero-Bilder waren 3-4 MB JPGs, responsive-bilder fehlten
  2. 12 Apps installiert, viele tracken jeden Seitenaufruf
  3. Keine Lazy Loading auf Produktbildern
  4. Variant-Selector triggerte komplette DOM-Re-render

Implementierte Optimierungen:

  1. LCP: WebP-Konvertierung + Responsive Image Sizes → LCP fällt auf 2,1s
  2. CLS: Aspect Ratio Definition auf alle Bilder → CLS fällt auf 0,05
  3. INP: 3 redundante Apps deinstalliert, Event Listeners optimiert → INP fällt auf 140ms

Ergebnisse:

  • Sichtbarkeit: +34%
  • Organischer Traffic: +47%
  • Conversion Rate: +18%
  • Bounce Rate: -22%

6. Shopify-spezifische Performance Bottlenecks

Apps und ihre Performance-Auswirkungen

Heavy Apps (>100KB JavaScript):

  • Produktbewertungs-Apps
  • Live-Chat-Tools
  • Inventory-Management
  • Advanced Analytics

Alternative: Native Shopify Features wo möglich nutzen.

Third-Party Scripts

Die größten Performance-Killer:

1. Google Tag Manager (GTM): +50KB
2. Facebook Pixel: +40KB
3. Intercom / Live Chat: +100KB
4. Zendesk: +80KB
5. Affiliates Tool: +60KB

Lösung: Scripts deferren und conditional laden

<!-- Lade Chat nur auf Product Pages -->
<script>
  if (window.location.pathname.includes('/products/')) {
    const s = document.createElement('script');
    s.src = 'chat.js';
    document.body.appendChild(s);
  }
</script>

7. Core Web Vitals in Shopify Admin monitoren

Google PageSpeed Insights nutzen

  1. Gehe zu PageSpeed Insights
  2. Deine Shop-URL eingeben
  3. Analysen für Mobile und Desktop sehen

Wichtig: PSI nutzt FieldData (echte Nutzer) von Chrome-Nutzern. Dadurch können sich Werte täglich ändern.

Search Console Bericht

In Google Search Console (bei deinem Shop konfiguriert):

  1. "Core Web Vitals" Bericht öffnen
  2. Sehen, wie viele Seiten im grünen, orange, roten Bereich sind
  3. Klicken auf Problem, um betroffene URLs zu sehen

Beispiel:

  • 85% Seiten haben "gute" Core Web Vitals → Gut
  • 10% Seiten haben "verbesserungsbedürftig" → Arbeiten!
  • 5% Seiten haben "schlecht" → Dringend fixen

Eigenes Monitoring mit Web Vitals Library

Du kannst Core Web Vitals auch selbst messen:

// Im Theme einbinden
<script>
  // LCP messen
  const observer = new PerformanceObserver((list) => {
    const entries = list.getEntries();
    const lastEntry = entries[entries.length - 1];
    console.log('LCP:', lastEntry.renderTime || lastEntry.loadTime);
  });
  observer.observe({entryTypes: ['largest-contentful-paint']});

  // CLS messen
  let clsValue = 0;
  const clsObserver = new PerformanceObserver((list) => {
    for (const entry of list.getEntries()) {
      if (!entry.hadRecentInput) {
        clsValue += entry.value;
      }
    }
    console.log('CLS:', clsValue);
  });
  clsObserver.observe({entryTypes: ['layout-shift']});
</script>

8. Performance Budgets setzen

Was ist ein Performance Budget?

Ein Performance Budget ist eine "Obergrenze", die du nicht überschreiten darfst:

LCP Budget: 2,5 Sekunden
CLS Budget: 0,1
INP Budget: 200ms
JS Bundle Size: 250KB
CSS Bundle Size: 50KB
Total Image Size: 500KB

Nutzen: Wenn ein neues App zu schwer ist, wird es abgelehnt.

Budget durchsetzen

  1. Für neue Apps: "Wird diese App LCP über 2,5s treiben?" → Nein? → Installieren
  2. Für neue Features: "Wird dieser Custom Code CLS verursachen?" → Nein? → Coden
  3. Reviews: Alle 3 Monate überprüfen, ob Budget eingehalten

9. Die smplx. Performance Optimization

Shopify Performance Audit & Optimization (ab 6k €):

  • Umfassende Core Web Vitals Analyse (LCP, CLS, INP)
  • Image Optimization & WebP Conversion
  • JavaScript Minification und Code Splitting
  • Lazy Loading Implementation
  • App Audit und Empfehlungen
  • Custom Performance Fixes
  • Google PageSpeed Optimization

Ongoing Performance Monitoring (ab 1,5k €/mo):

  • Monatliche Core Web Vitals Reports
  • Performance Regression Detection
  • App Performance Testing
  • Quarterly Optimization Recommendations

Diese Investition zahlt sich durch höhere Conversions schnell zurück.

10. Performance Quick-Wins (sofort implementierbar)

  1. Bilder komprimieren: TinyPNG oder Shopify's native Image Editor nutzen
  2. Lazy Loading aktivieren: loading="lazy" auf Product Images
  3. Render-blocking JavaScript: async/defer nutzen
  4. Favicon cachen: sehr viele kleine Requests sparen
  5. Browser Caching: Shopify macht das auto, check Headers

Fazit: Performance ist kein nice-to-have mehr

Core Web Vitals sind jetzt Teil des Google Ranking Algorithms. Ein langsamer Shop wird nicht nur von Nutzern, sondern auch von Google bestraft.

Die gute Nachricht: Viele Optimierungen sind relativ einfach und haben massive ROI:

  • Bessere Rankings
  • Höhere Conversion Rates
  • Bessere User Experience
  • Weniger Bounce Rate

Nächste Schritte:

  1. PageSpeed Insights aufrufen und aktuelle Werte checken
  2. Search Console > Core Web Vitals Report
  3. Top 3 Probleme identifizieren
  4. Priorisieren nach Impact (LCP > CLS > INP)

Wenn du umfassende Performance-Optimierungen brauchst, kontaktiere das smplx. Team. Wir optimieren Shopify-Shops täglich und wissen genau, welche Hebel am meisten Performance-Gewinn bringen.

Kontakt: hello@smplx.de | Coesfeld, NRW