Mehr Performance und Stabilität für den Herzapfelhof: Ein JTL-Shop wird fit für saisonale Lastspitzen

Mit sauberer Konfiguration, gezieltem Performance-Tuning und intelligenter Cache-Strategie zu deutlich schnelleren Antwortzeiten

Inhaltsverzeichnis
Table of contents

cartodesign Kundenprojekt "Herzapfelhof"

  • Kategorien:
  • Categories:
  • JTL-Shop
  • Performance

Management Summary

Der Herzapfelhof aus Jork im Alten Land vertreibt über seinen JTL-Shop frisches Bio-Obst sowie veredelte Apfelprodukte und regionale Spezialitäten. Bei rund 1,2 Millionen Besuchen pro Monat und ausgeprägten saisonalen Lastspitzen führten lange Ladezeiten, 500er-Fehler bei Filteranfragen, hoher Bot-Traffic und stark anwachsende Logs zu spürbaren Performance-Problemen. Gemeinsam mit cartodesign und maxcluster wurde die Shop-Umgebung technisch analysiert und gezielt optimiert – von Template- und Plugin-Bereinigung über Redis-Caching bis hin zu Cloudflare-Regeln für Cache und Bot-Steuerung. In den Messungen sank die TTFB-nahe Waiting-Zeit auf der Startseite um rund 85 Prozent und auf der Produktseite um rund 69 Prozent.

Kurz und Knapp

Kunde: Herzapfelhof Lühs GmbH & Co. KG
Branche: Lebensmittel
Plattform: JTL
Website:www.herzapfelhof.de
Agentur: cartodesign

Ausgangssituation: Hoher Traffic, sensible Produkte, enge Zeitfenster

Der Herzapfelhof aus Jork im Alten Land vertreibt über seinen JTL-Shop frisches Bio-Obst sowie veredelte Apfelprodukte und regionale Spezialitäten. Dazu gehören unter anderem Äpfel aus biologisch-dynamischem Anbau, Säfte und weitere Produkte aus dem eigenen Sortiment, die neben dem Hofladen auch über den Onlineshop angeboten werden. 

Gerade diese Mischung aus frischen Erzeugnissen und verarbeiteten Hofprodukten macht eine verlässliche Shop-Performance besonders wichtig – erst recht in saisonalen Hochphasen, wenn Nachfrage und Besucherzahlen sprunghaft ansteigen.

Genau in diesen Phasen zeigte sich jedoch, dass der Shop technisch an Grenzen stieß. Die Ladezeiten wurden länger, Produktfilter lösten 500er-Fehler aus, Bots und Crawler verursachten zusätzliche Last und die Fehlerlogs wuchsen in kurzer Zeit stark an. Für alle Projektbeteiligten erhöhte das den Analyseaufwand spürbar und band zugleich unnötig Ressourcen auf der Infrastruktur.

Damit war klar: Es ging nicht um eine punktuelle Optimierung, sondern um die saubere technische Überarbeitung eines Shop-Setups, das unter realer Last wieder zuverlässig funktionieren musste.

Herausforderungen: Mehr als nur ein Performance-Thema

Die Aufgabenstellung war entsprechend vielschichtig. Zum einen sollte die Plattform stabiler und skalierbarer werden. Zum anderen galt es, konkrete technische Ursachen für Performance-Verluste und Fehlverhalten zu identifizieren und zu beseitigen.

Im Fokus standen dabei mehrere Punkte zugleich: lange Ladezeiten im Frontend, 500er-Fehler bei Produktfiltern, Lastspitzen durch Crawler und Bots, schnell volllaufende Server-Logs sowie unnötige Belastungen durch Module, Plugins und nicht optimal konfigurierte Shop-Bestandteile. Hinzu kam der Anspruch, Caching, Fehlermanagement und Update-Fähigkeit so aufzusetzen, dass der Shop nicht nur kurzfristig entlastet, sondern dauerhaft robuster wird.

Gerade bei einem JTL-Shop mit wachsendem Traffic zeigt sich schnell, wie eng Anwendung, Infrastruktur und Konfiguration zusammenhängen. Wer hier nur an einer Stelle optimiert, behebt selten die eigentliche Ursache.

Die Umsetzung: Analyse, Bereinigung und gezielte Eingriffe ins Setup

Gemeinsam mit dem betreuenden Partner cartodesign wurde der Shop zunächst detailliert analysiert. Ein Teil der Arbeiten lief bewusst auf einem Testcluster mit Daten aus dem Livesystem, damit sich Maßnahmen realistisch prüfen ließen, ohne die Stabilität des produktiven Shops zu gefährden. 

Parallel dazu wurde das Livesystem mit dem PHP-Profiler Tideways detailliert untersucht. Diese profilerbasierte Auswertung war ein wesentlicher Bestandteil des Projekts, weil sie die Performance-Probleme nicht nur auf Ebene der Ladezeit, sondern bis hinein in einzelne Requests, Hooks, SQL-Abfragen und Redis-Zugriffe sichtbar machte. So ließ sich nachvollziehen, an welchen Stellen der JTL-Shop im Livebetrieb tatsächlich Zeit verlor und welche Bestandteile des Setups dabei besonders stark ins Gewicht fielen.

PHP-Profiler Tideways: Graph profilerbasierte Auswertung.

Die Analyse zeigte, dass die Verzögerungen nicht auf eine einzelne Ursache zurückzuführen waren, sondern aus dem Zusammenspiel mehrerer Faktoren entstanden. Auffällig waren unter anderem wiederholte Datenbankabfragen auf Kategorie- und Sichtbarkeitsdaten, zahlreiche Cache-Zugriffe auf Produktobjekte sowie zusätzlicher Laufzeit-Anteil durch Plugins. Besonders ins Gewicht fiel dabei ein bekanntes und häufig genutztes JTL-Plugin zum switch von Brutto -und Nettopreisen: Laut Analyse wurden allein auf der Startseite rund 2.000 Abfragen auf dessen Tabelle ausgelöst, obwohl diese praktisch keine inhaltlich relevanten Daten enthielt. Genau solche Erkenntnisse waren entscheidend, um Optimierungen nicht auf Verdacht, sondern gezielt entlang realer Messdaten aus dem Livesystem priorisieren zu können.

Auf dieser Basis wurde das Setup an mehreren Stellen überarbeitet. Veraltete JavaScript- und CSS-Bestandteile wurden entfernt, Plugins und Themes auf Kompatibilität geprüft und das Template technisch bereinigt. Ergänzend kamen Lazy Loading für Bilder sowie eine strukturierte Cache-Bildung per Cronjob zum Einsatz.

Ein weiterer wichtiger Hebel war die Einführung von Redis als Teil eines hybriden Cache-Setups. Redis hält als Cache-Backend Objekte im RAM vor, was besonders schnelle Zugriffe auf diese ermöglicht. Jedoch ist RAM kostbar, sodass dieser für wesentliche und häufig genutzte Elemente verwendet werden sollte. Andere, weniger wichtige Cache-Inhalte wurden daher auf die schnelle NVMe-SSD gelegt. Durch diesen hybriden Ansatz konnte die RAM-Nutzung effizient gestaltet werden, um den Shopbetrieb sowohl schnell als auch wirtschaftlich zu machen. 

Ergänzend wurde der Shop mit dem maxcluster Tool ShopPerformance geprüft, das eine schnelle Bewertung zentraler Dienstekonfigurationen ermöglicht. Dabei zeigte sich, dass die wesentlichen Einstellungen bereits weitgehend sinnvoll gesetzt waren.

Optimierungspotenzial bestand jedoch noch beim Datenbank-Puffer, dessen Anpassung zusätzliche Performance brachte. Der Effekt fiel auch deshalb nur in einigen Prozentpunkten aus, weil die Ausgangsbasis bereits vergleichsweise gut war. Genau darin liegt der praktische Nutzen von ShopPerformance: Das Tool schafft schnell Transparenz und ermöglicht grundlegende Optimierungen der Dienstekonfigurationen auch im Self-Service.

Aus den Ergebnissen der Profiler-Analyse konnten außerdem einzelne technische Ursachen direkt behoben werden. Ein ineffizient arbeitendes Plugin, das die Datenbank stark belastete, konnte identifiziert und ausgetauscht werden. Allein dieser Wechsel verbesserte die Performance der Startseite um rund 38 Prozent. Darüber hinaus passte die Agentur die Shop-Programmierung im Bereich des Navigationsmenüs an, wodurch sich weitere rund 50 Millisekunden einsparen ließen. 

Ein wesentlicher Hebel war außerdem die Einführung des Full-Page-Cache, der die Ladezeit überhaupt erst in einen Bereich von unter 200 Millisekunden brachte.
Ergänzend wurden Regeln zur Cache-Steuerung und Traffic-Kontrolle über Cloudflare umgesetzt. Dazu gehörten unter anderem Page Rules, geografische Einschränkungen für nicht relevante Zugriffe, aktives Bot-Management und Rate Limiting für auffällige URL-Aufrufe.

Auch das Fehlermanagement wurde sauberer aufgesetzt. Unnötige Datenbankzugriffe und überflüssige Logeinträge wurden reduziert, damit echte Fehler schneller sichtbar werden und Warnungen oder Hinweise nicht länger die Analyse erschweren. 

Warum maxcluster

Bei einem Shop mit hohem Besucheraufkommen und ausgeprägten Lastspitzen reicht es nicht aus, nur die Anwendung zu optimieren. Entscheidend ist auch eine Hosting-Umgebung, die auf E-Commerce-Lasten ausgelegt ist und im Tagesgeschäft ebenso wie in Peak-Phasen stabil bleibt.

Genau hier spielte maxcluster seine Stärken aus. Relevant für dieses Projekt waren vor allem die E-Commerce-Spezialisierung, die Erfahrung mit performanten Shop-Stacks, die Möglichkeit, Technologien wie Redis gezielt einzusetzen, sowie ein Betrieb, der auf Monitoring, schnelle Reaktion und saubere technische Umsetzung ausgelegt ist. Auch die Kombination aus skalierbarer Cluster-Architektur, direktem technischem Support und hoher E-Commerce-Nähe war ein wichtiger Faktor.

Für den Herzapfelhof bedeutete das: Probleme ließen sich nicht nur schneller eingrenzen, sondern Maßnahmen auch deutlich gezielter umsetzen. Gerade im Zusammenspiel mit einer spezialisierten Agentur entsteht so ein Setup, das nicht nur auf kurzfristige Entlastung zielt, sondern auf dauerhafte Stabilität.

Ergebnisse: Deutlich schnellere Antwortzeiten auf Start- und Produktseite

Die Wirkung der technischen Überarbeitung zeigt sich klar in den Messwerten. Besonders deutlich fällt der Unterschied auf der Startseite aus. Dort sank die Waiting-Zeit als TTFB-nahe Kennzahl von durchschnittlich 1.162 Millisekunden im Ausgangszustand auf 177 Millisekunden im finalen Messstand. Das entspricht einer Verbesserung von rund 85 Prozent. Parallel reduzierte sich die mittlere Gesamtdauer pro Request von 1.209 auf 222 Millisekunden. 

Auch auf der analysierten Produktseite ist der Effekt deutlich messbar. Hier fiel die Waiting-Zeit im Mittel von 542 auf 169 Millisekunden und damit um rund 69 Prozent. Die durchschnittliche Request-Dauer sank von 589 auf 213 Millisekunden.

Dabei ist wichtig, die Messreihen korrekt einzuordnen: In beiden Fällen liefen die ersten drei Messstände direkt auf dem Cluster, der finale Stand bereits über Cloudflare. Die Verbesserung beschreibt also bewusst den Gesamteffekt aus mehreren Maßnahmen – also aus technischer Bereinigung im Shop, optimierter Konfiguration, besserer Cache-Nutzung und einer gezielteren Auslieferung. Genau das macht die Ergebnisse für die Case Study aber so aussagekräftig: Sie zeigen nicht die Wirkung einer einzelnen Stellschraube, sondern die Wirkung eines sauber aufeinander abgestimmten Setups.

Über die Messwerte hinaus wurde der Shop insgesamt robuster. Filteranfragen verursachen weniger kritische Fehler, Bot-Traffic belastet das System weniger stark, die Logfiles wachsen kontrollierter und die Plattform bleibt auch in stark frequentierten Phasen besser beherrschbar. Damit wurde die Basis geschaffen, um Lastspitzen nicht nur technisch abzufangen, sondern auch künftige Weiterentwicklungen sauberer umzusetzen.

Fazit: Weniger Ballast, mehr Kontrolle, bessere Performance

Der Herzapfelhof ist ein gutes Beispiel dafür, wie stark ein JTL-Shop von einer technischen Gesamtschau profitiert. Statt einzelne Symptome isoliert zu behandeln, wurde die Plattform gemeinsam mit cartodesign und maxcluster an den entscheidenden Stellen überarbeitet – von Template und Plugins über Caching und Fehlermanagement bis hin zur Steuerung von Bot-Traffic und Auslieferung.

Das Ergebnis ist ein Shop, der auf saisonale Lastspitzen deutlich besser vorbereitet ist, Ressourcen gezielter nutzt und im laufenden Betrieb stabiler reagiert. Gerade für E-Commerce-Projekte mit stark schwankender Nachfrage ist das entscheidend. Denn Performance entsteht nicht durch eine einzelne Maßnahme, sondern durch das saubere Zusammenspiel aus Anwendung, Infrastruktur und technischem Betrieb.

Über cartodesign

 cartodesign ist eine E-Commerce- und Webagentur aus dem Kreis Soest mit langjähriger Erfahrung in der Konzeption, Gestaltung und technischen Umsetzung digitaler Projekte. Ein Schwerpunkt liegt auf JTL-Shops, JTL-Wawi und Magento sowie auf der laufenden Betreuung, Optimierung und Weiterentwicklung von Onlineshops. Ebenso verbindet das Team technische Umsetzung mit Beratung, Support und Leistungen rund um Webdesign, Usability sowie digitale Sichtbarkeit durch SEO und Online-Marketing.