Developers Drilling in On WooCommerce Performance

Do the Woo Podcast Guests Carl Alexander and Till Kruss Episode 161

Do the Woo - A WooCommerce Podcast
Do the Woo - A WooCommerce Podcast
Developers Drilling in On WooCommerce Performance
/

In this show we pulled together an impromptu conversation with two developers in the space. Needless to say, it turned out incredibly geeky. Carl Alexander from Ymir and Till Krüss via Object Cache Pro, sat down with Zach and Jonathan to dig deep into WooCommerce and performance.

If you want to get a good grip on the nuances of Woo and mastering the performance while going deep into the developer brain, this show is for you. And you can expect more of these kinds of conversations coming your way in January.

Connect with

  • @tillkruss
  • @twigpress
  • Object Cache Pro
  • Relay Cache
  • YMIR

Highlights of the chat with Carl and Till

  • What performance means for an e-commerce store [01:55]
  • Subscriptions and when renewals are hitting all at once [04:45]
  • The direction of WooCommerce and performance in core [08:15]
  • Carl gives us some context around Ymir [10:14]
  • How is performance degraded and how can it be avoided [15:25]
  • Some trends in the hosting space and is it moving in the right direction [16:35]
  • Edge cases and pushing things forward [25:10]
  • Scaling approach and loads [25:55]
  • Performance, WordPress and where the blame lies in inefficiencies [33:10]
  • The education of performance [38:01]
  • Scaling and customer success for the future [40:15]

Mentions in the show

Why serverless is the perfect hosting solution for WooCommerce

Woogo Stores

Craftpeak

Unacceptable

Thanks to Our Pod Friends

Klaviyo-600x600-1.png

Woo Builders can learn about 5,000 online shoppers who shared how they shop and prefer to hear from eCommerce brands in the 2021 Klaviyo Consumer Report.

JetPack

The Jetpack backup plugin saves every WooCommece update and sale in real-time. This means that you can catch the smallest issue or change if things go sideways

Zach: Welcome back to Do the Woo. We are on episode 161. I'm one of your co-hosts today, Zach Stepek. And I'm sitting here with a great panel of people. Let's start with my co-host for today, Jonathan Wold, how are you today?

Jonathan: Zach, I am fantastic. It's great to be here.

Zach: As always. It's good to do one of these together. I don't think we have, yet.

Jonathan: We've been flirting with it for a while. Finally making it happen.

Zach: Yeah, that's always a good thing. The snicker you heard in the background there, was Carl Alexander. Carl, how are you?

Carl: I'm good. I'm glad to be here. Excited for this conversation.

Zach: Oh, I wonder what this conversation's going to be about. Jonathan, who else do we have with us?

Jonathan: We have Till Kruss with us. And he's perhaps another clue about the topic.

Zach: I don't know. I don't know. I mean, we have Carl, who's been building Ymir. We have Till, who's been building relay cache and has been working on Redis Object Cache and Object Cache Pro for a while now. Me, who's been obsessed with WordPress and WooCommerce performance for as long as I've been in the WordPress space. What do you think we're going to talk about today?

Jonathan: I'm feeling this kind of performance vibe.

Zach: Yeah, little bit, little bit.

Jonathan: And Zach, one of the things I love about this topic, too, is that is perception versus reality, right? There's a perception about WooCommerce, especially at the higher end of like, "Oh, maybe it can't handle performance at scale." Whatever that might be. We know the reality isn't true. There are some fantastic things that you can do. Oftentimes, people aren't aware of the options. And I think there's a great opportunity to shine some more light on what you can do, so.

What performance means for an e-commerce store [01:55]

Zach: Well, and I think the interesting thing, if we look at this and let's just start with this as a topic, what is performance for an e-commerce store? Is it the number of page loads the store can handle? Is it the number of visitors the store can handle? Is it the number of simultaneous checkouts the store can handle? What is a true metric of performance? And I'll throw that out there for everybody to comment on.

Carl: Yeah, I think based on what I'm seeing, so with Ymir, just with the sales, and I'm going to use your example because I think it's really good, Zach. But I think it's usually checkout is really what you're worried about for a WooCommerce store, because if your checkout goes down, if a potential customer is coming to me and they're like, "We're doing sales." And once we send the newsletter out, our site gets swamped and people are trying to check out and they can't, we're losing, like your example is great that we're losing $8,000 a minute because the customers can't check out or the entire storefront went down.

I think, to me, that is really what you're looking to test. I had a sales call yesterday about Ymir, and I've said, "Whoever you pick, make sure that you do load testing to make sure that the checkout works with the volume of transactions that you would expect." And I think that's the critical aspect to an e-commerce store because you're working on sales. You're not working on page use. Page use is nice, but you want people to check out and buy your merchandise. So that's the critical aspect to check.

Jonathan: It's like this challenge of literally being able to take their money, right? When it comes down to check out, it's like, that's a terrible wall to hit where it's like, people are trying to give you money and you can't take it at that moment.

Carl: Look at Apple on Monday and their e-commerce just went down. People were trying to check out and complaining. They're like, "I got it for last week of October. I got it." And then it's like, by the time they got to checkout, it's mid-November because the whole thing collapsed, because that's really the weak area of any e-commerce. It's not specific to WooCommerce. It's an e-commerce problem. Like, whether you're using Magento.

Zach: Yeah, it's friction.

Subscriptions and when renewals are hitting all at once [04:45]

Jonathan: Specific to Woo, one other thing, so check out, I think is a great example. Something that Till brought to my attention that I hadn't thought about it as much is when you're dealing with a subscription business that's based on WordPress and you're dealing with a simple thing, like renewals, but a bunch of renewals are hitting at once, you can run into pretty frustrating situation where it's not just checkout, but also Woo continuing to do its thing after the fact if you're using WordPress to like process all of that. Till you want to touch on that?

Till: Yeah, I'm actually going to go one step further back here. One thing is can you take people's money when they give it to you? And what I see a lot is, how fast can you take it? Because like apple on Monday, when you have a 15 second page load time, unless you really want that new MacBook pro M1 Max, whatever the name was, you also need to serve these pages and the checkout can't take 10 seconds to load. And that expands Zach's question of, what is performance? Where you have the time to first buy it from the server. How fast do assets load? How fast is your computer or phone to handle it? There's a lot to it.

And then to address the renewal question, we had one customer, which actually inspired the whole Object Cache Pro endeavor, they had 20,000 subscriptions in WooCommerce and they would renew every Saturday. They were doing foods, like CrossFit people getting meals delivered at home. And they had 20,000 subscriptions renewed every Saturday. And without having an Object Cache, their subscription just wouldn't renew, which is another little bit of a wonky point of WooCommerce, in that sense. Yeah.

Zach: Well, and even back a couple years ago, three years ago now, there was a track ticket in WordPress Core that had been sitting around for, at that point, six years, adding a pre WP unique post slug to override the post slug handling. It's track 21112, if you're interested. And I remember that because it's a really easy track ticket number to remember, and because it was the easiest way to shortcut what was happening in WooCommerce subscriptions for renewals. So, that WP unique post slug call was causing subscription renewals to take days on sites that had tens of thousands of subscriptions. And so being able to short circuit that, we were able to increase the speed with which renewals happened by 14 times, I believe.

Jonathan: It's things like this that, on the one hand I could see frustrating folks who are considering SaaS platforms, right? Where like, why is this even a thing, right? Some of these little gotchas. On the other, it's like, it's very easy to underestimate just how big WordPress and WooCommerce are. And yeah, there's a bit more work in figuring some of these things out. And we can, I think, all hope that these issues become just less and less over time as folks like the ones that you have all worked with in different degrees, push the edges. And because it's an open source ecosystem, ideally a fair amount of those edge pushings end up being brought back into it.

The direction of WooCommerce and performance in core [08:15]

How do you guys feel WooCommerce, as a platform itself, is doing over these past couple of years? Do you feel like the core product is improving, in terms of performance? What's your feeling about the direction we're going?

Zach: I think the indices that were added helped with performance with the majority of sites, but hurt performance with the fringe sites, the more trafficked sites. So, because those indices just don't cut it on some sites. If they have a certain level of traffic, we just need to override those because they get bloated and they get too big. And then the index operation is taking longer than the query would have.

Till: I think it's a very individual. Some sites, you set them up, you have your flash sale of a thousand people on the site and it just, it works. WooCommerce manages others needs custom database indices set up, removed, and so on. Others just need a, "Hey let's throw of page cache." And they just relieve the server for anonymous traffic. Every WooCommerce site seem, or not every, but most seem so unique that finding the right strategy of what actually is the bottleneck. Like Carl mentioned, benchmarking these on a staging side or in downtime, actually putting this under load and see what part of the infrastructure. Is it WordPress, is it, not going to hate on any plug and see is it plugin number X over here slowing everything?

And Carl is laughing about that. Or is it maybe my SQL is not fast enough. And really finding out what's the big bottleneck where you can get a 10, 14 X improvement with one or two small changes, or bigger changes? But finding that out for the individual site and the individual setup, I find this is usually my first step. It's important.

Carl gives us some context around Ymir [10:14]

Jonathan: Carl, so with you, with Ymir, could you give us some context for those who don't know what it is?

Carl: Yeah. So Ymir basically a serverless platform for WordPress. So, it's probably a bit out of scope for this podcast to explain what serverless is but, basically, it allows you to scale WordPress on demand. So what's really powerful with WooCommerce with this is that WooCommerce is very PHP dependent for performance. There's just reality is with caching that are very different with WooCommerce, which is why a lot of the large hosting companies have either dedicated e-commerce plans, or they don't support it super well because it's so much more. When you're running a regular WordPress site, you can put a page cache in front and you'll solve 90% of your scaling problems, or performance problems. With WooCommerce, you might have noticed so far, we've talked a lot about checkout, carts, things like that, those are all things that you can do some cashing about, but you can't do that much.

And with Ymir, what it lets you do is scale that PHP side, basically to untouched levels in the WordPress space. I've scaled checkout to go from zero to 3,000, actually, people checking out at the same time in a minute. So we're really talking scaling scenarios that a lot of people are worried about because in e-commerce, you're dealing with sales. Just even if it's just one day a year and it's your black Friday sale. A lot of e-commerce income is seasonal. So I work with a managed hosting platform called Woogo Stores and they have a candy store and right now is the Halloween. So Halloween is the time of the year when you need to be able to be able to have your store online because that's when you're... If your store's down, that's like you're losing a lot of money.

And it's those critical aspects. And oftentimes, from talking anecdotally to a lot of customers with all the major hosting platforms, it's that those scenarios that they're not prepared to handle. But for e-commerce hosting, that's literally your number one job. Who cares if you have page caching when nobody's visiting your site? It's when you're sending that newsletter and you have a 1,500, 15,000 newsletter, you send a sale, "Hey our stuff's going on sale." Everybody's coming to your site. It goes down. You're like, "Oh my God, this is what I needed my store to be on for." And Ymir has customers that they're paying five figures a month for hosting and these scenarios still happen, and it's unacceptable. And that's what Ymir really tries to solve on the eCommerce side, specifically.

There's advantages for everyone because you don't have to manage a server anymore. So it's like a lot of things that you stress about are gone. But for WooCommerce, specifically, I'm dealing with a lot of customers, or inbound inquiries around of that because you lose so much money. And that's the only time, for a lot of businesses, that's the most important aspect of your WooCommerce, those things.

Zach: Yeah, I was listening to a presentation by Ezra Firestone very recently. And he was saying that one third of his company's income per year happens in the last quarter. So one third of his income happens between black Friday and Christmas day. That's insane.

Carl: I wouldn't be surprised. That's a large majority of e-commerce sites.

Zach: Right.

Jonathan: Till, one of the things I love about how you positioned Object Cache Pro is around this idea of just avoiding outages, because that's the heart of this, right? It's the worst thing that could happen to an e-commerce store, is to have an outage during a time when people are buying. It's the worst thing. And we kind of just accept it sometimes like, "oh yeah, they're down." And yeah, that's kind of cool? Yeah, it's really bad.

Till: To quote Carl, it's unacceptable.

Carl: Yeah.

Till: Which, by the way, can I just chime in here? Do you guys know Adventure Time, the cartoon? And there's Lemongrab.

Zach: Oh yeah.

Till: When he says, "This is unacceptable." I'm not going to imitate the voice, but I'll send you a meme later about this.

Zach: Please do. We'll try and get it in the show notes for everybody.

How is performance degraded and how can it be avoided [15:25]

Carl: But that's another aspect of performance, as well. Is how do you degrade performance? Because that's another advantage with Ymir, too, is like one of the problems with traditional servers is that when the server starts to break down under load, everything kind of collapses. With Ymir, the worst that can happen is you run out, your database gets overwhelmed and then you're going to get database connection errors. But the people that already had their page loads, they'll keep loading. So, there's obviously calibration you can do about that, but you're not having to worry. I'm a consultant and one of the things that I try to make sure when I'm dealing with customers is that the server doesn't collapse under load. Which is another problem that you might have. Regardless of whether you can handle the scale or not, I think it's important to think about how the whole thing degrades. Obviously you don't want to, but if it happens, you want to be sure that things degrade in the best way possible, I should say.

Some trends in the hosting space and is it moving in the right direction [16:35]

Jonathan: Carl, one of the things that, so with Ymir, what you've done, I love the open approach that you take to it. I want to ask you, take off your Ymir hat for a moment and if you think about the ecosystem broadly with hosting, because obviously yeah, people could work with you. There's a lot of different options out there. What have you noticed of the trends in the hosting space for WooCommerce? Positive, negative. Because we see some of these issues and we see that what works well for WordPress, broadly, like of the page caching approach just doesn't work for Woo. How do you feel about the what's happening across the word, like WooCommerce hosting broadly? Is it a good direction? How do you think about that?

Carl: Well, I mean, me and Zach have discussed it before. I think one of my probably biggest pet peeves with the e-commerce hosting ecosystem as a whole is the whole pricing thing. How they handle pricing. Because we just spent a good amount of time talking about what is critical for an e-commerce site. It's like, how do we handle load or a surge of customers. And a lot of these e-commerce, I'll name a couple. They're just the top of mind, it's not to just single them out, but WP Engine, on their e-commerce site does not talk about how many orders they can handle and the volume that it can handle. And Nexus does, but they're on over an hour. Like, "Oh, we can handle 5,000 orders an hour."

I'm like, "Cool. What if my 5,000 orders are in the next five minutes? Can you handle it?" I think a lot of the pricing doesn't reflect maybe what a business owner is worried about and looking to pay for out of e-commerce hosting. I feel like they kind of took what the pricing scheme was for regular WordPress site and then try to find a way to create a pricing table for WooCommerce that kind of fit that model, and went with it. But I think it shows a complete disconnect with what a successful store, especially when you're about to fork five figures a month or more on WooCommerce hosting. I don't feel those pricing pages, or their marketing, at all reflects what I would be concerned about if I was shopping or helping recommend people to various hosting companies to handle their WooCommerce site. And I'm sure Zach can talk even more about that than me. I'm just like, but that's always what I find the most frustrating looking at these offerings.

Zach: The important thing with most of the hosting plans that are out there is that what they're doing is they're selling you bare metal. They're not selling you something designed to scale e-commerce, right? They're selling you more bare metal. When you have one tool, which is to throw more bare metal at the situation, then you use that tool because it's the only thing you have. And when all you have is a hammer, everything looks like a nail, right?

Jonathan: I'm really curious, Till, you talk a lot with hosting companies, as well. And you have a sort of a view on that space. What are your thoughts? What do you see happening? Positive or negatively kind of trends for WooCommerce.

Till: Yeah, I see the demand increase over the last maybe two years. Maybe it was the whole pandemic thing. I'm not sure. But over the two last years, I see the demand and the interest of hosting companies to satisfy that WooCommerce customer need. Or vertical, they want to expand and they see it. Lots of people, they have money, they make money. It's an interesting business model. It's an interesting client. They're professional. That's definitely what I've seen. And to, to touch on what Carl said earlier, I think we both know him, Julian. I'll omit the last name here, but I saw him move from Kinsta to Cloudways to Alta. He went through like five hosts and was willing to put, again, five figures down. No questions asked. Let's make this happen. I think they host a thousand microbrew, something with hipster beer. I'm not sure.

Carl: Yeah, they're a large multi-site so they're a customer of Ymir and I'm working with them. Julian basically has a multi-site where he has a platform for microbrewing. I'm just going to explain it a bit for people listening, but he basically runs a microbrewing platform and it basically, if you're a microbrewer, you sign up and they'll host their stores and sell their beer from there. And microbrewers are very sale dependent. They'll release a batch of a new brew and it's limited quantities. It's limited production. So there's a lot of that kind of urgency to buying it. So they see a lot of that spiked traffic that we were talking about. And yeah, it was just me and Till have both worked with him, just trying to scale that platform. But it's really reflective of WooCommerce performance problems in general. He just has it on the larger scale. But none of the hosting companies. He's tried almost all of them, and then the few of them that he hasn't tried, I have anecdotes from other customers of them running similar tests.

Jonathan: I love that example because one of the things I pay attention to in this space is, I think there's a lot of opportunity around these WordPresses of service businesses. And if you focus on the commerce side of it, it makes a lot of sense, right? I love that, that you use case of like, "Hey, he's going to provide a platform that's going to facilitate sales." You then get an amplification of the problem.

Right? Where it's exponential. If you then have a WooCommerce store itself, but then you have a thousand of them within an installation, obviously it's going to have ebb and flow.

Carl: That's similar to what my friend is trying to do with Woogo Stores but he's trying to not make it run. They've had a lot of debate whether to run it on multi-site or not. The advantage of doing Ymir is you don't necessarily have to. But yeah I think there's an increasing amount of companies that are starting that will specialize in this, because it's a specialized, I think, skillset to scale.

BobWP: Hey BobWP here and I’d like to take a moment to thank to of our Pod Friends for their support of Do the Woo.

When you look for growth marketing, turn your head to the Klaviyo. Did you know that 57% of consumers on you or your clients sites are making online purchases more than twice a week? At the same time 70% of consumers in North America have data privacy concerns when they shop. What does this mean for you as a WooCommerce builder. You need to be in the know. 5,00 online shoppers shared how they shop and prefer to hear from eCommerce brands in the 2021 Klaviyo Consumer Report. You can get full access to the report by simply visiting their profile on our site at dothewoo.io/friends/klaviyo and click on the link.

We all know the importance of backups for your clients Woo shops. That is why you should consider theJetpack backup plugin that saves every update and sale in real-time. This means that you can catch the smallest issue or change if things go sideways. Be on top of it with one-click restores from any backup while keep your Woo orders up to date. Restore when you need to restore with one-click restores in their mobile app. All of this saves your customers as the average of a single minute downtime can mean a loss of $9,000. And best of all, Woo and Jetpack are both owned by Automattic, so you can be rest assured of full compatibility. Just head on over to jetpack.com/backup.

And now let's head back to the show.

Edge cases and pushing things forward [25:10]

Jonathan: When I think about the ecosystem, what I care about is are we going in the right direction? Because we're going to see more opportunities like this. So, if you take an example like that, one of the things that we get special in the WordPress ecosystem is we'll have edge cases that will push us forward, right? I remember when I worked on News Corp Australia years ago, it was one of the biggest installations at the time. And that helped push some key things forward in WordPress, because it's open source. They're like, "Yeah, we want this stuff fixed and we want it to benefit."

Do you feel, like taking that Julian's example, are the hosts as a whole learning from this stuff? Are we seeing an evolution in the right direction? Because from my perspective, a few years from now, we want this to not be issues, right? What do you think, Carl? Are we going the right direction to be able to better serve situations like this?

Till: Carl and I are.

Jonathan: You guys are. Yeah.

Scaling approach and loads [25:55]

Carl: I think what Till is doing with Relay, I mean, I'm going to write him the best case study because I think what Relay is doing is going to help a lot for WooCommerce. Because we've talked a lot about scaling and Zach mentioned the bare metal and the problem with bare metal is that you're limited by how big a server can get. So, and scaling WordPress, the way that Ymir is doing it, me and Till, I've been very stressed out about it in the past few weeks because I kind of realized that nobody's really doing it. It's kind of like, I think they have kind of hacky solutions around the problem, but nobody's really doing it. And what Till is working on, if you're a hosting company and listening to this, you're going to probably want to pay attention to it because it's going to help.

And I was talking with Matt Cheney last night, from Pantheon, who's one of the co-founders of Pantheon. And I was talking about Relay, too. And I think it's a significant, like it's a non-trivial thing that Relay does. And I'll probably be the first one to push it, but I won't be the last one to push it. Because I was like, "Have you noticed this use case?" I was telling Till, "Have you thought of this use case?" Not especially because he's focused on speed and I'm like, I'm focused on scaling and it's like solves a different problem. But I think it's going to change. I think it'll get better.

Till: And it actually, it wasn't the use case. I'll explain what. I'd love to touch up on the whole scaling approach step by step on WordPress and with a Relay, but to touch on that, the initial intention with Relay was just to have kind of the just in time of, what do we call, instantaneous notification when mid request. Let's say WordPress loads, takes two seconds to load, and one second into the request, I wanted some way to let the cache or WordPress know like, "Hey, this key just changed. Because in the last 1,000 milliseconds, on the last second, someone changed something or bought a product." Or whatever happened. I wanted this instant notification, which Relay still does, but that's a completely, such an abstract high end use case, that now the performance is actually what it really does. But what I've seen with WordPress and what I like about, in Canada, everybody says Ymir. I like that you say Ymir, actually.

Carl: I didn't use the Nordic mythology stuff just to mispronounce it. So, I made sure that I know to pronounce it before.

Till: I really like it, yeah. Yeah, what Carl described earlier is that you have one server that runs PHP, runs your web server, runs the database. Cool, you want to scale this up, you're going to have one web server and you have a separate database server to talk to each other. And you can scale this. I guess with Ymir, what happens is you have 10,000, a 100,000, however many Lambda nodes you want in parallel, but you still have this bottleneck of one database server, which you can scale a little bit easier, which is nice. And then the whole concept of object caching is that you basically, not basically, that you take a lot of load off your MySQL, your Percona, whatever you run for your SQL relational database. You take a lot of load off and you offload into Redis because Redis or MIM cache, they're all more or less the same.

You can handle a lot more requests. You could fire a million requests a second to Redis, and maybe it breaks a sweat, maybe not. They're good because they're not relational databases. And what we saw with the Relay is that even if you have your web servers, you have your database servers, and you have your caching server, Redis in this case, you would still hit certain limits at a scale of Redis needs to answer 10 gigabits per second of questions and commands. It's too much. And Relay came as an idea, or was born out of that, to just store this replica of Redis, of these WordPress objects inside of PHP, where it runs anyhow. And then you have these terrible themes that do 20,000 cache requests per page load.

Carl: The worst I've seen with the Woogo Stores is a hundred thousand for one page.

Till: For one page load, a hundred thousand cache look ups. And out of those, of how many? At least a thousand extra Redis commands. Yeah.

Carl: Yeah, 1,500 basically went to Redis.

Till: And what I see as well, over the last couple of years that I have been working with the Redis Object Cache, the free community, and just trying to make WordPress fast is that everybody gets started with WordPress because it's easy, you find the developer, you set up your multi-site and, suddenly, your business, or it turns into a business, and you have a thousand microbrew customers. But you're on WooCommerce and it works. You build a whole product for many years around this, but now you hit this limit of how do I scale this?

Zach: Well, and that's really the, the key, right? When you hit that ceiling, how do you break through it? I've been on the architecture side of this a number of times now, and looking at solutions that were available at the time for how you could get past that ceiling of performance with bare metal. And so a lot of hosting companies and a lot of solution providers have used things like Elastic Press to eliminate some of those SQL queries, and to use an index that's designed for search, but that can also, I know we all know this, but the little known feature of Elastic Press as a plugin, is that it does query override for every instance of WP query that it can.

So, that little known feature means that Elastic is handling most of your queries on your site, at that point. For the same reason, right? Elastic is going to be faster than SQL because MySQL or Percona, or MariaDB, or whatever database you're running, if it's a SQL based relational database, those types of look ups are going to be slower than with something like Elastic, or some of these new things that are available, like Redis search. Which I'm really interested in diving further into using Redis as a search appliance. I think that's a really cool idea.

Performance, WordPress and where the blame lies in inefficiencies [33:10]

Carl: But that's where having Relay is important, because what we're realizing is that there's just a lot of inefficiencies in WordPress. We just throw more hardware at the problem.

Till: I wouldn't say it's WordPress. Again, without singling anybody out, WordPress itself is actually okay. I find in terms of performance, there's really smart people working on this. It's moving really slow, like a freight train, but WordPress Core itself and the themes, they're pretty good, the official themes. But then you have your third party themes, custom made themes, and plugins.

Carl: Yeah, sorry. I should be more clear when I talk about WordPress. I just mean WordPress as an ecosystem. Yeah, I talk of WordPress as the ecosystem because I'll voice exactly what Till said, at least on the WordPress side. I know it's a bit more convoluted with the WooCommerce itself, but I think WordPress, the application is well written and performed. It's dated in terms of what PHP does now, but it's not dated in the sense that it doesn't scale, or it can't handle what it was built to do. And that's going to always be a challenge. When we talked, I think it was Jonathan that mentioned that. But part of fixing performance with WooCommerce is that there's always going to be a kind of custom aspect to it because all these plugins behave might be working okay. But depending on your storefront or your store, if you have 500,000 SKUs in your store, you have different scaling problems than somebody who has 10 items in their store, but has to deal with a lot of traffic.

Or you can have 500 SKUs and just do a couple of sales a day and you still have performance issues. They're just not the same. And that's a really key aspect where the plugins are at fault, but for different reasons. And there's just times where, like I saw with Till, where you just abuse some WordPress system too much. And you think that it's free. I think Redis is the one that I keep going back to because everybody is used to having Redis on the server and there's no latency cost. So they're like, "Who cares if I do a hundred thousand look ups? It's free. It's free." So, it's free but in reality, these things aren't free. So the more you scale, more everything has a cost. That's one of the things with scaling. So it's just things that you thought maybe were free, aren't so free anymore. But in terms of your e-commerce store, it really depends how it's structured.

Till: I think the whole performance team proposal that was recently submitted, I'm all for it. One of the things they mentioned, I'm not sure who it was. There was so many comments, but education. And educating these low level, entry level, junior, mid-level developers, how to write somewhat perform in code. We saw this the other day that some kind of form on Carl's platform, they were just setting a one second time out for object caching. I was just like, "Then why do you use it in the first place? You're using caching, but you're making the whole set of words because you're constantly writing to it.

Carl: And then they didn't put a cache group so you couldn't exclude them. Because they were just using the Object Cache as a kind of communication. Between, like it was a plugin with multiple extensions. So they're like, "Okay, we'll store stuff in cache, in Object Cache, for one second because we need it. Other parts of the plugin need it." But that's all they're using it for. It's not actually to cache anything that another request needs. It's specifically for that. So you have these kind of things where there's education. I agree with Till, education. But some of them aren't doing the right thing. It's just, if everybody's doing the right thing and you end up with a hundred thousand Object Cache hits, then it's a different... A lot of these scaling problems end up, like you can do some stuff but, at some point, sometimes you just need custom code because there's just a reality to your specific store that needs to be addressed. And in that respect, I think WooCommerce requires a lot more custom work than a regular WordPress site.

The education of performance [38:01]

Zach: Well, and let me be clear just for anybody listening to this, that that custom work comes in at higher scale. So, you get to start your business. You get to get to a point where you're making money and then once you've started to make money, you'll start to hit these walls. But it's a significant journey to get there. So I just want to be clear because I know there'll be people that'll listen to this that'll say, "Oh, well, plugins are horrible and we can't use any plugins anymore." No, that's not what we're saying. What we're saying is that most plugin developers don't see the type of scale that we're talking about, so they don't write for it. And that's where the education part comes in.

Carl: And then also we're programmers and there's something as premature optimization, as well. There's just some things that I feel, even as a small plugin developer myself, where I feel like it's not necessarily my responsibility. If you're at that scale, you're dealing with an agency or you should have some in the house. Just make sure that it's extendable. Like I talked about, there was no group for the caching. Okay, that's a big faux pas. But there's some aspects. Again, that's why I was talking about my friend who runs Woogo Stores because that's a bit what he specializes in. And same thing with Nexus. When they bundle all these plugins together, they make sure that they perform well. The that's the advantage of bundling if you're looking for a managed WooCommerce platform. And Zach can talk to about that.

But if you're looking for a managed WooCommerce platform, there's an advantage to using a platform that does kind of this bundling, from a performance standpoint. Because they're optimizing for that. So when you're looking for WooCommerce store or setting up your first WooCommerce store and you're just piecing all these plugins together, that's how you can get sometimes bitten later. It might work well to get. Like Zach said, I don't think there's ever been an easier time than right now to set up a WooCommerce store. But with success comes a cost.

Scaling and customer success for the future [40:15]

Jonathan: On the scaling side of things, I think there's two things that I think we have reason to be excited for the future. I worked at WooCommerce up until earlier this year. And I noticed that we were getting more conversations where, at the high end, people were looking. They were on Shopify and others in looking at WooCommerce at scale. And part of it is what you alluded to earlier, Carl, and we've been talking about, it's the ability to write some custom code. Because these platforms that have the scale, these proprietary ones, they can work really well under a number of different circumstances. At some point, though, there was a large subscription business that I talked to that moved onto WooCommerce because it's like the proprietary platform they were on just wasn't cutting it anymore, in terms of what they needed to do to create the best experience. So, we see that at the high end of businesses saying, "You know what? We need more ownership over the platform."

Carl: I think that's a super valid reason to use WooCommerce.

Jonathan: The other thing that I'm excited about is Woo, last year, started to invest in having a customer success team. And a lot of their focus ends up being on the stores at scale. So, from my point of view, there's still a lot of things to be done with Woo. The investments are starting to happen in the right direction, though. Where they're having those direct conversations with those high end stores. And they're finding these scaling issues. They're finding issues, but folks like yourself, Carl and Till, and Zach, there are people out there who can help address these things. And WooCommerce is finally investing in that as a direction. So, I'm really encouraged to see that. The demand is growing at the high end because of the ownership component, because of the size of the ecosystem.

Carl: Is it just for Automattic? Is it just for Automattic customers? I'm just thinking about my friend. Are they onboarding kind of like hosting? Like all the hosting platforms.

Jonathan: It's agnostic, yeah. They focus on customer success, regardless of what platform they're on, which is the right move.

Carl: Okay, that's what I wanted to learn about. Yeah, I was just curious if it was just a Automattic customer success or if it applied to the entire ecosystem.

Jonathan: It's the entire ecosystem, which I think is a great move on Woo's part.

Carl: Yeah, I think there needs to be more done about that. Just thinking about my friend, it's kind of a wild west right now. I feel like that's going to be one of the areas that's going to see a lot of development in the next decade.

Till: This might be a really interesting thing for Kevin from Review Signal to have a WooCommerce store.

Carl: He does commerce. I talked to him on the hosting thing. And when I talked about the lope tests I was doing, he was like, "Oh, this is not even remotely on the scale that Review Signal tests anything."

Till: What's the latency? What's the performance at a hundred, a thousand?

Carl: He scales over an hour. I'm like, that's not useful for WooCommerce.

Zach: Yeah, because WooCommerce just burst. It's always burst traffic.

Carl: It's burst traffic. I mean, not for everyone, but it's just for a lot of platforms. That's what they rely on. And I think that's why I talked about it a lot as my pet peeve from all of hosting companies, is that they just don't address it because I think maybe it's because the market's just really starting up. I mean, really, Nexus was there early, but I think all the players are kind of starting to pay attention to that space like you said, Jonathan. And I think it's just not well understood yet what people want. But it's clear when I talk, when I do sales calls, that they're not worried about like oh is my... Obviously they want their site to be fast. But if you dig just a bit further, what they're really worried about is, "Am I going to be screwed when that sales happens?"

And I feel like all the players, I don't even have really a lot of my marketing on that. I'm so bare bone right now. But I plan on having case studies and I talk a lot about it on Twitter. But it's just discussing that aspect. I mean, that's what me and Zach have talked so much about ever since I've been working on this. Is just that is the number one fear for larger customers. Obviously, if you're starting off with WooCommerce, it's not something you need to worry about. Just find a host that you're comfortable with. But once you start seeing some success, that becomes increasingly a problem. And I don't, think you were talking about, like I don't even know that company you were dealing with, Zach, that had a million people on their sales. I don't know who you were using for that. But I can't think of anyone that could handle. I can't think of anything bare metal anyways, that can handle that.

Zach: It was AWS with Elastic bean stock with a pre scaling panel that allowed them to add servers before traffic events.

Carl: Yeah, yeah. That's what I've heard behind the scenes that some hosts do. They don't actually have the capacity to deal with this on demand. They just kind of work with their largest customers to make sure that the capacity is there when that sales happens. So there's communication that happens, but that's not a long term solution for the ecosystem to have that.

Zach: No, it's too complex for most people to run, unfortunately.

Carl: Yeah, at some point you can't have every customer and just be like, "Oh yeah, I need to talk to you because I'm running a sale now." I'm not paying you this much to have to talk to you to run a sale. I should be able to run a sale and feel confident that this can happen or that this can hold.

Zach: I love the knowing nods coming from Till as we're talking through all of this.

Carl: Yeah, we're all nodding. There's all been a lot of nodding in this.

Zach: Yeah. We're on the right track here. This is good.

Carl: I mean, I think it's just, it's early. We're so early. I think I mentioned it earlier and I think Jonathan was also nodding frantically, but I think we're kind of early in that space. I think the next decade's going to see a lot of development for commerce hosting.

Jonathan: Well, I for one, appreciate Carl, what you're doing, Till what you're doing, Zach, to kind of keep these things top of mind. I'm really encouraged with what I see generally in this space and the maturity. And like I mentioned, the investments that Woo's making, I think we're going a good direction and it's a good foundation to build on. So we just have to keep going. Zach, any final thoughts before we wrap it?

Zach: Well, let's talk about how people can get ahold of each of you, Carl and Till, and what your products are and where they can find them. So Till let's start with you.

Till: Yeah, I don't tweet much. I like to keep it quiet, but you can find me on Twitter as Till Kruss, or put it in the show notes how to spell it. And I have objectchache.pro as a WordPress plugin to integrate Redis tightly with WordPress. Install it, you don't ever have to think about it again. And then Relay Cache, just say Relay, but relaycache.com is the domain. I think I really have to change this. It irritates me when people say Relay Cache. Relaycache.com is going to be a new PHP extension that handles these messy WooCommerce cache scenarios. But it would also work for Laravel, Symphony, Magento, et cetera. That's me.

Carl: All right. For me, I'm Carl, you can find me. I'm pretty active meming and especially with Tom McFarland on Twitter. It's @twigpress. So like a twig and then press like WordPress. Ymir, you can find Ymir app it's Ymir app. Zach Kats made me buy ymir.app But I haven't made it work yet, but it's ymirapp.com and it's a serverless platform for WordPress that runs on AWS. So, it's not hosting in the sense that you're responsible for your AWS bills. What Ymir does, is it manages this scalable infrastructure for you and lets you deploy your code on this AWS infrastructure.

So, it's got a bit of a learning curve to it but if you're an agency or you've got a more formalized development process, it's nothing new. But if you're used to like, "I can FTP and edit files." It's like, no you can't. That's part of the scaling. That's part of the solution to scaling is that once your code gets to AWS, it's kind of frozen. That's what allows it to spawn a thousand copies of this code in seconds, is that it's that ability. So yeah. So check it out.

Zach: I just want to take a second and thank both of you for joining me, I mean Jonathan and I, here today. This was a lot of fun and I want to do it again.

Jonathan: We'll see you guys soon.

Carl: All right. Cheers guys.

Till: Thank you, gentlemen.

BobWP:Hey everyone, thanks again for tuning in to today's show. I would like to give one more shoutout to our two Pod friends. Make sure and get access to the 2021 Klaviyo Consumer Report. You will find the link on dothewoo.io/friends/Klaviyo. And cover your clients with backups that saves every update and sales in their Woo shops with Jetpack Backup at jetpack.com/backup.

And of course you can always stay on top of our episodes by subscribing to Do. the Woo on Apple Podcasts, Spotify, Google Podcasts or your own favorite podcast app. So until next time, keep on Doing the Do.

Thanks to our Pod Friends for their support