Zwei Geschwindigkeitsebenen: Liquid (Server) + Front-End (Browser)
Die Geschwindigkeit des Shopify-Shops besteht aus zwei unterschiedlichen Ebenen. Flüssigkeitsoptimierung beschleunigt die serverseitige HTML-Generierung – reduziert TTFB. Frontend-Optimierung beschleunigt die Arbeit des Browsers mit diesem HTML – reduziert LCP, TBT und INP.
Thunder Page Speed Optimizer kümmert sich um die Front-End-Ebene: Zurückstellen renderblockierendes JavaScript, optimierend CSS-Lieferungund Verwaltung der Reihenfolge beim Laden der Ressourcen. In diesem Artikel geht es um die serverseitige Ebene – damit Ihre Liquid-Vorlagen schneller HTML generieren.
Führen Sie einen Geschwindigkeitstest in Ihrem Shop durch , um beide Ebenen in Aktion zu sehen. Wenn die TTFB über 800 ms liegt, sollte die Liquid-Optimierung Ihre erste Priorität sein. Wenn TTFB bereits schnell ist, LCP/TBT jedoch langsam, Behebung von Rendering-blockierenden Ressourcen mit Thunder wird den größten Einfluss haben.
So funktioniert die Liquid Rendering Pipeline von Shopify
Wenn Sie die Rendering-Pipeline verstehen, können Sie erkennen, wo Optimierungsbemühungen einen Unterschied machen:
- Anfrage kommt – Shopify empfängt die HTTP-Anfrage des Browsers
- Routenanpassung – Shopify bestimmt, welche Vorlage gerendert werden soll (Produkt, Sammlung, Seite usw.)
- Datenabruf — Shopify loads product data, collection data, settings, and metafields from the database
- Flüssigkeitsverarbeitung – Die Template-Engine verarbeitet alle Liquid-Tags, Schleifen, Bedingungen und Filter
- Abschnittsrendering – Jeder Abschnitt in der Vorlage wird unabhängig verarbeitet
- HTML-Assembly – Verarbeitete Abschnitte werden zum endgültigen HTML-Dokument zusammengefasst
- Antwort gesendet – Der vollständige HTML-Code wird an den Browser gesendet (hier wird TTFB gemessen)
Steps 3-6 are where Liquid code quality matters most. Complex templates with excessive loops, heavy data access, and deep snippet nesting extend these steps from 50ms to 500ms+.
Die wichtigste Erkenntnis: Jedes Liquid-Tag wird bei jedem Seitenaufruf ausgeführt. Unlike front-end JavaScript that can be cached, deferred, or lazy-loaded, Liquid re-executes from scratch on every request. This makes server-side optimization compound — a 100ms Liquid improvement means 100ms saved on every single page view. Learn more about how TTFB fits into the bigger picture in our TTFB-Optimierungsleitfaden.
Profilieren der Liquid-Leistung mit Theme Inspector
Die Shopify Theme Inspector Die Chrome-Erweiterung ist das beste Tool zur Identifizierung langsamen Liquid-Codes. So nutzen Sie es effektiv:
Einrichtung
- Install "Shopify Theme Inspector for Chrome" from the Chrome Web Store
- Melden Sie sich im selben Browser bei Ihrem Shopify-Administrator an
- Navigieren Sie zu Ihrer Storefront (nicht zum Admin – der eigentlichen Shop-URL)
- Klicken Sie auf das Erweiterungssymbol „Theme Inspector“ → es wird hinzugefügt
?pb=1zur URL - Das Profiler-Flammendiagramm erscheint unten auf der Seite
Worauf Sie achten sollten
- Breite Blöcke im Flammendiagramm – diese stellen Liquid-Dateien oder Codeblöcke dar, deren Rendern am längsten dauert
- Abschnitte >50ms – jeder Abschnitt, der länger als 50 ms dauert, ist ein Optimierungskandidat
- Snippet-Renderaufrufe – Hochfrequenz-Snippet-Renderings, die sich Dutzende Male wiederholen
- Gesamte Liquid-Renderzeit – wird oben im Profiler angezeigt. Unter 200 ms ist gut; Über 500 ms müssen bearbeitet werden
Profilieren Sie mehrere Seitentypen – Startseite, Produktseiten, Sammlungsseiten. Jeder wird unterschiedliche Engpässe haben. Sammlungsseiten haben aufgrund von Produktschleifen normalerweise die höchste Liquid-Renderzeit – siehe unsere Leitfaden zur Geschwindigkeit der Sammlungsseite für seitenspezifische Tipps.
Häufige Fallstricke bei der Leistung von Flüssigkeiten (und wie man sie behebt)
1. Verschachtelte Schleifen (der Leistungskiller Nr. 1)
Eine Schleife innerhalb einer Schleife multipliziert Iterationen exponentiell. Dies ist das häufigste und schwerwiegendste Problem mit der Liquid-Leistung:
{% comment %} ❌ BAD: 50 products × 10 variants = 500 iterations {% endcomment %}
{'{% for product in collection.products %}'}{'
'}
{' {% for variant in product.variants %}'}{'
'}
{' {% if variant.available %}'}{'
'}
{' '}{'
'}
{' {% endif %}'}{'
'}
{' {% endfor %}'}{'
'}
{'{% endfor %}'}{'
'}
{'
'}
{'{% comment %} ✅ BETTER: Limit products, handle variants client-side {% endcomment %}'}{'
'}
{'{% for product in collection.products limit: 12 %}'}{'
'}
{' '}{'
'}
{' {{ product.title }}'}{'
'}
{' '}{'
'}
{'{% endfor %}'}} Fix: Begrenzen Sie die Iterationen der äußeren Schleife, verlagern Sie die innere Verarbeitung nach Möglichkeit auf JavaScript oder reduzieren Sie die Datenstruktur mit json Filter und Verarbeitung im Frontend.
2. Übermäßiger Objektzugriff
Jedes Mal, wenn Sie auf eine Liquid-Objekteigenschaft zugreifen, führt Shopify eine Suche durch. Der wiederholte Zugriff auf dieselbe Eigenschaft verschwendet Bearbeitungszeit:
{% comment %} ❌ BAD: Accessing product.title 6 times {% endcomment %}
{'{{ product.title }}
'}{'
'}
{''}{'
'}
{'{{ product.title }} | {{ shop.name }} '}{'
'}
{''}{'
'}
{'<script>dataLayer.push({'name': '{{ product.title }}'})</script>'}{'
'}
{'
'}
{'{% comment %} ✅ BETTER: Assign once, reference the variable {% endcomment %}'}{'
'}
{'{% assign product_title = product.title %}'}{'
'}
{'{{ product_title }}
'}{'
'}
{''}{'
'}
{'{{ product_title }} | {{ shop.name }} '}{'
'}
{''}{'
'}
{'<script>dataLayer.push({'name': '{{ product_title }}'})</script>'}} Faustregel: Wenn Sie mehr als drei Mal auf dieselbe Objekteigenschaft zugreifen, weisen Sie sie zuerst einer Variablen zu. Dies wirkt sich besonders in Kreisläufen aus, in denen sich die Einsparungen vervielfachen.
3. Unbegrenzte Sammlungsabfragen
Das Laden einer gesamten Kollektion, wenn Sie nur wenige Produkte benötigen, zwingt Shopify dazu, unnötige Daten abzurufen und zu verarbeiten:
{% comment %} ❌ BAD: Loads all products in the collection {% endcomment %}
{'{% for product in collections["best-sellers"].products %}'}{'
'}
{' {{ product.title }}'}{'
'}
{'{% endfor %}'}{'
'}
{'
'}
{'{% comment %} ✅ BETTER: Limit to what you actually display {% endcomment %}'}{'
'}
{'{% for product in collections["best-sellers"].products limit: 8 %}'}{'
'}
{' {{ product.title }}'}{'
'}
{'{% endfor %}'}} Auswirkungen: Die Iteration einer Sammlung mit 500 Produkten dauert deutlich länger als die einer auf 8 beschränkten. Immer verwenden -Grenze: wenn Sie wissen, wie viele Artikel Sie benötigen.
4. Tief verschachtelte Snippets
Jeweils rendern -Anruf hat Overhead. Ein Abschnitt, der ein Snippet rendert, der ein weiteres Snippet rendert, der noch ein weiteres Snippet rendert, erzeugt eine Kette von Verarbeitungsaufwand:
{% comment %} ❌ BAD: 3 levels of nesting for each product card {% endcomment %}
{'{% comment %} section → product-card snippet → price snippet → badge snippet {% endcomment %}'}{'
'}
{'{% render "product-card", product: product %}'}{'
'}
{' {% comment %} Inside product-card.liquid: {% endcomment %}'}{'
'}
{' {% render "price-display", variant: product.selected_or_first_available_variant %}'}{'
'}
{' {% comment %} Inside price-display.liquid: {% endcomment %}'}{'
'}
{' {% render "sale-badge", compare_price: variant.compare_at_price %}'}{'
'}
{'
'}
{'{% comment %} ✅ BETTER: Flatten into fewer, larger snippets {% endcomment %}'}{'
'}
{'{% render "product-card", product: product %}'}{'
'}
{'{% comment %} product-card.liquid handles price and badge inline {% endcomment %}'}} Best Practice: Beschränken Sie die Snippet-Verschachtelung auf maximal 2 Ebenen. Wenn Sie mehr als 3 Verschachtelungsebenen finden, reduzieren Sie die inneren Snippets auf ihre übergeordneten Ebenen.
5. Filter für schwere Flüssigkeiten bei großen Datensätzen
Flüssigkeitsfilter wie wo, Karte, und sortieren iteriert serverseitig durch Sammlungen. Die Verkettung mehrerer Filter bei großen Datensätzen erschwert die Verarbeitung:
{% comment %} ❌ SLOW: Three filter passes on a large collection {% endcomment %}
{'{% assign available = collection.products | where: "available", true %}'}{'
'}
{'{% assign tagged = available | where: "tags", "featured" %}'}{'
'}
{'{% assign sorted = tagged | sort: "price" %}'}{'
'}
{'
'}
{'{% comment %} ✅ FASTER: Use a single limited loop with conditionals {% endcomment %}'}{'
'}
{'{% for product in collection.products limit: 50 %}'}{'
'}
{' {% if product.available and product.tags contains "featured" %}'}{'
'}
{' {% comment %} Render product {% endcomment %}'}{'
'}
{' {% endif %}'}{'
'}
{'{% endfor %}'}} Best Practices für die Leistung von Flüssigkeiten
Über die Behebung spezifischer Fallstricke hinaus sorgen diese Vorgehensweisen dafür, dass Liquid-Vorlagen schnell verfügbar bleiben, wenn Ihr Shop wächst:
Verwenden Sie Paginierung für große Sammlungen
Wickeln Sie Sammlungsschleifen immer in Paginierungs-Tags ein. Ohne Paginierung versucht Shopify, alle Produkte auf einmal zu verarbeiten:
{% paginate collection.products by 24 %}
{' {% for product in collection.products %}'}{'
'}
{' {% comment %} Render product card {% endcomment %}'}{'
'}
{' {% endfor %}'}{'
'}
{' {{ paginate | default_pagination }}'}{'
'}
{'{% endpaginate %}'}} Nutzen Sie die Section Rendering API Mit
Shopify's Abschnitts-Rendering-API können Sie einzelne Abschnitte über AJAX aktualisieren, ohne die gesamte Seite neu laden zu müssen. Verwenden Sie dies für:
- Aktualisierungen der Warenkorbschublade (nur den Warenkorbbereich neu rendern)
- Produktvariantenänderungen (Produktinformationen erneut rendern, ohne die gesamte Seite neu zu laden)
- Sammlungsfilterung (nur den Produktrasterabschnitt aktualisieren)
- Schnelles Hinzufügen zum Warenkorb (Zählung des Warenkorbs ohne Navigation erneut rendern)
Dies reduziert die Serverlast, da nur ein Abschnitt und nicht die gesamte Seitenvorlage verarbeitet wird.
Bedingtes Laden des Abschnitts
Nicht jeder Abschnitt muss für jeden Besucher gerendert werden. Verwenden Sie Liquid-Bedingungen, um umfangreiche Abschnitte zu überspringen, wenn sie nicht relevant sind:
{% comment %} Only render recently viewed if there are items to show {% endcomment %}
{'{% if section.settings.show_recently_viewed %}'}{'
'}
{' {% comment %} Render recently viewed section {% endcomment %}'}{'
'}
{'{% endif %}'}{'
'}
{'
'}
{'{% comment %} Skip heavy related products section on mobile if configured {% endcomment %}'}{'
'}
{'{% unless section.settings.hide_on_mobile and request.user_agent contains "Mobile" %}'}{'
'}
{' {% comment %} Render related products {% endcomment %}'}{'
'}
{'{% endunless %}'}} Metafeldzugriff minimieren
Metafeld-Suchen erfordern Datenbankabfragen. Wenn Sie Metafelder häufig verwenden, bündeln Sie Ihren Zugriff:
{% comment %} ❌ BAD: Multiple metafield accesses scattered through template {% endcomment %}
{'{{ product.metafields.custom.material }}
'}{'
'}
{''}{'
'}
{'{{ product.metafields.custom.material }}'}{'
'}
{'
'}
{'{% comment %} ✅ BETTER: Assign once at the top {% endcomment %}'}{'
'}
{'{% assign material = product.metafields.custom.material %}'}{'
'}
{'{% assign care_instructions = product.metafields.custom.care %}'}{'
'}
{'{% assign origin = product.metafields.custom.origin %}'}} Serverseitige (flüssige) vs. Front-End-Optimierung
| Aspekt | Flüssigkeitsoptimierung | Front-End (Donner) |
|---|---|---|
| Was es betrifft | TTFB (Server-Antwortzeit) | LCP, TBT, INP, CLS |
| Wo es läuft | Shopify-Server | Browser des Besuchers |
| Typische Auswirkung | 50–300 ms TTFB-Reduzierung | 1-3 Sekunden Rendering-Verbesserung |
| Implementierung | Theme-Code-Änderungen (Entwicklerarbeit) | Automatisch (installieren und konfigurieren) |
| Wartung | Manuell – erneut prüfen, wenn sich das Thema ändert | Automatisch – passt sich Änderungen an |
Für maximale Geschwindigkeit: Liquid-Vorlagen für schnelleres TTFB optimieren und dann verwenden Thunder zur Front-End-Lieferoptimierung. Siehe unser Optimierungsservice für praktische Hilfe.
Shopify Liquid Optimization Checkliste
Gehen Sie diese der Reihe nach durch – erstellen Sie zuerst ein Profil und beheben Sie dann die größten Probleme:
- Installieren Sie Shopify Theme Inspector – Profilieren Sie Ihre Homepage, Produktseite und Sammlungsseite. Beachten Sie die Gesamtrenderzeit und langsame Abschnitte.
- Verschachtelte Schleifen reparieren – Finden Sie Schleifen-in-Schleifen-Muster und glätten Sie sie oder fügen Sie Grenzen hinzu.
- Hinzufügen
-Grenze:zu allen Sammelschleifen – Niemals eine gesamte Sammlung ohne explizite Begrenzung iterieren. - Verwendung
zuweisenfür wiederholte Werte – Jede Eigenschaft, auf die mehr als dreimal zugegriffen wird, sollte einer Variablen zugewiesen werden. - Snippet-Verschachtelung reduzieren – Verschachtelung auf maximal 2 Ebenen beibehalten. Inline tief verschachtelte Snippets.
- Paginierung hinzufügen – Alle Sammlungsvorlagen sollten verwenden
paginieren-Tags. - Installieren Sie Thunder zur Front-End-Optimierung – Ergänzen Sie Ihre Liquid-Verbesserungen durch automatische JS/CSS-Optimierung. Jetzt installieren oder siehe vollständige Funktionsaufschlüsselung
- Neuprofil nach Änderungen – Führen Sie den Theme Inspector erneut aus und vergleichen Sie die Gesamtrenderzeit. Streben Sie weniger als 200 ms an.
Häufig gestellte Fragen zur Shopify Liquid-Optimierung
Wie wirkt sich Liquid Rendering auf die Geschwindigkeit des Shopify-Shops aus?
Liquid ist die serverseitige Vorlagensprache von Shopify – sie läuft auf den Servern von Shopify, bevor der HTML-Code an den Browser gesendet wird. Komplexer Liquid-Code erhöht direkt die Zeit bis zum ersten Byte (TTFB), da der Server länger braucht, um die HTML-Antwort zu generieren. Zu den häufigsten Leistungskillern gehören verschachtelte for-Schleifen, übermäßiger Objektzugriff (20-maliger Aufruf von „product.title“ statt einer einmaligen Zuweisung), tief verschachtelte Snippets und das Laden vollständiger Sammlungsobjekte, wenn Sie nur wenige Produkte benötigen. Die Optimierung von Liquid reduziert die Serververarbeitungszeit um 50–300 ms.
Was ist der Shopify Theme Inspector und wie verwende ich ihn?
The Shopify Theme Inspector is a Chrome extension that profiles Liquid rendering time. Install it from the Chrome Web Store, open your store while logged into your Shopify admin, and click the extension icon. It shows a flame chart of which Liquid files and code blocks take the most time to render. Look for snippets or sections that take more than 50ms — those are your optimization targets. The profiler works on development stores and stores with the password page disabled.
Sollte ich Snippets oder Abschnitte für Liquid-Komponenten verwenden?
In Bezug auf die Leistung sind Abschnitte im Allgemeinen besser als tief verschachtelte Snippets. Mit der Abschnitts-Rendering-API von Shopify 2.0 können einzelne Abschnitte erneut gerendert werden, ohne dass die gesamte Seite neu geladen werden muss. Snippets eignen sich gut für kleine, wiederverwendbare Teile (Symbole, einfache Komponenten), aber vermeiden Sie die Verschachtelung von Snippets mit einer Tiefe von mehr als 2 Ebenen. Jeder Snippet-Render-Aufruf hat einen Overhead – eine Seite, die mehr als 30 Snippets rendert, ist messbar langsamer als eine Seite, die weniger, größere Abschnitte verwendet. Die Ausnahme: Snippets mit bedingtem Rendering (nur bei Bedarf rendern) können effizienter sein als Abschnitte, die immer geladen werden.
Wie reduziere ich Liquid-Loops, die meinen Shopify-Shop verlangsamen?
The biggest Liquid loop performance issues come from nested loops and unbounded iteration. First, always use the 'limit' parameter: instead of looping through all 500 products in a collection, use 'for product in collection.products limit:12'. Second, avoid nested loops — a loop of 50 products with an inner loop of 10 variants creates 500 iterations. Third, move filtering logic to the front end with JavaScript when possible, rather than using Liquid where/map filters on large datasets. Fourth, use paginate tags to limit the data Shopify fetches from the database.
Beeinflusst die Anzahl der Shopify-Bereiche die Seitengeschwindigkeit?
Ja – jeder Abschnitt erhöht die Liquid-Rendering-Zeit. Das serverseitige Rendern einer Homepage mit 15 Abschnitten dauert länger als eine mit 8 Abschnitten. Die Auswirkungen variieren jedoch erheblich: Ein einfacher Textabschnitt kann 1–5 ms hinzufügen, während ein Abschnitt „Featured Collection“, der 12 Produkte mit Variantendaten lädt, 50–200 ms hinzufügen kann. Die Gesamtzahl der Abschnitte ist weniger wichtig als die Leistung jedes einzelnen Abschnitts. Konzentrieren Sie sich auf die Optimierung schwerer Abschnitte (Sammlungen, Produktraster, dynamische Inhalte), anstatt die Gesamtzahl der leichten Abschnitte zu reduzieren.
Speichert Shopify Liquid-Rendering im Cache?
Shopify uses a CDN edge cache for fully static pages (like blog posts), but most Shopify pages are rendered dynamically — product pages, collection pages, cart pages, and any page with personalized content. This means Liquid code runs on most requests despite the CDN. However, Shopify does cache Liquid fragments internally using a fragment caching system that reuses rendered snippets when the underlying data hasn't changed. You can't control this caching directly, but you can benefit from it by keeping your Liquid code simple and avoiding expensive operations that bypass the cache (like dynamically generated timestamps or random content on each load).
Kann Thunder Page Speed Optimizer die Liquid-Leistung verbessern?
Thunder konzentriert sich auf die Front-End-Optimierung (JavaScript-Verzögerung, CSS-Optimierung, Reihenfolge beim Laden von Ressourcen) und nicht auf serverseitiges Liquid-Rendering. Betrachten Sie es als zwei komplementäre Ebenen: Die Liquid-Optimierung reduziert TTFB, indem sie den Server dazu bringt, HTML schneller zu generieren, während Thunder optimiert, was passiert, nachdem der HTML-Code eintrifft – indem er Render-blockierende Ressourcen zurückstellt und Core Web Vitals verbessert. Um optimale Ergebnisse zu erzielen, optimieren Sie beides: Bereinigen Sie Liquid-Vorlagen für eine schnellere Serverreaktion und verwenden Sie dann Thunder, um die Front-End-Bereitstellung zu optimieren.
Schnellere Flüssigkeit = Schnelleres erstes Byte = Alles schneller
Liquid-Optimierung ist die Grundlage für die Shopify-Shop-Geschwindigkeit. Jede beim serverseitigen Rendering eingesparte Millisekunde führt direkt zu schnellerem TTFB – und schnelleres TTFB bedeutet, dass alles Downstream (Rendering, Interaktivität, visuelle Belastung) früher beginnt. Die wirksamsten Korrekturen sind in der Regel die einfachsten: Erfassungsschleifen begrenzen, wiederholte Werte zuweisen und verschachtelte Snippets reduzieren.
Um ein vollständiges Geschwindigkeitsbild zu erhalten, kombinieren Sie die Liquid-Optimierung mit Verbesserungen der Front-End-Bereitstellung. Thunder Page Speed Optimizer Griffe JavaScript-Verzögerung, CSS-Optimierungund Ressourcenladen – das Front-End-Gegenstück zu Ihrer serverseitigen Liquid-Arbeit.
Testen Sie jetzt Ihren Shop , um Ihren aktuellen TTFB anzuzeigen und Optimierungsmöglichkeiten zu identifizieren. Eine vollständige Optimierungsstrategie finden Sie in unserer Vollständiger Leitfaden zur Shopify-Geschwindigkeitsoptimierung.
Expert Speed Optimization for Your Store
Our team handles everything — theme optimization, app cleanup, Core Web Vitals guarantee. Most stores optimized in 2 weeks.
✅ Core Web Vitals Guarantee · ⚡ 2-Week Delivery · 🎁 6 Months Free Thunder
Starting from €1,500 · Learn more