 All right. So today's topic is caching demystified guide for the non techie. If you happen to be here and you're a developer. You may still learn some things but this particular guide is intended to be a little bit easier for people to understand some of the concepts behind caching and some of the related performance concepts as well so. I'm Michael wood. You can find me if you just Google WP scholar. And so I'm you can find me on Twitter, have a website. I work at Bluehost. And let's get started so. So what is caching right so I'm going to start with. You know, figuring out a little bit more about what it is and then we can kind of talk a little bit more about the detail though. So, in a short summary caching is nothing more than storing something so that things can be faster in the future right so in the case of the web. We're talking about storing a web page or some piece of data. Any request for that same thing in the future can be handled much faster. So, good example of this from everyday use is, I like to make omelettes in the morning I usually use three eggs. And I can just go to the fridge and grab three eggs and make an omelette. And the reason why is because I have cashed the eggs in the fridge. So I go to the grocery store, which is also a caching location right. Otherwise I'd have to have my own chickens or go wherever the chickens are right. So, so yeah. Simple simple concept. We can all relate to. We also have this concept of cash invalidation right so we have caching which is kind of short cutting the work. Then we have invalidation, which is when resource expires. So sticking with the grocery store analogy, talking about milk. You know you buy your milk, usually check the date before you buy it, and then you put it in the fridge. And then as that date gets closer. Things started getting a little vague right, like, clearly there's been plenty of times when that date is passed and the milk is still good. Sometimes the milk goes bad before that date depends on whether somebody left it out, or, you know, maybe depends on the type of container that the milk is in. Or a whole bunch of different factors right so invalidating cash. Usually there is a point in time at which it is clearly invalid. In this case, the milk is clearly no good. Everyone can smell it. You put it in your mouth that's coming right back out right. But there's kind of this vague place in between sometimes where, you know, maybe it's expired, maybe it's not, we're not really sure. This is also kind of the case on when talking about web technology because there's a number of reasons why something may no longer be cached, even though it hasn't exceeded its due date essentially. So just something to be aware of. And when we're talking about caches, you know, you can manually clear a cache or invalidate a cache. And so there's depending on the tool you're using there's a bunch of different ways to do that. A common pattern is in a little admin bar that shows at the top of your site when you're logged in. There will often be some option there where you can clear your cache, depending on what caching plugin you're using or maybe what web host you have, or, you know, any number of factors right. So just knowing that you can clear it and becoming familiar with where that is is important. So a common use case for caching. It's kind of run through, you know, why, why we do it right. So, obviously, I think that the thing most people think about when they think about caching is things will be faster right website a load faster. If your website loads faster, your server, your web host can actually handle more traffic so more traffic is always good. And then because it's faster, Google will also be happy. And so your search engine optimization slash rankings potentially can be higher. And then probably the more important thing is that the user experience is improved right so Walmart did a study. And I'm not sure the exact numbers but they're pretty close. So Walmart found that for every, I think it was like a half second delay in page load. A pretty significant number of people would leave the website, if they were made to wait a Toyota longer. So it boiled down to for every, I think it was like every half second that they could shave off. They increased their sales by several million dollars. So performance had a direct impact not just on the user experience but on the bottom line for the company. Now obviously Walmart's a big company and they have lots of people that would visit their site. But likewise, you know, speed and speed improvements can definitely help with your own e-commerce sales, as well as just your user experience. So there's a few types of caching and really we're not covering all the different types of caching we're covering the most common ones the ones that everyone should really kind of be aware of. So, when we're talking about caching, the first thing we want to do is talk about CDNs. So we have the content delivery network, which is where files are stored in the cloud. And they're usually stored in multiple locations, right? So if I'm in the US and I have a website and people come to my website from all over the world, you know, I need to have some files stored in Africa, some files stored in China, some files stored in Australia and everywhere, so that if somebody from those locations tries to visit my site, it doesn't take as long to go and fetch those files, right? So in that case, we're, excuse me, we're short cutting the long distance internet travel there. And the CDN will let you have policies and set up that say how long a file should last in the CDN before it kind of refreshes and goes back to the source. And again, with any kind of caching, you can also purge it so you can purge your CDN. There are different tools that fall under this CDN category. This is just a generic category that we're talking about. So next we have the browser cache. So the browser cache is when content is stored on the user's computer. So if I visit a website, site loads up, maybe you have created some rules on your side as a website owner, and they say, I don't know, like your logo needs to be cached on the user's computer. So that way if they go to multiple pages on your site, they're not reloading your logo every time, right? So that's a simple example. And going back to our grocery store or analogy, the browser cache is essentially our fridge, right? It's something in our house where that's stored, and it makes it real easy, real accessible, and it's probably the fastest way for something to load is to not have to go fetch it at all. But if you think about that grocery store analogy where I had to go to the grocery store, that's the CDN, right? That's my localized place where I can go and get what it is that I need. So the chickens and the eggs may be, you know, halfway across the US. So, yeah, so that's the basics of the browser cache. Usually the user has to flush them in the browser cache. So if something gets cached, and you don't want it to be, you can't always control it. We have something we call object cache, and object cache is the official name, but I think an easier way to kind of think about it is data cache. Data cache is where we're not really talking about, you know, caching a file or a web page. We're talking about caching bits and pieces of data. And this would be, you know, if there's some, let's say there's some option that your site has that you set that option, that specific setting for a specific plugin or theme or whatever it is, would be stored in the database. And normally WordPress would have to go look it up every time a page loads and say, ah, yeah, that's the setting, and we're going to use that. But if we cache it, WordPress doesn't have to go and make a query to the database. It can just say, I have this thing I'm looking for. Do you have it. And if so, the object cache will return it. And if not, then it'll go and do the extra work it needs to do to kind of find that in the database. So, object cache can really help particularly like your, you know, normally you don't do a whole lot of caching in the admin the back inside of WordPress, but an object cache can be used to speed up your admin area. So it's a good, good thing to keep in mind. And of course we have expirations for these things as well. But kind of an interesting thing to be aware of is that the more stuff you start to try to cram into this object cache. At some point it's going to hit a memory limit and the memory limits something like sometimes it's like two megabytes, which is not a whole lot. So if you start cramming everything under the sun under there, it's going to push old things out even though technically they would normally still be valid. So, something to be aware of may not be something that you as a user have much control over outside of maybe if this does start happening. So that a particular plugin is just putting too much in there and it could be like pick another plugin kind of situation, but your web host is typically going to be the provider for your object cache. It's pretty rare, unless you're doing like configuring your own servers or something that that would not be the case. And then we have something called page cache right so everybody is more familiar with just the fact that a web page will load up. And, and so caching that the work that's done to grab all the pieces of data, and to, you know, pull in all the files. And then we come from other types of cash but once the whole page is assembled, we can then cash that whole page, the generated page, so that everything loads faster. So this is URL based. And then it's possible that somebody might send a request to your site and request that it not be cashed, in which case, they would bypass the cash so, for example. I were to, I have a Mac so I use command r to refresh a web page, but I think on Windows is just control r. But if I use command shift are it's a hard refresh, and that basically tells tells the browser not to cash what it's about to fetch. And it'll, it'll load up a fresh version of the page. Alright, so we're going to talk a little bit about best practices. So, caching is an enhancement that provides better performance. So this concept is really intended a little bit more for developers than anything just because sometimes developers try to use caching in a way that's more of a feature than enhancement. So if you happen upon some sort of plug in, that seems to break down, depending on whether caching is or isn't enabled. It could be that that that plug in that developer isn't viewing caching as an enhancement. So just something to keep in mind. So like we said before, caches do have limits, you can't cash everything. So at some point things will get kind of pushed out. So you have to be aware of potentially bad actors right plugins or themes that are maybe doing too much in the way of caching to the point that the cash actually becomes useless, useless, and pushes everything out before it actually can be used again. So this is, this is definitely something that your average WordPress user can control from most caching plugins right so caching is essentially a balance between performance. and data freshness. So if you are wanting a really fast website. Sometimes you have to make sacrifices in that data freshness category right. So, if, if I want real time results, I may have to give up some performance. You know, if data is mission critical, then having it be five minutes old could be bad, or 24 hours old, or however long it is that you're caching right. So, being able to adjust how long something caches is kind of where you, you end up landing on the spectrum between performance and data freshness. So you have to be careful that you don't cash dynamic content and I know WordPress is dynamic in the sense that it, you know, you can change stuff in the back end and it shows up on the front end. But a lot of times, most pages are often static right like you'll create your content in the back end. And then unless you make another change in the back end. It's not actually going to change the front end of the site. But when we're talking about dynamic content. You know, having a page, like an e-commerce page for a shopping cart. That's dynamic right it's specific to the user and things that they put in their shopping cart. So what I see is going to be different from what you see and it has nothing to do with what the site owner has done on the back end of the site. You know that they're not putting carts products in your car for you. And so the danger with dynamic content and caching is that if we do caching wrong right if we misconfigure it, I could go to your site. You know, nothing's cached at the moment, and I go to the checkout page or the shopping cart, and I've put, I don't know five products in there. So that could get cached in the next person who comes, even though they put one product in, they could land on your shopping cart and see my products, not theirs, and there's four, not one. And so could lead to a lot of confusion. There are situations where it could it could lead to data leaks. So consider, let's say the check out page where someone is typing in their contact information and their email and their phone number. If for some reason all of that data got cached onto a page, then the next person that comes along could see all of that so most plugins caching plugins. They can account default settings for like WooCommerce and a lot of a kind of more common e-commerce situations. So that's just something to be aware of, but if you do run into this situation, just be aware, and it can happen with other plugins that, you know, are expected to work a little bit more dynamic fashion on just random pages that you can implement some of that functionality on. So, oh yeah, so someone was saying, I'll back up for a second in the chat here, by the way, if you do have a question or a comment feel free to leave in the chat I do glance over there in a minute or two and I'll try to respond but someone was saying their state's lottery website actually let them see other people's info. So perfect example. Any questions here. How do I determine if I should use my hostings options versus my plugins I'm building a site for someone using site ground with jetpack site grounds options are overwhelming to them, and the jetpack options may be redundant or not enough. Good question. That's actually lead into kind of my next point. Remember that other question we'd be pointing out mitigating circumstances so to a degree, yes. But if you have specifics as we get closer to the end. I'll, I'll try to address some of those kinds of situations. So, I've never used more than one of the same method of caching. So again, to the point of the question I was asked here. If you have a web host that does, I don't know, let's say two or three potential methods of caching, and then you have a plugin that does a couple methods of caching, and maybe you have something like cloud flare which sits between your web host and user could provide some level of caching. And sometimes people install multiple caching plugins. This is usually a bad idea, even if you correctly configure them. It's just going to be confusing to anybody that comes later. So how they recommend getting a caching plugin that is going to serve all of your needs and not just some. We don't want to have to supplement another caching plugin to, to be able to kind of compensate so. So, again, first step is to ask your web host, what caching they have right so that can be just call up support and say do you have object caching do you have page gating do you have a CDN. A lot of times, it should be pretty obvious from the the UI so for example, I know, can step they have a CDN built in. But a lot of web hosts don't seem goes with object caching, a lot of people, a lot of web hosts have object caching but some don't. So just being aware of those things like I said, object caching sometimes is a matter of switching hosts to get it, whereas a lot of the other types of caching could be supplemented by a plugin. So, we'll talk a little bit more I think about that, but that's the, that's the basics there. We'll talk a little bit about some other performance concepts. So, first of all, minifying so this is not a pure caching concept it's more of a performance concept so minifying is, you know, there's a lot of files that exist on your host on your server that make up your website right WordPress itself has thousands of files. You can have one or many files. And each plugin could load a specific code file for the style for the on page functionality. So there's a lot of types of files that might get loaded up. These files are basically code and code doesn't have to be human readable, right as long as a computer can understand it doesn't matter. So, minifying is basically when we make the file take up less space by getting rid of any white spaces any tabs any comments any, you know, names of things, like, let's say we had a thing called. I don't know concept a right, we can shorten it to the letter a, and now that's a lot less letters. It takes up a lot less space and if we happen to use concept a hundred times somewhere in this file. Now we've reduced it by, I don't know what is that like 600 characters, at least. That's the idea of minifying we're just kind of compressing it compressing it down by making it take up less less space. And then we have another concept which is concatenation. So concatenation is very similar in that we are. We're, we're trying to make things pick up less space right. But the space we're talking about now is the number of requests that the browser has to make to go get all of the things that it needs right. So all of those different types of files that we talked about they still have to load for everything to work right. But you might have, I've seen in cases, you know, 50 60 files responsible just for the styling of the page right, and all those have to be loaded for all the little things from all the little plugins to be properly working. Likewise, you might have 60 files that are handling the on page functionality the interactions that happen with the user. So all of these files. I think the typically the browser can only request like eight files at a time I think you know it can request and get those pretty quickly depending on your internet speed. But again, like there's kind of a blocker there right a bottleneck. So if we can take 60 files and turn them into one file. Unblocked a whole lot of requests that the browser doesn't have to make any more. So we're basically take multiple files mash them all into a single file. And then things get a lot faster. Then we have something called compressing compressing is kind of like minifying but it's a little bit different minifying is more about removing things that are unnecessary. And there is some renaming of things but the names often still have to exist. Compressing is when you know maybe you take some shortcuts. So, for example, let's talk Braille for example. So if you're blind you read Braille. And, you know, normally you would think okay well Braille is just a bunch of letters. But Braille actually uses a form of compression where they take commonly use patterns like the letters in our. And they'll make that one character. So it kind of shortens up things and makes things a lot more succinct. So when we're compressing that happens at a kind of a much grander scale right like we got large files and lots of different algorithms that could be run to figure out what's the best way to compress and and handle a given file. So for example, a lot of people don't know this but if you take your average PNG file. The reason it takes a little while to compress that down to a smaller size is most compression tools will throw 50 different algorithms at it, and try each one. So it will come up with the end result file, and then it will choose the smallest file from that, and then that's how it will know what compression algorithm to use for that specific file. So, it's all kind of interesting but if you're familiar with zip file, you know, you put stuff in it, zip it up. It's a smaller, you unzip it. It's bigger. It's the same same kind of idea. Then we have lazy loading so lazy loading is when images on a page that are not in view yet are not loaded until you scroll down to where they actually should show. So hopefully that was succinct enough but there are some like things that maybe aren't specifically dependent on scrolling so let's say you had a big hero slider on the front of your homepage. In the case of that because one image would be on screen and the rest would be off the off screen images wouldn't load until the slider progressed to the next image. So, similar idea if you got a big gallery of 50 images and you start to scroll on the first, I don't know three or four maybe would show up, and then as you continue to scroll the next row would show. So in that scenario you're saving the initial load of 50 images that could block the user's ability to interact with page, which obviously that's a lot of images and that is a lot of time waiting, which is a lot of people who are likely to leave your site and not do what you want them to do on the site. So, lazy loading can really help if you have something that's really image heavy, or just in general, usually. So then we have implementation options right so we're going to talk a little bit about some of the tools that are out there. As well as pros cons and, and maybe talk a little bit about some of the additional features that we haven't hit on yet. So, first of all, like we said, your web host it's important to understand what kinds of caching that they provide. And if there are any steps you might need to take to enable or disable the caching, or different types of caching. So, a lot of hosts might give you an option to enable or disable things. And obviously, if you've got, you know, a plugin and Cloudflare and web host and all of these things are kind of playing together, you may want to consider turning things off at a particular level and, you know, handling them using a specific tool. Like we mentioned before if you have, let's say two types of page caching, one of your web host wanted to plug in. There's an issue right because let's say you've already come up with that equation of data freshness and you said well 24 hours is acceptable. Anything past that is not. So you've got web host caching for 24 hours but then you got a plug in caching for 24 hours. And so what's actually going to happen is, you're going to have a 48 hour. Time where content might not update. So, you know, just be aware that, you know, one thing that's caching could be cached by another thing that's caching, and then, even though this cache is cleared, this one's still running and so it could double. The amount of time something's cached. So, here's an example, blue host right so we give you the ability to turn the entire cache on or off. You can choose the caching level. And so it talks a little bit here about how long things are cached. So if you do assets only little cash things like images. It will only cash for like five minutes. And then as you kind of work your way up, you know, we're talking about six hours, and it's caching some additional things and then, you know, later down the road here we're talking more like a week. And, but again if you need to clear your cash, we have the clear everything button, and that will urge everything out of the cash and it will refresh. So just so you know as far as caching goes. The most common thing that I see where people kind of get hung up is they'll go and update a page in the admin, then go to the front end of the site and they'll see the content there that they just changed. They're logged in. So the because you're logged in, most of the time things aren't cached if you're logged in. So then somebody else will open it up on their computer. And they're not logged in and they're seeing the old content. When you encounter a situation like that, that would be when you might need to clear the cash to have that show up correctly. They're seeing things differently when you're logged out versus logged in, or when you're on one computer versus another 99% of time it's some sort of caching that's happening so that you, you'll want to go find out which which thing is being cached and how to how to clear it. Or reconfigure it so that auto is your cash. So here's an example from Kinsta. They have under their tools section for a given sites, a site cache tool, where you can clear the cash and modify your caching settings. Here's site ground and some of these screenshots by the way maybe a little bit out of date. But yeah so quick question here refreshing the browser window would also fix that for the person seeing the older version. Yes. Yeah, so if you do a refresh in the browser it doesn't always clear the cash because some of the cash a lot of times that like page caching is often done at the server level, as well as at the browser level so if we're talking browser cash doing a hard refresh will flush your browser cash but it may not flush the cash at the server level. So that's where you'd have to go and manually clear the cash. A smart caching tool is going to automatically clear the cash on the server as you update content so if you update a post, going to clear the cash for that specific post and nothing else, so that you would see the new content. But yeah so site ground, they have their super cacher, you know, I've blurt out some stuff here but you know you can toggle things on and off. They have men cache which is just a type of object cache. So they have different types of caching available. And, you know, becoming familiar with with what's there is important. Yeah, and then here's WP engine. They're a little bit more clear about what types of caches they have and so they actually call their caches page cache object cache network cache and all these different things so so you have a single page you can go to for a site, you can hit a button to clear everything or if you want to clear just a specific type of cache you can do that. So they have some toggles here where somewhere later on the page where you can turn certain things on or off like maybe you don't want object caching or whatever the case maybe. So then cloud flare cloud flares one of those things if you're just an average WordPress user you may not be familiar with. But like I said cloud flare sits between the user and the website. And so the cool thing about that is because it's in between. Your request is made to your website. Cloud flare is monitoring what's going on. The traffic that's coming through to your site. And it can pick up on patterns right so you can say ah well I've detected that this traffic is coming from some random bot in whatever country that you probably don't care about right. And it has some features where it can like automatically block bots and prevent security issues you know they had you depending on if you have a paid plan. There's actually a WordPress firewall that you can put in place so well. A lot of people will use a security plugin for that cloud flare actually will provide that. And the nice thing is that traffic that those bad actors that are trying to hit your website. That traffic never hits your site. So that means that you actually have more resources available to the valid traffic that cloud flare does live through. So technically while it's not a caching feature it's a security feature. It actually improves the performance of your site, because your site's not being brought down and resources aren't being consumed by non users. As much. But yeah so the free plan has page caching and browser caching and minification and they have CDN. So there's a lot of functionality there that you can take advantage of. In addition to security. And then just as like a personal side note, I actually have all my domains registered via cloud flare, just because they don't actually mark up the cost of the domains, like most anywhere else you go. So there's a few of kind of what it looks like to be inside of cloud flare. Like I said they have tons of stuff firewall security speed. There's their caching section. So they have the ability to purge things you can change how long, you know the rules for how long things stay in someone's browser cache. And so they have all kinds of different settings the cool thing here is that you can actually hit the help button below any one of these and it will give you a very detailed description of what's going on and why you might want to choose one thing over another. So, very, very helpful. So, getting into more of the WordPress plugin territory. Yeah, so someone asked if I can repeat what I said about cloud flare domain names. So, cloud flare is a no markup domain registrar, which means that, you know, most places you go you buy domain it's like, I don't know, 10 bucks for a year, let's say. They're marketing it up let's say a few bucks or something like that, or probably a lot more than that but let's say it was two bucks on. Clubs layer, you can get that same domain like $8 where you probably wouldn't find that deal anywhere else so. Yeah, the hosting domains is just a side thing there for them. The intent is to bring you in but they don't really make all that much money off the domains. All right, so plugin territory. What we have here is WP rocket WP rocket is one of the paid plugins that I would highly recommend for caching in general performance, because there are some performance things that are not caching. That helped you out with the minification concatenation performance aspects. They have support for CDN, but you actually do have to plug that in. They have support for browser caching. G zip compression, which is something we haven't actually talked about but G zip compression is where the website, or the plugin on the website in this case, will will compress files before it gets sent across the wire to the user's browser. And then the user's browser knows about G zip so it can then uncompress the files. So, whereas you might have a file that's five, five megabytes, that's being sent, because it's compressed it might be two megabytes. So only two megabytes gets sent over, but then in the end it gets unzipped and it's normal five megabyte cell so it actually saves. Obviously saves performance and in time to send things to different users. It also reduces the carbon footprint of of your website. So yeah so WP rocket, this is kind of a their user interface. Yeah CDN is. Yeah question was is CDN related to caching CDN is definitely related to caching. It's essentially taking your files and storing them around the world. So that, you know, who based off of where I am, I get the files that are closest to me. But yes the WP rocket has a bunch of different options here so again CDN you can plug that in. They do database optimization which is not something we've talked about. But there are certain things, you know, like revisions if you've for some reason told WordPress to store all the revisions, it will indefinitely store all the revisions. And so eventually you want to go clean those out. There are some settings that you can set to restrict that. But that is just one of several things you might want to clean up in terms of your database. And then we yeah we have lazy load support over here and the file optimization that's your minification concatenation and those kinds of things. So then in kind of what well the nice thing about WP rocket is paid plugins so that you actually have the ability to reach out to support. Some of the other free plugins don't, you know, you're just kind of on your own if you have a problem. But of course then some of these do that paid version so comic cash has a paid version which has a lot more advanced features, but they're free plugin does browser caching and Jesus compression and page caching. And, if you don't want to be overwhelmed with settings. This one just has a yes or no on or off. So, pretty simple configuration. In the rocket it's a good balance between simple configuration and not going too crazy overboard, but still giving you control you need. This is probably a little. Well it's super basic. But then in contrast we have W3 total cash which is again a free plugin. But it gives you so much control that if you don't know enough about caching and configuration of caching this one could be very overwhelming. So lots of features probably more so than most of the free plugins you'll see. But as you can see from the UI, you know we have like 10 different pages here all with probably 10 different settings. And if you, if you really really want to get down and dirty with all your settings and configurations. This will let you do it, and you can turn things on and off pretty easily. So if you know that your host only does this and you need a plugin to handle the rest. You can configure this to kind of work, work with what you've got already set up. People find this pretty overwhelming. I don't typically see this on a site unless it was set up by a developer. But if you feel after this talk, hopefully you feel a little more confident. I don't know if you would be this confident but we'll see. Oh yeah yeah yeah someone did mention that if you, if you have a free plugin there is a support forum on WordPress.org. But again, some depending some tools don't actually answer questions there it's more of a community thing some developers do answer questions there so it's really up to the developer how they handle that. Yeah and somebody else is agreeing W3 total cache is very intimidating so definitely not my recommended starting place. I have this thing called cash enabler, which has, again some relatively simple options, and you know this page caching minification compression. So as you can see here, not too many settings, you know just enough, if you're kind of new to this. This one should be relatively easy to configure. Unless you get too much into these exclusions because it's all regular expressions which most users don't understand. And that's where I think WP rockets a good option just because they don't make you do that kind of thing they just say here. Here's the patterns you can use, and it doesn't get too complicated regular expressions are crazy developer code for good match any one of these million things a million different ways. So WP optimize is another one this one actually started out I think as more of a database optimization tool and then started to turn more into a caching type plugin with, you know, a lot of the standard performance and optimization things that you would see. So, I think they have a lot more options as far as the database goes. So as you can see the databases the first thing listed here, and then they have images. So you can handle some optimizations there and then they have the caching section, where they have you know configurations for the gzip compressions and file headers and pre loading and a bunch of other stuff. So auto optimize is also a tool that I think mostly when it started it was more about minification concatenation, but then it's kind of expanded as well into some more of the general caching functionality. So as you can see here we have the JSCSS and HTML these are the types of files, web files that would exist. And so you can check a box to say I want to optimize the JavaScript code and so you can minify and concatenate each of these types of files. And then you have your images so that would be where like lazy loading and some of that kind of stuff might live. And then we have something called critical CSS. So CSS is essentially the documents that are part of your website that control what your site looks like how things are laid out what color things are just the general look and feel of the site. So here is with CSS. A lot of times, I've seen CSS is say 10,000 lines, which is a lot of lines. But when we're talking about critical CSS. It is the CSS required to only style and lay out the part of the site, or the page that you're on that you actually see when it first loads so what we call above the fold. The part that the user sees when they first hit the site critical CSS only handles that and then all the other lines of code will get loaded later. So that's the, that's the idea behind critical CSS. Some tools will just let you plug in your own if you figured that out by yourself. I know WP rocket will auto generate critical CSS. It's not perfect all the time but it actually does a pretty good job and can significant significantly speed up in your site and improve your core web vitals. And then we have the super cash plugin, which is the plugin that was created by automatic. So this is what the UI looks like for that so they do have kind of a simple on off. So that's their easy tab. Obviously you can go to the advanced tab and some of these others to get a little bit more control. But again this is just another, another option. And then we're going to kind of switch gears. This isn't so much caching as it is dealing with the image compression. Yeah, someone's asking if I have any impressions of W3 fastest cash. To be honest, I have not gone looking at too many caching plugins outside of this presentation so I think I probably probably skip that one when I was looking. But, but yeah so smush is a free WordPress plugin, and they do have a paid version but I'll tell you what that paid version does. So the free version, anytime you upload an image in WordPress it will automatically compress or optimize that image for it saves it and all of its different image sizes that it may be creating. And if you're not familiar with how WordPress handles images, when you upload let's say a big image, whatever image sizes that a theme and any plugins register WordPress creates one copy of that image for each image size that's registered I think by default WordPress has was it like three, three or four image sizes. And so, typically you upload one image you are going to end up with five. So all of these are going to be optimized. So they're much smaller than they would normally be so I tell people, you know, if you take a picture on your iPhone, usually it's seven megabytes. In general, we'd like a web page to be less than one and a half megs. It's just like a general guideline. So obviously if you're uploading a seven megabyte image and loading them to a page, especially if you have a page with multiple images, you've well exceeded that in your sites can be really slow. But with tool like this, you can actually take a seven meg image and make it something smaller than a Meg. And that that will help a lot. So, yeah, so the problem with Smush is that you is if you have images that are already on your site that weren't optimized and then you install Smush. That's where you get to the difference between the free version and paid version. The free version only let you optimize like, I don't know 50 or 100 images at a time. But if you pay, you can click a button, it'll just run through all of them without you having to sit there and click, click, click. So if you have a lot of images, like, say 1000 images, you'll be clicking a lot just to try to go back and optimize all those. So this is what Smush looks like. You know, if you have bulk Smush, and like I said, if you pay, you can kind of smush them all at once. So we have another one here, the Magify, Imageify, however you want to say it. I like a Magify for some reason. So, this one's just a pre plugin does exact same thing. But it's a service as well. So you pay a monthly fee. And you can basically optimize it. And if you pay for the unlimited version, it's like 10 bucks a month. So if you happen to work with a whole bunch of sites, you can actually just plug it into all your sites. And you don't have to worry about multiple licenses or anything like that. It's just, you're covered. And then even if you want to optimize images outside of WordPress, you can just go to the website, drag some images up, and it will optimize them. So, it's a good option. And it works perfectly well with. And actually, Magify works with WP Rocket. They basically promote WP Rocket inside of their plugin, and WP Rocket promotes Magify inside of there. So they, they work together to have a partnership there. Okay, so let's, let's look at some of these questions here, see some of these comments. I don't know if you've addressed, but I've been confused about whether I can use image optimization plugin with a caching plugin. Yes, because we're talking about a performance tool versus a caching tool. Again, we don't want to mix types of caching, but, but image optimization is actually totally separate from caching. So, yes, you can absolutely use those together. If you, let's see a lot more questions. I'm going to try to keep up. Looks good if you look at the amount of active installations when it was last updated. Okay, they're talking about the fastest caching plugin. Yeah, feel like a broken record for many people to compress before adding to the media library. Maybe should just allow clients to rely on a plugin instead. Like I said, clients, if you have clients, imagine files the way to go, I think. Use it for someone. Okay, gotcha. I have squash on my computer to my compression first, don't have a big department or helpers a few small sites. Let's see. I'm not sure the question actually was gotten to you there but does using a CDN avoid the need to compress images? That depends on your CDN. So there are some CDNs out there that will actually go above and beyond just like storing files and returning them. There are specific image CDNs that will detect that, you know, obviously they're going to keep a copy of your image. They will optimize that image for you. And they'll even go a step further where when your site loads up, it will detect, you know, what type of device is being used. Are you on a mobile device or your desktop or, you know, what's the situation? And it will know and create different image sizes. You know, we're talking about image sizes when we're impressed. Sometimes we'll have a big giant image and that giant image might be used on both desktop and mobile. Well, Google's not really going to like that, especially on mobile because it's going to try to load this giant image when it's really only needs to be, you know, yay big. If you can see my hands. So the CDN will actually size those images, not just optimize but resize them to fit that particular spot and return them that way. So it's a really good option. So if you're looking for CDNs, you know, find out a little bit about some of those features. So let's see. Yes, got some chatter about scoosh for one off image optimization. Let's see, I'm sure if we answer this question I came in late. Don't know if you've addressed and been confused about whether can use image optimization. Okay, yeah, that was that was answered. But yeah, so maybe to clarify about what's a caching plugin and what's not a caching plugin. So here on the right, and then, you know, some of the things we've mentioned that are not caching plugins over here on the left. As we said, Cloudflare is actually a service, it's not a plugin, but it can do caching, which you would want to take into account with some of the other tools. And again, WP rocket actually plays really well with Cloudflare and MagiFi. So this is why I'm kind of a fan of WP rocket. Because I use Cloudflare, I use MagiFi, use WP rocket, they all play well together. So if you're looking for a good set of tools, I'd probably mostly recommend that. But yeah, so there's some resources here, let me, I'll grab a copy of the link for these slides and I'll put them on the meetup page. As soon as we're done here, and that way you can reference the links, as well as, you know, the information here. So I guess we're right at time. So hopefully we've answered everyone's questions. And if you do have follow up questions, you can just shoot me a tweet at WP Scholar, and or just on my website at pscholar.com and I'll throw a follow up. Appreciate it.