We have been managing the online store of Baby Kochs GmbH for a long time. Its sales have increased by almost 300% in May 2022 compared to the previous year. This trend has been going on for some time now.
What is special about the performance needs of this store is that Baby Kochs operates successful influencer marketing. This means that, on the one hand, the store runs a constantly increasing load with the corresponding required resources, but on the other hand, it has to withstand unpredictable load peaks as soon as the influencer marketing hits the store briefly and heavily in the form of traffic.
To ensure reliable business operations, we perform monthly updates for WordPress Core, themes and plugins. Here we switch the store into a maintenance mode, create a backup and update all updates including database changes. Afterwards we check the store for appearance and functionality before we deactivate the maintenance mode. This works without any problems in about 95% of all cases.
Sometimes, however, it is necessary for us to restore backups. If that happens, we explicitly check on a staging what caused the problem. Only when we could clearly identify and fix what went wrong the first time, we start the next update attempt for the live area.
What makes updates or maintenance intervals so demanding for high-traffic online stores is that no orders should be lost. This is like trying to shoe a horse at full gallop. A few hours of lost orders, for example by restoring a backup, means lost sales and disappointed customers.
The technical basis of the store is WordPress with WooCommerce in managed hosting at Raidboxes.
We have come to the point several times where the booked tariff was suddenly no longer sufficient as part of an influencer marketing campaign. Thanks to Raidboxes‘ excellent and responsive support, we were then able to switch to a stronger tariff within minutes. This flexibility certainly saved us some revenue that would otherwise have been lost.
There are more than thirty components and plugins involved in this online store.
- WordPress as CMS
- WooCommerce as Shop-Plugin
- Germanized Pro for eCommerce-compatibility to German law
- Elementor (Affiliate-Link) as Pagebuilder
- Crocoblock for several shop functions
- YITH as Wishlist
- NETS Easy as Payment Gateway
and several more.
Many plugins always means many updates and many functional interfaces where problems can arise. To ensure that the store usually runs smoothly, we perform updates once a month and supervised.
In this particular case, we had turned on the maintenance mode as usual, applied all updates, checked look and functionality – looked good – and turned off the maintenance mode again. About a quarter of an hour later, the store was no longer accessible.
What happened? At the time of the maintenance work, an influencer had posted on Instagram about a product in the store. As a result, traffic was unusually high anyway. We initially tried to slay the problem with more power to buy time. Together with Raidboxes, we upgraded the tariff to Enterprise XL with available 36 CPU cores and 64 GB of memory.
However, that alone did not help in the long run. Raidboxes checked and found that one of the freshly updated plugins must be causing slow queries. This was causing the database queries that could not be served to be stored in a temp directory that was slowly filling up. So we had to identify the plugin that was responsible for the slow queries to really solve the problem.
In parallel, Raidboxes support and we set out to find the culprit of the Slow Queries. We used from WordPress plugin Query Monitor and Raidboxes their server tools. Almost at the same time, we tracked down the culprit:
As soon as we deactivated the JetThemeCore plugin, peace returned. Fortunately, we were able to quickly replace the functions and templates provided by the plugin.
Even with a careful approach, updates always carry a risk in high-traffic eCommerce. We want to keep downtime as low as possible and with many plugins involved, the probability is high that there is a bad apple in the basket. Not doing any updates is of course not a solution either, as especially the permanent development and improvement of WordPress components is a valuable investment we want to participate in.
We need to make updates, using professional procedures such as backups, staging and/or data migration where appropriate. However, some issues, such as slow queries, only show up under the weight of business traffic. Then it’s good to have competent administration on the project that can quickly identify and fix the problem.
To reduce complexity and improve performance, we are currently in the process of phasing out Crocoblock from the stack. The complementary and overlapping features of Elementor (affiliate link) and Crocoblock present a potentially problematic interface. In the process, we are moving the functionality originally provided by Crocoblock components to Elementor (affiliate link), other plugins, or custom code.
Do you need a problem with your WooCommerce shop fixed? Or do you want to optimize performance and turnover? Feel free to
We can help with that.