- Kategorien:
- Categories:
- JTL-Shop
- Performance
Executive Summary
Herzapfelhof from Jork in the Altes Land region sells fresh organic fruit as well as refined apple products and regional specialties via its JTL shop. With around 1.2 million visits per month and pronounced seasonal peak loads, long loading times, 500 errors on filter requests, heavy bot traffic, and rapidly growing logs led to noticeable performance issues. Together with cartodesign and maxcluster, the shop environment was technically analyzed and specifically optimized—from cleaning up templates and plugins to Redis caching and Cloudflare rules for caching and bot control. Measurements showed that the TTFB-related waiting time dropped by around 85 percent on the homepage and by around 69 percent on the product page.
In a nutshell
Customer: Herzapfelhof Lühs GmbH & Co. KG
Industry: Food
Platform: JTL
Website www.herzapfelhof.de
Agency: cartodesign

Starting point: high traffic, sensitive products, tight time windows
Herzapfelhof, based in Jork in the Altes Land region, sells fresh organic fruit as well as refined apple products and regional specialties via its JTL shop. These include, among other things, biodynamically grown apples, juices, and other items from its own range, which are offered not only in the farm shop but also through the online store.
This very mix of fresh produce and processed farm products makes reliable shop performance especially important—particularly during seasonal peak periods, when demand and visitor numbers rise sharply.
Yet it was precisely during these phases that the shop showed it was reaching its technical limits. Load times increased, product filters triggered 500 errors, bots and crawlers added extra load, and the error logs grew rapidly within a short time. For everyone involved in the project, this noticeably increased the effort required for analysis while also tying up unnecessary infrastructure resources.
It was clear, then: this wasn’t about a one-off tweak, but about a thorough technical overhaul of a shop setup that needed to work reliably again under real-world load.
Challenges: More than just a performance issue
The task was correspondingly complex. On the one hand, the platform needed to become more stable and scalable. On the other, it was necessary to identify and eliminate specific technical causes of performance losses and malfunctions.
Several issues were in focus at the same time: long loading times in the frontend, 500 errors in product filters, load spikes caused by crawlers and bots, server logs filling up quickly, and unnecessary strain from modules, plugins, and shop components that were not optimally configured. Added to this was the requirement to set up caching, error handling, and update readiness in a way that not only relieves the shop in the short term, but makes it more robust in the long run.
Especially with a JTL shop and growing traffic, it quickly becomes clear how closely the application, infrastructure, and configuration are intertwined. If you optimize in just one place, you rarely address the real root cause.
Implementation: analysis, refinement and targeted adjustments to the setup

Together with the supporting partner cartodesign, the shop was first analysed in detail. Part of the work was deliberately carried out on a test cluster using data from the live system, so that measures could be tested realistically without jeopardising the stability of the production shop
At the same time, the live system was analyzed using the PHP profiler Tideways examined in detail. This profiler-based analysis was a key part of the project because it made performance issues visible not only at the level of load times, but down to individual requests, hooks, SQL queries, and Redis accesses. This made it possible to trace exactly where the JTL Shop was actually losing time in live operation and which parts of the setup had the greatest impact.

The analysis showed that the delays could not be traced back to a single cause, but resulted from the interaction of several factors. Notable issues included repeated database queries for category and visibility data, numerous cache accesses to product objects, and additional runtime overhead caused by plugins. A particularly significant factor was a well-known and widely used JTL plugin for switching between gross and net prices: according to the analysis, the homepage alone triggered around 2,000 queries to its table, even though it contained virtually no content-relevant data. Insights like these were crucial for prioritising optimisations not based on guesswork, but specifically on real measurement data from the live system.
On this basis, the setup was revised in several areas. Outdated JavaScript and CSS components were removed, plugins and themes were checked for compatibility, and the template was technically cleaned up. In addition, lazy loading for images and structured cache generation via a cron job were implemented.
Another important lever was the introduction of Redis as part of a hybrid cache setup. Redis stores objects in RAM as the cache backend, enabling especially fast access to them. However, RAM is expensive, so it should be reserved for essential and frequently used elements. Other, less critical cache content was therefore moved to the fast NVMe SSD. This hybrid approach made RAM usage more efficient, keeping the shop operation both fast and cost-effective
In addition, the shop was checked using the maxcluster tool ShopPerformance, which enables a quick assessment of key service configurations. This showed that the essential settings were already largely configured sensibly.
There was still room for improvement in the database buffer, however, and adjusting it delivered additional performance. The effect amounted to only a few percentage points, partly because the starting point was already comparatively good. This is exactly where the practical value of ShopPerformance lies: the tool quickly creates transparency and enables basic optimizations of service configurations, even via self-service.
The profiler analysis also made it possible to fix specific technical issues directly. An inefficient plugin that was putting a heavy load on the database was identified and replaced. This change alone improved the homepage performance by around 38 percent. In addition, the agency adjusted the shop code in the navigation menu area, saving a further roughly 50 milliseconds

Another key lever was the introduction of the full-page cache, which brought the load time down to under 200 milliseconds in the first place.
In addition, rules for cache management and traffic control were implemented via Cloudflare. These included, among other things, page rules, geographic restrictions for irrelevant access, active bot management, and rate limiting for suspicious URL requests.
Error handling has also been set up more cleanly. Unnecessary database queries and redundant log entries have been reduced so that real errors become visible more quickly and warnings or notices no longer make analysis harder
Why maxcluster
For a shop with high visitor traffic and pronounced load peaks, it’s not enough to optimize only the application. What’s crucial is also a hosting environment that is designed for e-commerce workloads and remains stable in day-to-day operations as well as during peak periods .
This is exactly where maxcluster played to its strengths. For this project, the key factors were above all the e-commerce specialization, experience with high-performance shop stacks,, the ability to deploy technologies like Redis in a targeted way, and operations geared toward monitoring, fast response times, and clean technical implementation. The combination of scalable cluster architecture, direct technical support, and strong e-commerce focus was also an important factor.
For Herzapfelhof, that meant: issues could not only be narrowed down more quickly, but measures could also be implemented much more precisely. Especially in combination with a specialized agency, this creates a setup that doesn’t just aim for short-term relief, but for long-term stability.
Results: Significantly faster response times on the homepage and product page
The impact of the technical overhaul is clearly reflected in the metrics. The difference is especially pronounced on the homepage. There, the waiting time as a TTFB-related metric dropped from an average of 1,162 milliseconds in the initial state to 177 milliseconds in the final measurement. That corresponds to an improvement of around 85 percent. At the same time, the average total duration per request decreased from 1,209 to 222 milliseconds.
The effect is also clearly measurable on the analysed product page. Here, the average waiting time fell from 542 to 169 milliseconds—around 69 percent. The average request duration dropped from 589 to 213 milliseconds.
It is important to interpret the measurement series correctly: in both cases, the first three measurement stages ran directly on the cluster, while the final stage was already delivered via Cloudflare. The improvement therefore deliberately reflects the overall effect of multiple measures—technical cleanup in the shop, optimised configuration, better cache utilisation, and more targeted delivery. This is precisely what makes the results so meaningful for the case study: they show not the impact of a single adjustment, but the impact of a well-coordinated setup.
Beyond the metrics, the shop became more robust overall. Filter requests trigger fewer critical errors, bot traffic puts less strain on the system, log files grow in a more controlled manner, and the platform remains easier to manage even during high-traffic periods. This created the foundation not only to absorb peak loads technically, but also to implement future enhancements more cleanly.
Conclusion: Less clutter, more control, better performance
The Herzapfelhof is a strong example of how much a JTL shop benefits from a holistic technical review. Instead of tackling individual symptoms in isolation, the platform was refined together with cartodesign and maxcluster at the key points – from templates and plugins to caching and error handling, as well as managing bot traffic and delivery.
The result is a shop that is far better prepared for seasonal traffic peaks, uses resources more efficiently, and responds more reliably in day-to-day operation. This is crucial, especially for e-commerce projects with highly fluctuating demand. Because performance doesn’t come from a single measure, but from the smooth interaction of the application, infrastructure, and technical operations.
About cartodesign
cartodesign is an e-commerce and web agency based in the Soest district with many years’ experience in the conception, design and technical implementation of digital projects. A key focus is on JTL-Shops, JTL-Wawi and Magento, as well as the ongoing management, optimisation and further development of online shops. The team also combines technical implementation with consultancy, support and services covering web design, usability and digital visibility through SEO and online marketing.

