Mon–Thu 09:30–17:00, Fri until 15:00

Bargteheide 04532 408 99 95Göttingen 0551 890 64 000
Shopware

Shopware 6 slow: how to optimise your Shopware shop

By Redaktion Web Labels Published Updated

Featured image: making Shopware 6 faster, server and frontend

This article was published on 22 Mar 2022. Software and regulations change, so please check details before you decide.

UPDATE 2026

This article has been replaced by our new performance guide.

All the tips from this article plus current optimisations for Shopware 6.5 to 6.7: OPcache and JIT, Redis, OpenSearch, PHP-FPM tuning and more, with concrete configs you can adopt.

Go to the 2026 performance guide →

Freshly installed, full of energy, and the backend is only half as motivated as you are? As a Shopware 6 agency, we know the day-to-day problems with slow backends only too well. They also affect the performance of your frontend and sometimes your Google PageSpeed score. That is why we want to share our experience with you here and put together a checklist that we keep extending for Shopware 6.

Basic server settings for Shopware 6

Nginx is usually considerably faster than Apache2 and can also handle more requests and visitors in parallel. Hosting providers such as us, Timme Hosting and Schaal IT rely on Nginx for Shopware solutions and do very well with it. If your provider uses Plesk as its control panel, you can usually switch between the two and should simply benchmark the setup in a test environment.

PHP version and settings for Shopware 6

PHP 8 is a must and should definitely be used. If you work with PHP 7.4, you have to live with considerably worse loading times. If your shop does not run on PHP 8, create a copy in a test version and check which plugins are not compatible. Then look for alternatives.

PHP configuration in detail

With the following settings in php.ini, we achieved the best performance in a normal shop with 5 to 15 plugins and 2,000 to 3,000 products:

post_max_size = 100M upload_max_filesize = 100M

max_execution_time = 1200 max_input_time = 1200 magic_quotes_gpc = Off file_uploads = Yes max_file_uploads = 20 short_open_tag = On

phar.readonly = off session.auto_start = off suhosin.session.cryptua = off zend.ze1_compatibility_mode = off max_input_vars = 6000 display_errors = Off log_errors = On error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED memory_limit = 2048M upload_max_filesize = 64M post_max_size = 128M opcache.enable=1 opcache.memory_consumption=1024 opcache.interned_strings_buffer=64 opcache.max_accelerated_files=15000 opcache.revalidate_freq=0 opcache.fast_shutdown=1 opcache.enable_cli=1 allow_url_fopen=1 max_execution_time = 3600

(Bold = particularly important, but also requires sufficient server capacity)

Please use opcache.revalidate_freq=0 FOR LIVE OPERATION!

You should also contact your provider and have the database additionally run via Redis. From now on, loading times in the backend should be a thing of the past. If your shop still remains sluggish, it is time to examine the environment. If you use shared hosting for €15 to €30, the hardware is probably simply overloaded. Your environment should have 4 CPU cores or more. We are also not fans of virtualisation and recommend dedicated hosting at the latest from a daily turnover of €5,000 to €10,000, so that the hardware performance belongs to you alone.

Setting up Shopware 6 cron jobs

Shopware needs several cron jobs to run properly.

  1. Scheduled tasks (so that the system runs as it should): at least every 2 hours!
  2. Clearing the cache: Shopware 6 does not clear the complete cache by itself, so the system keeps growing. We recommend clearing it once a week, e.g. on Wednesday mornings at 3 am. (See also the Shopware 6 documentation: clear cache automatically)

Make sure your cron jobs have timeout limits. Otherwise the cron jobs can run forever and fill up the system. Configuration and setup depend on your hosting provider.

It is important that you can set a memory limit (e.g. 2048 MB) and a time limit (e.g. 7080 sec.).

Optimising Shopware 6 frontend performance

After the basic optimisation of the hosting environment, it is time to optimise the frontend.

We won’t go into detail on basics such as optimising images. Still, you should keep an eye on this, because the right file size matters. More interesting, however, is whether you already offload your images to a CDN. Services such as Kraken or Cloudflare are suitable for this, with Cloudflare being the more interesting option in terms of overall optimisation (there are of course other plugins that can support Shopware 6 here). Since Cloudflare requires the least effort and delivers the best result, we recommend setting up this basically free service.

The benefits of the free version already include:

In short: all you have to do is register your domain via name servers and then manage the records from there. The domain itself remains managed by your provider. This takes additional load off your server, and requests are served from the DNS cache, which further shortens response times.

If you want to make things easy, book the Pro version for around €20 a month and benefit from further optimisations as well as conversion of images to WebP in lossless or, optionally, lossy quality. WebP is the current standard for image optimisation in browsers and therefore displays the optimal version of your images. Thanks to Cloudflare, nothing has to be converted by hand; it happens automatically. Your original images remain in the Shopware shop.

  • Extended caching outside your server, so data is delivered faster
  • HTTP/3 support
  • Gzip
  • Compiling and merging CSS and JS files
  • DNS caching
  • Anonymising your server
  • and various other tools

Lazy loading for your Shopware shop

With lazy loading, images are loaded later, and your shop has to load less data initially to display the frontend. This pleases not only visitors but also the Google PageSpeed score.

But pay attention to how this interacts with other tools. In our test, we noticed that delivering directly via Cloudflare without lazy loading gave the better result. However, this varies from project to project!

Please bear in mind that these are our recommendations and that we cannot, of course, accept any liability for problems or the like.

Further steps will follow here gradually.

Performance additions from 6.4.18 to 6.5 and 6.6

Server optimisation:

  • Connecting a Redis database is a game changer for frontend and backend (follow the Shopware documentation here: performance tweaks)
  • Elasticsearch from around 7,000 products for the backend/admin and frontend ensures searching without loading times and faster loading of product categories in the frontend
  • The free Tools plugin shows you where the problems are, directly in the backend:

Shopware 6 performance check in the free Tools plugin: PHP settings, Redis, message queue and Elasticsearch with current and recommended values

Planning something similar?

Tell us briefly about your system and your goal. We will get back to you with questions or a proposal.

Request a project

More articles on this topic

All articles: Shopware
Up to 80% government funding