In our lives, it can be hard to switch modes. When I was a student, attempting to survive on a ridiculously tight budget, I developed frugal habits. I would buy my groceries in three different supermarkets, each of which happened to be cheaper for particular items. It saved me about 20% but took twice as long as shopping in just one supermarket. At that point in my life, trading time for money was a worthwhile exchange.
Years later, however, when I was working and earning good money, I still had the habit of shopping around and finding the best bargain, even though the time I wasted was now more valuable than the money I saved. I was stuck in a student mentality that was no longer appropriate. I had failed to switch modes.
Many people who now make a good living from WordPress initially got into it because it was free and had an active, dynamic eco-system of plugins and themes which were also free. There was no financial barrier to entry and, once we started working for clients, those early clients were just as excited as we were about it being free.
WordPress has just turned 15, and a lot has changed over those years. The momentum of those early years grew and grew, beyond anything any of us could have imagined. WordPress became an industry standard and even major clients no longer react oddly if you suggest they use it. It has become more capable and now runs at the heart of sites doing incredibly complicated things.
The explosion of WordPress e-commerce has been the biggest surprise, with a staggering 42% of all online stores now using WooCommerce, dwarfing fellow Open Source competitor Magento at 4%, and hosted, heavily marketed competitor Shopify at 7%.
The impact of WooCommerce on people making their living from WordPress has been profound. People who had built a reasonably good living around building regular WordPress sites suddenly found themselves in prime position to make far more money building online stores, either for clients or for themselves.
With the full force of new owner Automattic (owner of WordPress.com) behind it, we can expect WooCommerce to continue growing, but there is one elephant in the shopping basket which we must acknowledge.
WooCommerce is more than just its code, more than just the team that makes it, more even than the thousands of coders and designers who produce third-party plugins for it. WooCommerce is also the millions of people who use it to make their online stores or to implement them for clients. WooCommerce is you.
The decisions made by we end-users of WooCommerce have an impact on whether it can continue to grow in the face of fierce competition from rivals. Looking at most WooCommerce sites today, it is clear that many WordPress professionals are still using the same sort of cheap, substandard hosting that was passable for regular WordPress sites but is simply unsuited to the far greater demands of e-Commerce.
Even though they are now earning more money than before, and even though it is clear to everyone that performance is vital in the case of e-commerce, most site developers have not yet made the mental jump to accepting that they need not just better hosting but hosting that is specifically optimized for WooCommerce.
WooCommerce is a Different Beast
Compared to static HTML pages, WordPress itself is relatively resource-intensive. Even on a new install of WordPress without any additional plugins installed, creating the home page requires 27 queries to the database. Even additional page component requires additional queries, so, it would not be unusual to see a page pulling 60 or 70 queries per page load.
Luckily, this burden can be reduced somewhat by caching the pages once they have been constructed once, meaning that subsequent visits to the same page within a certain time period do not need to repeat the same queries.
Any form of e-commerce is going to be massively more resource-intensive. Typically, a single product will require around 60 database queries, while tracking the actions of the user requires even more. Databases tend to balloon in size when used for e-commerce because there are so many details per product and per customer. The bigger the database, the more time it takes to complete queries.
Worst of all, you cannot cache e-commerce in the same way you can to regular content sites. It is vital that all the information being displayed to the visitor is up to date, the store owner could get into an awful mess if the product pages are displaying cached versions of the price or stock availability. You certainly cannot use a cached version of the shopping basket, customers would get upset if the product they thought they were buying does not show up there. E-commerce is unavoidably more dynamic than regular content sites.
So, in comparison to a WordPress site used for content alone, a WordPress e-commerce site will be, absolutely, a beast. No matter what the hosts say, it is not a good match for regular WordPress hosting accounts which have evolved over the past decade or so to cater to regular content sites with as few resources as they can get away with.
It is not entirely the hosts’ fault. We have come to expect to pay a certain amount of money for “WordPress hosting” and, in our minds, such hosting should be able to handle any WordPress theme or plugin. So, yes, the hosts have learned to highlight WooCommerce as one of the possible uses of the accounts they sell.
We want to believe that a $30 managed WordPress hosting account is going to be enough – I mean, seriously, $30 per month is a significant amount of money, right? – but we end up screwing ourselves or our clients. When a regular content site has insufficient resources, your pages load more slowly and, sure, a few visitors might be frustrated enough to leave, but it is not the end of the world.
In the case of e-commerce, however, you are trying to convert the visitor into a customer by moving them along a particular path. Slow page loads will undoubtedly give the potential customer time to rethink their purchase but the real worry is that the resource squeeze will affect the actual transaction which is, itself, a resource-intensive operation. If a customer has entered their credit card details and is then confronted with a page error, well, you have probably lost that sale for good.
The Sticky Problem of The Database Schema
Every application uses its database in a certain way. When you install WordPress, it sets out a specific table structure that the creators of WordPress feel is well-suited to the queries that a typical WordPress site will receive. The particular layout an application uses is called its database schema.
On a recent episode Mastermind.FM podcast (Episode 93 – Pippin Williamson on the Why, When and How of Easy Digital Downloads 3.0), Pippin Williamson, the maker of another major WordPress e-commerce platform, Easy Digital Downloads, talked about how, when he originally created it years ago, the general consensus was that all WordPress plugins should use the existing WordPress database schema.
Over the years that followed, and after many thousand support tickets, Pippin came to the realization that the WordPress database scheme is simply not suited to e-commerce. He had to make the painful but necessary decision to completely overhaul his product’s internals to use a new database scheme, one more suited to the needs of e-commerce.
Overhauling a popular plugin that so many people have built their businesses upon is no simple matter. He started by rewriting just one add-on, their Software Licensing add-on, introducing entirely new tables. This significantly improved performance and added greater flexibility and control for future enhancements.
That level of improvement is necessary if WooCommerce is to remain dominant. WooCommerce 3.0 did introduce CRUD (Create, Read, Update and Delete) interfaces to unify the way in which WooCommerce data is stored and retrieved, but orders are still stored as custom post types. This means that a single order will create 40 post meta entries, meaning 40 new database rows. If you have even a dozen or so order per day, your database will rapidly balloon to a ridiculous size.
To give you a sense of just how unwieldy the regular WordPress database schema is, many larger WooCommerce stores use a separate product called Glew to handle the product analytics they need to see which products and bundles are doing well. In theory, you can search for this information directly in WooCommerce but it is incredibly slow.
The creator of Glew realized that it made more sense to create an entirely separate Laravel application, with an optimized database scheme, to store the same information and construct reports far more quickly.
The team behind Liquid Web Managed WooCommerce Hosting are widely recognized to be leading the way by introducing their own custom modification to the WooCommerce database schema. They are sharing the fruits of their efforts with the WooCommerce community as a whole. For instance, they have made their WooCommerce Custom Orders Table modification available to everyone, for free, on Github.
If you are accustomed to paying for regular WordPress hosting, the Liquid Web WooCommerce hosting plans are eye-wateringly expensive: they start at $152, but this the sort of level we need to be thinking of for adequately resourced, expertly customized and properly managed WooCommerce.
The Reality of WooCommerce Hosting Today
Hopefully, in time, we will see other hosts adopt and improve upon these innovations, while also increasing the resources they make available to their customers, and this should increase the options and lower the prices for suitable WooCommerce hosting quite a bit, but, right now, we have to be realistic about what is available to us today.
All of us in the self-hosted e-commerce industry need to make this shift to understanding that, if we want to compete with hosted solutions such as Shopify, we need to stop hobbling our efforts. We need to make a mental break from hosting that is designed to do something else, hosting that is sold to us as suitable but that, in reality, falls apart once your site starts attracting moderate traffic.
In how we present WooCommerce to our prospective clients, we must resist the temptation to fall back upon the easy message that “WooCommerce is good because it is cheap” and, instead, focus on the more important, long-term advantages of control and customizability. We must be honest – to ourselves as much as our clients – that a serious online store, with significant traffic and a real business behind it, is ultimately going to require hosting that costs at least as much as the hosted alternatives.
Of course, there is also the option of running your own dedicated server and committing yourself to keeping up with the latest advances in WooCommerce database customization, but that does require a substantial amount of server admin and coding experience. As someone who has spent two decades managing my own servers, that is indeed a tempting thought but, when I add up all the time it would take, it quickly becomes apparent that it would be a false economy.
Again, I hope that properly resourced, customized and managed WooCommerce hosting will become less expensive over the coming years but, right now, if I had to set up a new online store, I would bite the bullet and pay for Liquid Web Managed WooCommerce hosting.
The great thing about WP Mayor is our readers. The WordPress community is extraordinarily varied, with people doing every imaginable thing at every level, and the comments they post here reflect that range of experience.
Some of you have already encountered the problems mentioned in this article and, I am sure, have come up with perspectives and solutions that would be helpful.
We would love to hear about your experiences with hosting for online stores, where that be with WooCommerce or Easy Digital Downloads or any other WordPress plugin, or even your experience with hosted online stores such as Shopify or SquareSpace or any provider.