 So, she was a very effective business woman that had been selling stuff in a retail environment for many years. They'd done so well that they had three different places where you could go buy her product. And she decided she wanted to get online, right? Wanted to have an ability to sell products through an online store. So, she came over for dinner, sat down, hung out with my wife, a friend of my wife's, and we sat down, we started talking. She said, I hear that you can make my online store and get this thing going and launched. I said, yeah, I've been doing e-commerce since like 1996. Like everything that we need to be able to do, we can handle, let's talk about it, let's do this. And so, we started the process. And if any of you have ever built an online store for a customer, then you know exactly how the project went, right? The customer was perfect, had a clear sense of all their requirements up front, knew the trade-offs, understood how to do it, paid in advance. I mean, it was perfect project because I'm a perfect person and I only work with perfect clients, right? No, that's not what happened, right? What happened was, as we started working on the project, as we started going through what it meant to bring their store online, they started expressing their opinions, right? That's not shocking to you. They said, I really like these colors, you know, okay. But all of a sudden, her favorite color was the accent color of the design. It was also the button color. It was also the alert color, right? And so, you could start going, hmm, this is not going to work out perfectly, right? We're not signaling to the customer the things we need to to make sure they know where to push the button or what to do, right? Sometimes the color was used for, ah, be careful, and other times it was, please, buy here. And you're like, this is not working out well. Then we started getting into the content and the description, and as we kept going, these little decisions started piling up. When the project was done, she absolutely loved her store, loved it, because she had baked everything about who she was and what she liked into the store, right? Didn't matter if the product page took two, three seconds to load because it had all her favorite pictures, it had all the descriptions, and all the testimonials. It had everything, right? And she was thrilled, loved it, said, this is my favorite store. She wrote testimonials for me, right? She would tell her friends, it was awesome. After three months, I circled back and said, how are things going? She said, nobody is buying anything. I think they just like the personal touch of coming to my store. And I said, I don't think that's the hypothesis I would select. She said, what do you mean? I said, well, I think you did everything to make sure you felt good, right? We had all these discussions, and just to be clear, I'm someone who wants to help you, but it's still your call, it's your site, right? It's not my site, it's yours. And so I'm trying to help you, but fundamentally, right? I think what you did was you created a site that was really good for you. And she's like, well, isn't that what I'm supposed to do? I said, well, maybe we should have thought about a site that would have been really great for your customers, which is different than having a great site for you, which brings us to the mistake that all of us make all the time, right? And that is that we forget, right, that the point of everything when it comes to building an online store is conversions. The point of building an online store is to sell online, right? It is not just, oh, I have a store that looks great and feels great to me, and I'm excited about it, and I'm happy. It is, can I create an online channel that does business so that I don't have to do the business in person, in retail, or anywhere else? That's the whole point of e-commerce. And so sometimes we work with clients, and clients are like, no, I want to make a site that I like with my colors, and my photos, and my text, and my descriptions, and my pop-ups, and my everything, because I like it. It doesn't matter if you like it. What matters when we talk about e-commerce is conversion. If not, you just have a really expensive hobby with a really expensive personal site. What matters is conversion, and in conversion, speed is everything, right? So I want to start by telling you that one of the tools that I use regularly, one of the tools I recommend people use regularly, is a website called GTmetrics, right? Now there's a caveat, I'll tell you the caveat at the end, but GTmetrics, which you can go to at GTmetrics.com, is your friend. And the reason it's your friend is because you can make little iterative changes on your site, whether it's in development or in production, you can make little changes, and you can go back and say, has this had any impact or not, right? And so you go, oh, wow, that's a good little trick, right? If I can test everything I'm doing in the construct of having a regular feedback loop, then I can say, oh, was that a good call or was that a bad call? Does that make sense, everyone? Awesome. All right, so what we're going to do is we're going to look at some easy things to do. Right off the bat, we're going to look at some things to make your store really, really fast that are easy, and then we'll look at some things that will take a little bit more work. So the first thing, right? Optimize your images. Optimize your images because here's what normally happens. How many of you have a friend who has a really cool camera? Oh, I feel bad. The rest of you guys don't have any friends or they don't have cameras. Is that what it is? All right, how many of you have friends that have an iPhone? All right, so whether that's so good. I'm glad you have friends. So whether you have a friend with a DSLR or you have a friend with an iPhone, right, often what happens is we say, I want to sell a product, right? And then we're like, I need photos. And so we get our friend to come in and take photos. And they take beautiful photos. They're amazing photos. They're incredible photos. They're the best photos we've ever seen. And they're five megabytes each. And they put them in a Dropbox folder. And then they ship you the Dropbox folder. And they're like, hey, Mr. Web Designer, just take these photos and put them on my site. And you go do that. And it's five megabytes per image, except the theme that you pulled in only shows it at 300, maybe 400 pixels wide. So you have gone crazy loading an image that will never, ever, ever be fully displayed in the glorious splendor that where it was taken. And now you're putting a five megabyte image or a two megabyte image on a website for 300, 400, maybe 600 pixels, right? It could have been 20, 50, 100K. And so you go, no, no, no, I don't want to do that. But the other thing is, right, in the old days what we do. We said, well, hire a designer. They'll bring all the photos into Photoshop. They'll go clean up every single one of them. And when I say that we used to say this, I also mean I used to do this, right? My first client was a wedding flower person, right? So they created wedding ornaments and everything for flower ornaments for weddings. And I said, oh, yeah, you don't have a website. I was trying to hire her for my own wedding. And I said, you don't have a website? She didn't even have an email. So I said, well, why don't I build you the website? And I'll set you up. And then she's like, oh, I would give you a, I'd hook you up. I said, OK. So she gave me 100 photos. And I opened up everyone in Photoshop. And I cleaned up 100 photos. I don't mean I just resize them. I mean I cleaned them up, right? Changing the tint, working on the color. I did all that. Plus created the website. Plus went to her house and connected her network and installed Outlook and got her an email. It was the early days. And I was an all-in-one person. I did everything. That was a mistake. But I did it. And then we went to pick the flowers for my wedding. And when we did the flowers for my wedding, it was $1,100. She goes, yeah, but I'm going to give you a hookup. I told you I was going to give you a hookup. I said, great. She goes, just make it even 1,000. I've been married 14 years. And every time I tell that story, I still want to cry. You're like, that's insanity. But now imagine that you don't have to do any of that. You don't have to be that stupid. You could just use Jetpack, TinyPNG, or Magify. You can use any services that will connect into the WordPress site. And when people upload images, even if they upload a 5 megabyte image from Dropbox because their photographer friend took really high-res images, these services will automatically clean it up and shape it up. And you go, oh, man, that will make my site load way faster. Does that make sense? And some of you are going, well, hold on. Are these expensive? Well, TinyPNG and Magify are both four-pay services. But Jetpack is free. And the particular feature we're talking about in Jetpack is called Photon. So I'm not telling you install Jetpack and then turn on like 400 different products that they have in the queue. I'm just saying Photon could potentially help you very quickly. Does that make sense? You have a question already? We're not even at the Q&A time. Oh, well, that's another time. When you get to talk, you can get on stage. You can give them all the rest of your list. I actually have 12 more. But for the point of that slide, look at that font. Can't put 12 more on it. So here are three of my favorites. All right, also, check image sizes. Because one of the things that happens is that sometimes you upload an image that is larger. And then you turn around and the code says, oh, it's a different image size. And now your browser actually does that work. The browser is actually saying, oh, you gave me a 600 pixel wide image. But I have to put it in a 300 pixel spot. And the browser doesn't work. That's slowing down your site. So you want to make sure you're like, hey, I don't want to do this. I want to make sure I have the right sizes. Sometimes that means going into a setting and saying, when I import images, pick these default sizes to create automatically. Does that make sense? Awesome. All right. The other is, optimize your CSS. Particularly what I mean is, if you're spinning up, and I'll tell you, I work at LiquiWeb, a hosting company. That's neither here nor there. But at that hosting company, we created a dedicated product just for WooCommerce. And so we bring in a lot of WooCommerce sites. We evaluate, look at, and work with a lot of WooCommerce customers. The average WooCommerce customer shows up with 40 plugins active. There's nothing wrong with having 40 plugins if they're all high quality. They're not always all high quality. But if they were all super amazing code-based-wise, I wouldn't have a problem with it. But here's the thing, right? Every one of those plugins, or many of them, may have their own CSS file. So when you start loading up pages, and those pages are loading up plugins, and those plugins are making external calls to CSS files or anything else, you're going to be like, oh, my gosh. That's a lot of files that we're pulling together. So sometimes what you want to do is minify that or concatenate that. And so you can use a tool like, is it OK to tell you that I don't know how to say that word? I know that some people call it auto-optimized, but that would be two O's. That actually says a topmatize, which sounds really weird when I say it. So I have no idea how to say that, but I can tell you this. That plugin does the kind of concatenation and minification that would help you. Does that make sense? They smushed it together because they were like, let's actually name it something where we smush things together and tighten it up, and to mess with Chris on stage. You go, yeah, I get it. Another common dynamic is that you will install plugins. You'll install plugins to try them out, and then you will go, oh, no, I don't need it. And you'll get rid of the plugins. And do you know what sometimes happened? Now, if any of you are plugin authors in this room, I want to be clear, I know you don't do this. This is other people, OK? Sometimes you install a plugin, then you deactivate and delete the plugin, and it still leaves a bunch of records in your database. Those are orphans. That's what we call them. And you go, how do we clear out the orphans, right? And by the way, that is not a conversation you want to have in a public setting. In a development shop, hey, how do we clear out the orphans? That sounds OK, because how do we clear out the database orphans, right? OK, but if you're out at a restaurant and then you're like talking to my wife, and then I was like, how do we clear out the orphans? And every other table starts looking at you, and you're like, database orphans is what I meant, right? But there is a plugin. WP Optimize, they'll show you, like, oh, you click some checkboxes, and you're like, go clear out all the cruft that's sitting in my database that I no longer need, because all of that does have an effect on your performance. Does that make sense? Yeah? All right. Now, here's the thing to note. At some point, when someone was building WooCommerce, they created this ability to do this super cool Ajax everywhere thing. And you're like, oh, that's so awesome, except whoever was building it clearly hadn't worked with high performance size, or hadn't worked with sites that have a ton of traffic. And suddenly you discover this is actually not very helpful when we're talking about performance. And so what you want to do is turn this off. But in order to turn this off, you also have to go to one of the settings in WooCommerce and tell it that when someone puts something in their cart, take them to the actual cart, right? When someone puts something in the cart, take it in the cart. If you do that, you can turn this off. If you don't do that, right, you may have a problem, right? Because you're like, oh, I turned a feature off, and then I didn't account for it, and now people are left a little bit stranded, right? One of the things this is trying to do, and sometimes you have themes that do this, they're trying to create places in your toolbar or places in your sidebar where they're running back and forth to the database to see how full your shopping cart is, right? So this is what happened to me a couple years ago, right? I was at another host, right? Not us. I didn't work at a hosting company. I was a regular guy building a regular e-commerce site, and the customer had put the shopping cart display of how much you have in your cart in their sidebar. And the site was running really slow, and then you couldn't cache stuff, so I said, uh, we gotta figure out how to do this. So I called the host and the host said, oh, well, just go into our control panel, and then our control panel just put in, list in all the pages that have the cart on it so that we won't cache those. And you go, well, that works great if I have, like, you know, my site slash cart, or my site slash my account, or my site slash checkout, right? Those places would make perfect sense. But when the cart is sitting in the sidebar of every single page, putting in all the pages and saying, therefore cache nothing becomes a really not great idea and slow performing approach, right? And so part of what you wanna do is not put that cart right there in the sidebar and not put it in all your toolbars and turn around and say, let's turn off the Ajax components and just go to the setting that says, check this so that when they put something in the cart, we take them straight there, it's just a redirect, we're done, and it will dramatically change the performance of your site. Does that make sense? At least it does for one or two people, that's awesome. All right, now I was looking at a site two days ago, right? Two days ago, WooCommerce site. I bet none of you have worked with a WooCommerce site like this, because this, it didn't matter what page you went to, it took 26 seconds to load the page. Oh man, I live for those days, right? Like, I bet I can take this 26 second load and turn it into like four second load very quickly, right, and they were like, no, no, no, I don't think so, I have a developer. I pay a developer to do this and I go, well, you pay a developer to do this, which is super awesome, I hope you didn't pay a lot, because 26 seconds, it is work. I mean, you have to work hard at getting it to load in 26 seconds, but that's not the kind of work I would pay for, right? So we start playing with it, right? And one of the things you notice very quickly is that all the different calls for WooCommerce, right? What happens? What's the jQuery stuff that you call when you wanna put something in your cart? That's loading, you go, okay. What about the CSS you need in case you're loading the cart, the CSS for the cart? Like, that's loading, you're like, okay, but hold on a second, I'm on a blog page. I'm reading a blog post. There's nothing for sale, there's no cart, there's no add to cart button. There's nothing on this page that is specific to WooCommerce, and yet WooCommerce is like, hey, I load this stuff up at any given moment in time because I never know if you're gonna do something, right? WooCommerce loads all of its scripts and all of its CSS on every page because you do have the opportunity, if you want, to put a short code, a WooCommerce short code on any page. And since they want that short code to work on any page, they load everything on any page. Now imagine that you have three, four, five WooCommerce-oriented plug-ins or extensions installed, and those start doing it too, you're gonna end up loading a lot of stuff on pages that never use it. So of course, we went in, right? And there's, WPDisable is a plug-in that has a lot of different options in here, and you'll see it listed a couple times. But one of the options is you go into the WooCommerce section and you say, hey, only load the WooCommerce JavaScript and CSS files on WooCommerce core pages. And you go, yes please, you check the box. And it means all the other pages load way faster. Does that make sense? Awesome. All right. Another thing that WPDisable kills is revisions, right? There are revisions, if you haven't set to default and left there, right? There could be revisions for everything, right? And one of the things you don't wanna do is store all those revisions if that's not a key part of your business. Now, I'm not against revisions per se, right? If you are someone who's constantly doing revisions on certain areas and you wanna make sure those are available, that's great. But I have yet to find most store owners who are doing anything with revisions. And so the first thing we do is we go in and we go, okay, let's go in and just clear this out. Empty it out and then stop turning on revisions and I'm going to mitigate how much stuff I'm putting in my database. I'm also gonna mitigate how many times I'm running process in the background. You know what a revision does, right? A revision says while you're typing, right? While you're typing and after you save drafts and everything else, I just, I save things, right? So it uses admin, Ajax, it uses all sorts of stuff to run. You're thinking that's just on the backend. That has nothing to do with my store. But you're on the same site that other customers are coming to. So anything you do on your store in the backend that uses up CPU and RAM, anything you do there has a consequence for your visitors. Does that make sense? Let's say you're like, oh cool, I'm gonna go into WooCommerce reporting and in WooCommerce reporting, I'm gonna go ask this super cool query of how many people have bought this specific product and this specific size in the last 17 weeks. And you're like, oh, I can't wait to get this data. And it's taking a little while and you're like, this is so awesome. I can ask this question, any kind of question I want and I get data back. And what you don't realize is you've just used all of the RAM and all of the CPU cycles, everything else that your server has for that question for you, which means there's absolutely nothing available for your customers and those customers start slowing down dramatically. We wanna make sure that the focus of your store is conversions, which means you need to think about when you're gonna run those reports, you need to think about what you're doing with the visions, you need to think about everything in the context of, am I using resources that someone who's visiting my store is not gonna get to use? Make sense? Only kind of? Or really? Yes, we're starting to get a pattern here, guys. All right, use a CDN, right? Turns out images are not the only thing that you can benefit from processing with something like a Jetpack and Photon or using a Magify or Tiny PNG. It turns out you're gonna have JavaScript files, you're gonna have other files and you go, oh, if I could use a CDN and Cloudflare has a free CDN and so you go, well, maybe I use Cloudflare. Now, if you use Cloudflare with WooCommerce, you do have to use, the free plan gives you three rules. Those are three places that you can say, hey, for this particular page, skip everything. And you go, yes, for the cart, so slash cart slash checkout and slash my account, you wanna create those three rules in the CDN so that it bypasses it completely and takes you there. Now, if it turns out that you're doing something a little more complicated and you need more rules, then you'd have to pay for a different plan. But this can be very helpful for you, if you get it configured right, so that it goes, oh yeah, I'm now able to deliver these JavaScript files or anything else faster based on, in case you don't know what a CDN is, right? The notion of CDN is that it creates servers all across the globe that store key files for your site so that depending on where a customer comes from, they get fast access to that because it's being loaded from there not from where your host is, right? So it is a propagated network of edge servers that allows you to, or allows your customers to get content faster, right? So if you can use a CDN, especially if it's free, you go, yeah, I wanna do that. All right, those are the quick hits, they're easy. I saved some of the more complicated ones next. That's because these may take some work and may cost even a little bit of money. Limit external calls. This is not fun, right? But Norcross, who's sitting up here and I, we're having a conversation with the people who run the liquidweb.com website. We both work at LiquidWeb and they called us because they said, our site is a little slower than we want it to be. How do we speed it up? And we said, let's go look. And when we looked, we saw all the code that people had created for this website and then we saw all the code that our marketing team had created or that their partners had created to do things like ads and retargeting and other things, right? Now there's nothing wrong with ads, there's nothing wrong with retargeting. But we could do the math really clearly, right? Like this is how long your website takes and this is how long the rest of it takes for all those additional scripts. And LiquidWeb's not the only place it has this, right? Most of us visit websites where you can, if you take that, throw it into GTMetrics and take a look at it, you're gonna go, whoa, what is this and what is this and what is, and you realize these are outbound calls to third-party tools, right? And that means that in order to load their JavaScript, your browser, when you're the client, has to go out to their server, make a call, get their stuff, bring it back and wait till that's loaded before the rest of the page goes on. Now sometimes it's done asynchronously but it's still work you have to do. And so a full page load can take time if you're going to a lot of different places and pulling in a lot of different stuff. Now you're thinking, okay, but I only have one ad network so that's not a big deal, right? So I worked with a client once who was super into analytics. How many of you are into knowing what customers are doing on your website? Right, how many of you have customers who are super into knowing, right, the data or what's going on on their website? Right? So they had heap analytics, Google analytics, Wupra analytics and Mixpanel analytics, all on the same website. So four different JavaScript calls out to four different systems collecting data. And then they also had the plugin they installed which is what's the name of the plugin that does the video capture of what people are doing? Hotjar. Is that right? Yeah. And that one is like, that's its own situation in terms of sucking up resources and pulling in data and all this stuff. So imagine if you have something that's trying to record every maneuver that's happening physically on your site and then you have four outbound calls to external systems where you're pushing data across. Oh, and they also had segment.io because segment.io is a system that's supposed to let you connect with all those other ones but through segment and they had miscommunicated something. So segment was on there plus the other four, right? And so no shock, right? 17 second loads and you're like, yeah, this is not good, right? Cause I don't know about you but if I am like, oh my God, I gotta buy something, right? Let's say I wanted to buy a remote for a presentation and I went to Logitech to buy this. How many seconds would I wait before I decide I want to leave, right? How many seconds would I wait before I never come back again? It's not 17, okay? More often than not, it's not even three. I don't know if you know how long three seconds are but space and time don't work the same when you're sitting at a browser waiting for it to load. It doesn't feel like three. It feels like seven even though it was three and you're like, no, I'm out of here. I'm at, like I can't, what's going on here, right? If you, let's say you do a Google search for Logitech pointers and it has five different sites. None of you do this, right? It's just me. So I search something and then I right click and open up tabs, right? For all the different links, right? Does anyone do this? You right click and open up a whole bunch of tabs. Now here's the thing. If the first tab loads up right away and the next two are still circling, close those two tabs. I don't even see what was there because it took too long. I just go to the ones that load it right away and I take a look. Google defines the number in case you were wondering as 2.7, 2.7. If your site loads in under 2.7 seconds, right? Then Google says, oh, you are customer friendly. If your website loads in more than 2.7 seconds, Google says you hate the earth and all of humanity and Google never sends you any traffic and you go, oh my, what happened, right? Do you think it's a shock that almost every single Shopify customer that buys something from Shopify goes to Shopify from Facebook or Instagram? 92 or 93% of their traffic comes from social and you go, why is that? Shouldn't it be coming from Google? I mean, shouldn't people be doing queries on Google and getting there? And Google's like, not if it doesn't load fast. So you have to pay for traffic at Facebook to get people to go check. I've bought many things on Shopify. I'm not against Shopify, but fundamentally, remember at the beginning I told you this, this is all about conversion. It's all about conversion. And if your site doesn't load fast, you're in trouble. Right? So start looking at those external calls and start making some decisions. Which ones do you really need and which ones did you think were nice to have? Okay. Warnings and errors. Some of you are not developers, right? Some of you are not technical people at all. Some of you just have the site, right? Maybe you're the store owner, the site owner. And you pay for a developer and maybe you thought all developers are the same. They all have the same qualifications. It's not true. Some developers are really incredible and some developers not so incredible. Doesn't mean they're bad people, they're great people and they may even do exactly what you need them to do. But fixing the errors that are showing up on the site may be past what they can do. Right? You may have hired someone who is more of an implementer than a developer. They were able to bring a theme and put it in place. They were able to get WooCommerce and install it. They were able to configure the settings tab. They were able to import your products. They were able to upload your logo. They were able to do these things and say here it is and visually it looked great. But if you go to the server itself and you pull down the error log and you see a bunch of warnings and a bunch of errors, they go, that's not what I don't know. That's not me, right? Normally what you hear is, ooh, that thing is, I don't know what that is, right? Go talk to the developer of that plugin. But the plugin developer's like, that's not a problem with me. That's a problem with the theme. And the theme's guys are, that's not a problem with me. That's a problem with the plugin. And your developer's like, it's one of these people but it's not me, right? And nobody is capable of saying, no, I need someone to go look at every single warning and every single error I need you to fix it all. And if that means you have to change everything, I don't care, but I need no errors, no warnings. Why? Because every processing of a warning or error by your server consumes resources. Even if they're just warnings, they consume resources. That means your store is not gonna perform as fast as it could. I worked with one site where we cleared out the warnings. There were no errors, just warnings. And we improve the speed by 60%. And you go just for warnings, and you go, well, there was a heavy amount of warnings. And you go, it's just gonna consume resources. We don't wanna live in that world. All right. I told you earlier that I don't care if you have 40 plugins on your website. I lied to you, right? My preference is that you have seven or eight, right? My preference is, do you remember the time when we remembered phone numbers of people we cared about? Do you remember that back then? Does anyone old enough to remember actually knowing the phone number? I don't know the phone number of my brother. I don't know my mom's phone number. I don't know my dad's number. I only know my wife's number. I don't know my friend's numbers at all because we've gotten really dependent on our phones. But when phone numbers were created, right? When phone numbers were created, there was the belief that we could handle seven plus or minus three chunks of data, which is why our phone numbers are seven numbers plus three of the area code. Because we believed this was the magic number, seven plus or minus three, that we could remember those things. And so we created phone numbers to have seven digits, right? If you were running only seven plugins in your store, you could likely tell me the name of seven plugins. You'd be like, these are the seven that we use. We use them on these stores, this is what we do. But when you start using 20 and 30, you're like, I don't really know what we use, right? And more often than not, you installed some plugins that maybe did too much or maybe didn't do anything or maybe you were just trying out and you don't spend a lot of time going in and cleaning it up. So you wanna speed up your site? Well, it'll take a little bit of work, right? But you have to be super judicious about what you have going on. Now, how many of you have social plugins on a website that's yours or a website that you've built? Social plugins, right? Almost all of you, yeah. Or we have a lot of liars in here. We all put them on, right? Half the time though, if you're an e-commerce store, we never go back and look at the data that tells us whether people are actually sharing our products through those channels. We just put it on because we think, oh, it's a good, it's a best practice. There's no such thing as a best practice in an e-commerce store. You know why? Because every store is different. Every customer base is different. Every segment is different. How they work is different. There are just good ideas, right? You can't say, oh, there's a best practice because you're like, wait a minute. I installed this plugin that, by the way, creates four different channels to push to Facebook and Twitter and Instagram and no one has done it. If you were a business person, you'd be like, nobody, get rid of it. That's what you should do. Think of yourself, not only as a developer, building a site or a store owner owning a site. Think of yourself as a business person who says, if I don't need it, if it doesn't actually deliver any value, got it. Does that make sense? This one's maybe the hardest one to tell you because so many people are like, but I like my theme. It's my favorite theme. It looks just like I want it to look. If your theme is getting in the way between you and conversions or between your customer and conversions, you should rethink the theme. Here's something you may or may not know. The worst performing process in all of computing related to the web. If you're a web builder, web developer, web designer, the worst performing dynamic in the web space is something called a table scan. It is a query against a database table where there's no index and it causes it to look through all the files over and over, all the entries, and it's incredibly slow and high-costly, right? Table scans are the worst. This second worst performing dynamic is parsing text. If you're a developer, you know it as regex, right? When you write specific kinds of formulas that the computer has to read, but it's also when you use a short code, because when you use a short code and you put little text inside the brackets as attributes, the computer has to go parse it, hand it to shortcodes.php, and run through a whole sequence to parse and figure out what you meant by that text. One short code, two short codes on a page, not gonna kill you. There are some themes, right? We don't have to name them, but there are some themes that are very heavy on shortcodes and there are some developers who use those themes and then they're suddenly surprised when the site takes minute to load. I had a very large enterprise company, maybe one of the happiest places on earth, who called me and said, we just built a prototype website and we used one of these themes with the little builder thingy in it and it was super cool and we have 50 pages but it's now so slow that we can't launch it. And I said, yeah, that's right. And they're like, no, but we need to launch it. You have to change your theme. We don't wanna change our theme. Okay, then don't change your theme. Okay, but what are we gonna do? You have to change your theme, but I don't wanna change my theme. Do we wanna go long? Like, we can do this all day long, right? I can't fix the problem that you've put shortcodes all over all your pages, right? So sometimes the fastest thing to do, right, even though it feels painful, is change your theme. Go back in and load a super lightweight theme, a theme that is designed to think about speed and performance, right? At Liquid Web, we built this managed WooCommerce offering and when we did, we went and tested 50 different themes that were focused on e-commerce and focused on WooCommerce and the fastest theme by far was a theme called Astra, right? And Astra is a free theme. And I was like, I can't believe that this free theme is the fastest of all the things we tested, but it was. So we include it, right? So any customer that buys our managed WooCommerce offering gets Astra automatically. It's not saying much, right? Because they could go download it for free on their own, right? But we're just like, here, we saved you the download. You can use it. It's hard work to choose to change a theme, but it may be one of the biggest bets in terms of getting your site to load faster. Make sense? And then of course, the hardest one of all, change your host. And I wanna be clear, I work at a host company, but if I were hosted at that host company, I would still consider changing my host. Why is that? Because in the business of hosting, and some of your hosts may not own their own data center, they may be hosted on someone else's hosting infrastructure, it doesn't matter, right? The point is at the bottom line, the people who buy servers, when they buy servers, they buy it as a business. They buy a physical server with a certain set of specs and that server is gonna have a certain payoff for a certain amount of time, right? It's what we call a capital expenditure. And every hosting company is like, well, can we get another six months off that equipment? Can we get another year out of that equipment? And so you may be hosting on a server where you're at the tail end of the lifecycle of that product, they're happy to keep charging you, but you're using outdated infrastructure. So every two years, go test a few hosts. Moving your site without changing any code from one host to another may give you a 30, 40, 50% increase in performance without doing anything else, right? Just because you were on older hardware versus newer hardware, okay? So every two years, do the re-evaluation, that's my take. And then of course our last bit is to talk a little about caching. Most people when they're talking about speed and performance will start talking about caching right away. And most people who heard my recommendation on GT metrics would say, well, GT metrics isn't helping you because it's just gonna determine what you have with caching and it's not really gonna tell you the real performance. So my recommendation is when you're doing performance optimization, turn off all caching. I'm talking about kill your engine X microcache. I'm talking about don't use a caching plugin, right? My point is when you're testing, test the reality of your e-commerce infrastructure. Test your host, test your code, test your theme, test your images, test it all without caching. Because if you can get it fast without caching, it will become that much faster with caching. Does that make sense? The problem is that most people install caching as one of the tips in their list. And then because it gives you enough of a boost, you're like, ooh, look at this. I went from four seconds to two seconds. And you go, yeah, but you could have gone from four seconds to half a second. And you didn't do the additional optimization because you threw in cache and you got to a place where you were okay and you said, that's all, right? The magic number in terms of performance that we like is 0.7 seconds, 0.7 seconds. We have a sample site over at finestheadphones.com where for the most part, we're constantly evaluating, testing, trying new things. We want that thing to load with 9,000 products. We want it to load in 0.7 seconds, right? For the most part, it does. Every now and then we try a couple of things and we're like, ah, it went to 1.5. 1.5, I know store owners who would dream for 1.5, right? But you're not gonna get down to 0.7 seconds if you're just like, just throw in a plugin and then with cache in the name and then move on. And we have some customers who are like, hey, if one cache plugin is good, three cache plugins is better, right? And you're like, nope, nope, that's not how that works. Right? So clear out the cache plugins first, do all your optimizations, then come back. The point of this is, you need to know what's really happening. You need to know where every bit of performance can get cleaned up and tightened up before you ever play in the game of cache. Then you can say, oh, let me turn on engine X cache and see if that's enough, right? That plus the object cache. Well, do I need to add a little Redis? Let me try that. Okay, wait, let me see if I wanna add another, you know, caching plugin. You can ask those questions after, but only after you know everything that's going on in your store. So my name is Chris Summer. I'm the vice president of products over at Liquid Web. I'm responsible for our managed WooCommerce offering. If you are interested in a dedicated solution for that, right, I'll point you to my friend AJ who's waving his hand over there because he can get you coupons and discounts and all sorts of fun stuff. That's what he's about. But we have about five to 10 minutes where I can answer questions. You can also find me on Twitter at Chris Summer. And with that, we'll open it up for questions. That's a great question. So the question is, when you're using a service and someone uploads a 10 megabyte image, what happens to the image, right? So depending on the solution you're using, you could get that image back or it's gone, right? One of the ways it happens is the image gets uploaded but it gets actually uploaded through, in many cases, to the actual SAS service and then the optimized image is brought to your site, meaning your site has the lightweight version and then if you go back to one of the settings and say, hey, restore the original, then it'll go back to the SAS and bring back the original, right? So your store doesn't have to carry the full weight if you're using the right kind of SAS. They'll manage that for you. Thanks for asking that question. So the question is, when I say kill revisions, did I mean it in a specific case or broadly? And I mean it broadly, right? So more often than not, I find that that's just something that's happening behind the scenes without anyone paying attention to it and so we can go in and just kill it right away and it stops happening across the board. Oh, yeah, massively. So two questions, how do you get experience on this stuff and then the second is, what happened to all the hosting companies? Yeah, transition? Okay. So how do you get experience? There's no shortcuts, right? You just do them, right? So I worked on a store where we spent nine months. Brian Richards may be somewhere in this room. Oh, he wasn't even here the whole time. He didn't want to hear me talk at all. Shirk, gosh. So Brian Richards used to be a really good guy and Brian and I worked together on a store that sold lipstick, right? And we spent nine months optimizing the store so that we could go from a million dollars of revenue in one month to $1.6 million in revenue in one day, right? So we went from a few hundred abdicards, right? Events, right? To 2,000 abdicart events per minute, okay? So people who are like, oh, WooCommerce can't scale. You're like, no, that's not true. Brian and I did it, right? 2,000 abdicart events a minute. But that didn't take like a week or two. We were working on that project for eight or nine months and it wasn't one single thing. It was like 18 things, right? It's trial and error, it's testing, it's testing with a host. We weren't a hosting company. We were a digital shop. So we would do stuff, work with a host, check it out and go, nope, that didn't work. Let's try this, okay, that did. We had some hypothesis. Many of those worked out, so that was great. But then we also learned some new things. So you have to get in and do it, right? There's no way to get around that. And then why are hosting companies changing? And the nuance of that, sometimes one of the things you see is there's a glut of hosting companies that generate under $10 million a year and the market's really, really gruesome for those guys, right? So if you're under $10 million, the likelihood, if you're hosted with a hosting company that's making less than $10 million a year, the likelihood is within the next two years I'd imagine that company's gonna be bought by someone else. The bigger guys are just buying and tucking them in. I don't look a web, we look at hosting companies that are that size all the time, right? Plus other sizes. So there is a general market dynamic where if you're playing on the really low end you're gonna get scooped up just because you don't have the ability to compete. But when that happens, right? So EIG is a well-known company that was buying all the bunch of companies is they often migrate the customers onto one core platform rather than having data centers and platforms everywhere and that will change the performance of your infrastructure if you're moving from one to another. Customer service could change too, right? Sometimes for the better, sometimes for the worst. Last question, I think we got time for, yeah, Brian is back, good. I said you used to be a really good guy. It's true, it is totally true. Mostly because you had a great mentor, great boss, a great experience, great context and you've changed all that now. With that, I'm Chris Thoma, thank you very much.