 So I hope that you enjoyed World of So far as I told you earlier, I'm George Tugusi and today we're going to talk about optimizing WordPress Web Server. Let's start this. Okay, I'm sharing a few key facts on that on me, just in case you find them interesting. There are also some contact information in the left side, so you can contact me later or catch me in the break or just send me a personal message if you're shy or whatever. I hope that we will have enough time for questions at the end of the presentation. In case we run out of time, you can always catch me outside. Okay, so this is the appendix of the presentation. It's separated in three chapters. It's actually our way of troubleshooting things. We need first to realize the common stack problems, the problems that come with the default installation of a WordPress Web Server. And then we have to go on understanding and analyzing the special needs of this stack. And then we should apply the optimal solutions. So this presentation has an intermediate level. It's not an amateur run. It's not an advanced one. But I'll be happy to answer your questions, even if they are based in an amateur level or advanced one. But let's stick please to the intermediate level and have all questions analyzed based on these slides. I have some assumptions for this presentation. The assumptions are that you already have a WordPress Web Server installed. We won't learn how to install a WordPress Web Server from scratch, because this is kind of outside of scope of the presentation. So I do assume that you already have your stack installed there. But you do have it at the default stage. So we're going to optimize this stack in order to behave super fast. Okay, let's focus on the technical part. And let's start this and realize the common stack problems. The problems that they do exist in the common installation of WordPress under a default WordPress installation of the server. It's a LAMP or LAMP. There are a few things in their resources. And we actually need to be sure that we don't limit ourselves. Things like shared hosting or related are limited ourselves. We can always apply some optimization there in shared hosting. But actually as we or our special needs grow, we will need dedicated resources. And you will need dedicated resources in order to get super fast. You can apply some plugins or do some optimizations in shared hosting, but these are not enough. These can be done in plugins level. So these are not the optimal solutions for this, for going super fast with WordPress. And actually there's... This was my server. We'll speak about the technologies. You need to have the optimal software to apply. This is a common issue. Just because when we are under dedicated resources, we don't have efficient time to manage our efficient knowledge to manage our stuff. So we are not really sure about the optimal software that needs to be applied or we don't have the time to manage or we don't have the knowledge to manage it. So we need to go under a managed plan. We need to have a level 4, level 3 engineer there, a DevOps engineer in order to actively maintain up to date and keep up to date all technologies that are involved in our WordPress websites. Web server. So don't set yourself on restrictions. We don't want shared hosting for this optimization because we might have some problematic neighbor or things that will lead to false words marking. So we need to be sure about our installations and we don't want to be under set. And there is another issue. It's actually stuck to CMS level. And it's just because WordPress has every other CMS uses PHP and MySQL so all these things are kind of heavy. They do a lot of queries and they need great time to respond back. Let's understand the needs. What happens when you call a single WordPress website URL? It's actually a request that it's from your browser. It's out to the server and it responds back. And this request has to be fast. It has to be fast because of the faster the better. Everything is going fast nowadays from user experience to SEO. Everything should be fast because of the user. You need to take care of the user. You need to be in user C and realize if you have a WordPress website that reacts fast and gives a better user experience than a slow one. So we need to take care of this request. We need to optimize things so they get back the faster. They get back faster than the default installation. So in order to do this, we will analyze the roadmap of a browser request. A browser request starts from user's level. It comes from your browser when you type a WordPress website URL and you hit enter. This request goes straight to the web server of the hosted website and in order to be parsed back, it needs to involve many technologies there. It needs to contact your CMS and your CMS might need to contact your PHP and your SQL which are big pains for this and should be optimized in order to get a faster response back. So we need to make sure that we apply some technologies in these levels in order to get them fast. And this is the roadmap of a CAST browser request. This is what we're going to do. This is what we call the hero state. We actually need to apply casting solutions between the web server and your CMS. We need to apply an HTTP CAST solution. You can use things like varnished services that run outside of the CMS but you can actually use services that run inside the CMS level which they are not the optimum solution because they will use the dropping of a WordPress in order to cast things but it's still a solution. You can also do that in case you are limited in services level. So once you apply an HTTP CAST you will get responses back and you will get responses back without being served directly from PHP. We have been regenerated. So you probably have noticed that once you have a website URL that is not changed for months or something on your website it gets heavy and it needs more time to get back. So applying an HTTP CAST will cast your issues and will get a response back to your browser without the need to regenerate through PHP. So stack on this and make sure that you apply a proper HTTP CAST solution. WordPress needs also to contact MSQL for several queries. It needs to contact it in order to respond back for almost every request. So we will have to also apply there an object cast which actually WordPress is using an object cast but since it's not persistent it's kind of useless. Every time that you enter a URL in your browser you get a response back that is generating some queries to the MSQL and MSQL response back in order to get a response back delivered to your local browser. And WordPress is doing some kind of cast by default but since it's not persistent it's getting cleared every time my PHP process is being stopped. So we need to add an object cast there in order to cast all these requests using a dropping that WordPress offers for this object cast. So this way you will have also the queries cast and you will get back a super fast response by doing so. So let's analyze everything. We talked about HTTP CAST that you can apply there. We talked about the object cast and we talked about solutions that are offered as a service in the dedicated resources but you can also apply solutions as a plugin directly to your CMS level which will be kind of slower but still it's a solution. You can reduce the request to PHP so you don't get regenerates and avoid bottlenecks here and you can also do some extra stuff that are not mentioned here. It's kind of casting PHP on code levels applying opcash or related technologies adding the HTTP plus two protocols in order to maximize requests and there are a few other things like keeping things up to date keeping your MySQL up to date keeping your PHP version up to date using the latest technologies so you are super fast and you are always up to date in order to provide more efficient speed. Let's move to questions. I left much time for this. You can always contact me using my personal information in case you want to. Questions? You can do caching within CMS through a plugin or outside. So the solutions outside are coming. What are the options? There are actually a lot of options there. What should we look for? What we look for is to have a test solution there. A solution that simply works for WordPress solution that this test is on WordPress and this actually needs a much technical background that we applied. It's not something that the end user can always do and it depends on your level. It actually depends on your level. If you are not familiar with technical stuff it's better to hire some guys to do that that usually offer manage hosting or there are experienced level 4 engineers level 3 or whatever. So you cannot say that there are few trusted solutions but you cannot say which will work better because every website has its own needs and as these special needs grow you may need to apply another solution that works better for you. Analyze these needs to propose a solution which what do you look for on the website when you analyze it? Well, actually this one is the default state of every WordPress installation. It comes and cast. It includes only a temporary cast and this cast as I already said is being removed actually upon every PHP process termination it gets wiped. So we don't actually want that. We want to cast as much content as we can. We want to serve as much static content as we can because every PHP application that uses MySQL is kind of heavy even if you are applying the latest technologies and you have a super fast server but the fault is not enough you need to optimize it. So you need to analyze what your WordPress website is doing and use website is not the same like a corporate one. You need to take care of the traffic you need to take care of the slave queries there are many things that you need to take care of so you do analyze things based on your needs and on your website needs but this is a generic rule you need to apply an HTTP cast and you need to apply an offset cast in order to make PHP regenerates terminated and in order to make WordPress not to be dependent on the MySQL in order to regenerate queries upon every single page view And do you have specific tools you recommend for analyzing the needs of WordPress sites? Well, I do recommend you can apply varnishes and etc because it's a very good tool and for the cast you can apply Redis or main cast they are pretty well used solutions that work for sure What's the name of it? It's Kuna It's main cast and Redis Redis is widely used even by Twitter it's a technology that replaces main cast or kind of replacing main cast was used for years and it's proven that it does a very good job You can also apply a node cast in HTTP cast which will cast things on code level in PHP code level but that's an option you would think it casts with user cast with PHP so if you are running PHP art it's the latest version you will have a great op-cast version in order to be enabled so you can compare things with it or without it it might generate some issues to you because you need to analyze these special needs that we earlier talked about Any other questions? Yes please You talked a lot about cash How do you know if cash is out of date? You want to validate cash? Yeah, but when you know that the cash is out of date It's out of date Yes, that's a special needs I talked about earlier you need to understand where you can apply a cast and you need to make sure that you apply a cast wherever it's possible but it's useful so we need to make exclusions you probably need to make some books during an edit of a post or something in order to serve always the latest version but actually you need to always serve as static as you can but this is not an option that you update a post for example because let's imagine that I am editing a post and I need to provide the latest version to the reader and the reader visits the post and it gets a previous version okay, he gets a cast version but it's not useful it's not our case so you need to make exclusions and you need to make sure that it fits in specific website parts but in some cases you might need to involve your surfing needs it's not like a play solution at all Thank you for that last question so then if it's an outdated page where do you look to know that it's outdated? actually you can see the headers of the web page and you need to see if the content was served using a cast mix or a cast hit a cast hit means that it gets served through the cast yes, it's such a lot of development tools you need to press depending on the language yes, it's usually F12 you use Chrome for example and you need to analyze the roadmap the tree of the load in the banks it will help you in order to understand the headers and you will get many useful information from this part not only about the cast you will get some hidden things that you may need to provide in order to debug things or whatever are we fine? thank you ok, thank you