Shopware Performance Guide for professionals

08.09.2020
by Meike Müller
Shopware
Banner

In this Shopware Performance Guide, we would like to give you tips that we have discovered through years of working with Shopware and numerous projects. We have not been able to find these tips anywhere yet, but we would like to present them to you, as they can save you a lot of work and trouble in everyday life. First, however, we will briefly discuss tips that are already known on the Internet, but which you may not have come across yet. This way, you have all the Shopware performance optimization tips in one place and can finally improve the speed of your online store.

What you can expect
  1. General performance tips from the Shopware world
  2. Performance tips for experienced store owners and developers
    1. Deactivate HTML minifier for large stores
    2. High server load with active openbasedir
    3. Store monitoring with Tideways
    4. Mod pagespeed
    5. AMP (accelerated mobile pages)
    6. Elasticsearch
    7. Redis Cache

Reading time 4 min

General performance tips that are already known in the Shopware world

Here are a few tips that are already well known if you're looking for Shopware performance tips. Of course, you should also follow these tips to quickly improve the performance of your online store. If these tips and tricks do not yet provide you with satisfactory results, you will find our Shopware performance tips for professionals later in the article. The implementation of the individual points is sometimes technologically demanding, so it might make sense to contact a professional Shopware agency.

Our Shopware performance tips and tricks:

  • Upgrade PHP version to PHP7+: The speed of the online store always depends very much on the PHP version used. You should therefore always find out which new version Shopware is now compatible with. For example, an upgrade from PHP version 7.0 to 7.2 can result in speed improvements of 10 to 15 %.
  • A powerful web server: Our web server recommendation for Shopware is nginx. Because the more visitors use your Shopware online store at the same time, the more power the web server needs to serve all requests quickly and simultaneously.
  • Latest Shopware version: To ensure smooth functionality and performance, the use of the latest Shopware version is of course mandatory.
  • Increase the HttpCache retention time: By increasing the HttpCache retention time settings in the backend, you can also enable faster loading times for your Shopware store.
  • More filters, fewer categories: For better loading times, you should sort your product listings by fewer categories and include all the more filters so that your customers can still find the products they are looking for.
  • Compress CSS and JS files: The more complex your files are, the longer it will take for your store to load for your store visitors. For this reason, you should compress the CSS files and JS files.
  • Activate cronjobs: In the basic settings of the Shopware store backend, you can activate cronjobs for search, SEO, top sellers and referral marketing.
  • Compressed images: For better page speed, you should also compress your images. A suitable image format for this is webp.
  • Use of a content delivery network (CDN): Depending on how many product images and other images you use in your online store, it is probably worth using a content delivery network. This refers to a server that has a distributed network and can therefore provide image requests or general data requests reliably and quickly. Because a local server is usually always active for the user, loading times are very short.
  • Compress data volumes with the GZIP module: Another measure is to use the GZIP module on your web server. You can simply activate this to compress large amounts of data and improve Shopware Shop performance even further.
  • A CacheWarmUp for the Shopware Shop: With special plugins for your Shopware online store, you can "warm up" your cache every night. This has the effect that your store still responds as quickly as if the store had already been visited after the cache has been cleared.

Shopware performance tips for experienced store owners and developers

Now we come to the Shopware performance tips and tricks that are suitable for professionals. If you are an experienced Shopware developer or store owner, this advice will help you to improve your performance and save you time that you don't have to spend pulling your hair out. Over the past few years, we've learned a lot about performance as we've provided intensive support for a wide range of Shopware online stores. We would now like to share our knowledge with you:

Deactivating HTML minifiers for large stores

Through Tideways, we had the opportunity to identify extremely slow page views of online stores with Shopware 5. The cause was a problem with Shopware's "new" HTML minifier. As some forum users also describe in the Shopware forum, a regex is used which turns out to be extremely imperformant in certain constellations. Fortunately, Shopware has now reacted so that the function, which can be found in the backend under Performance > Settings > General > Miscellaneous, has been inactive by default since 5.6.7.

  • Solution A: Performance > Settings > General > Miscellaneous -> Activate HTML compression -> no
  • Solution B: Change the regex function according to the tips in the Shopware Forum. Click here for the article.

High server load with active openbaseidr

There are now some reports that performance is impaired on systems with open_basedir activated. We were also able to prove through measurements with Tideways in some of our stores that 50% of the loading times (TTFB) are only used for file I/O. And that for standard calls in the area of file operations such as file_exists(). This is due to a bug in PHP.

We were able to establish two solutions for this:

Store monitoring with Tideways

Tideways is a tool for monitoring, profiling and tracking in PHP. It analyzes server-side PHP processes and can analyze individual pages as well as your entire online store.

Tideways has become an indispensable tool for us to ensure that our stores are always running fast. Tideways automatically informs you about errors that occur in the store (which you probably won't even notice, but your customers will), about slow pages in your store and about downtimes. Profiling and tracking helps technicians to isolate the problem areas and minimizes the time between the occurrence and elimination of a problem.

Do you need help setting up or using Tideways? Feel free to contact us.

Mod pagespeed

mod_pagespeed is a free tool developed by Google to automatically optimize the usability and performance of websites for mobile and desktop applications. The open-source module automatically applies best practices for web performance and related aspects such as CSS, JavaScript and images without you having to change existing content or workflows.

Mod PageSpeed is based on the PageSpeed Optimization Libraries, which are deployed on over 100,000 websites via well-known hosting and CDN providers such as GoDaddy, EdgeCast and DreamHost. There are currently 40 optimization filters available, such as image optimization and resizing, minimization and inlining of CSS and JavaScript, cache expansion, domain sharding, domain rewriting - the optimization options here are wide-ranging.

A good host will provide you with a config that is already optimized for Shopware.

AMP (accelerated mobile pages)

AMP, or Accelerated Mobile Pages, is a tool that emerged from a collaboration between Google and Twitter. AMP is also an open source project and is designed to help you optimize your mobile content and websites, make them faster and thus create a better user experience. AMP opens a page in two steps - immediately after clicking, the parts of the website that are important to the user are visible, after which the rest of the page is loaded unnoticed. This keeps the amount of data low at the beginning and improves the loading time of the website on the mobile device. As Google studies show that the bounce rate of users increases to up to 58% if the website takes too long to load, AMP is the perfect tool to prevent this and improve your pageviews.

Ready-made plugins are already available in the Shopware Store.

Elasticsearch

Elasticsearch is perfect for online stores that have an extensive product range with several thousand items. Search queries on classic MySQL databases can become really sluggish here, which significantly impairs the user experience and is therefore reflected in the conversion. Even with millions of articles or a high volume of visitors, a search realized via ES is usually extremely fast and scalable.

But what exactly is Elasticsearch? It is a search engine that is based on the Apache Lucene program library and stores documents so that they can be searched quickly and easily. The documents are the smallest unit of the system. Each document is indexed at the beginning. ElasticSearch then divides the index into several shards, which in turn are distributed to several servers (nodes). As a result, the computing load is distributed across various systems and the failure of individual servers can be easily bridged. The aforementioned index corresponds to a classic SQL table and the document to a table row. The Elasticsearch software is written in Java and uses the JSON (JavaScript Object Notation) data format to store documents.

If you would like to find out more about Elasticsearch and Shopware, you can find further information in the Shopware Docs.

Redis Cache

Redis is characterized by very simple data storage in the form of an extremely efficient key value store. Not only large online stores should always focus on maximum performance. Redis offers stability, scalability and the necessary performance.

In Shopware online stores, the application cache and an additional model cache can be made available with better performance using Redis. Sessions can also be stored in Redis, which makes perfect sense as they are otherwise stored in the MySQL database with relatively poor performance. The installation can be carried out very easily via config.php. Many established hosters offer suitable hosting including Redis.

You quickly realize that the topics are not easy to implement, even for experienced developers. The EXWE Shopware agency team will be happy to help you with all questions relating to e-commerce and increase the success of your company with targeted support.

* Source: https://bugs.php.net/bug.php?id=77406

Was ist dein Projekt? Wenn du uns darüber erzählen möchtest, rufen wir dich zurück!

 
Meike
Meike
from 08.09.2020

Hello, my name is Meike. I take care of the EXWE back office and am responsible for our social media channels. All of our articles are meant to make your life easier and help you make decisions. Nevertheless, it can happen that something remains unclear, so: If you have questions about this article you can easily reach me at +49 231 93149827.

Du möchtest immer am Zenit der Technik bleiben? Keine News und Blogbeiträge mehr verpassen.
We also have the following interesting posts from our tech blog for you on this topic
JTL Connector: How to prevent overwriting during sync!

Our solution to the problem - what you can do if the JTL Connector causes problems with Shopware.

Shopware 6: What are dynamic product groups?

What are dynamic product groups in Shopware and what can they be used for? And how can you create them? You can find out all this in our article.

Optimize Shopware cookie banner for tracking

Interview with Johannes Meibers. The cookie banner in Shopware has a strong negative impact on tracking, e.g. in Google Analytics. With a solution!