 I guess we'll go ahead and get started, so my name is Michael and like you probably saw I'm working for those. So I've been working in Wordpress for a long time. I ran into plenty of problems. So the topic for today's talk actually comes from my history with playing Clue with my family. I apparently am very annoying to play with, so no one wants to play with me anymore. I draw extended charts out in the little charts that they have with the game, and then I usually figure it out three or four steps ahead of everybody else. So you're going to kind of learn a similar approach to Wordpress troubleshooting as to how I play Clue. So some good work. So talking about troubleshooting, obviously there's kind of two situations. You have something that you were hoping wouldn't happen, that didn't happen at all, or you have something that didn't happen that you were hoping would happen. So that's kind of obvious, but we're going to kind of run through probably a few more obvious things, and then we'll get into the meat of it. So as far as troubleshooting, we have three basic steps. Obviously you want to, well I say obviously, a lot of people skip steps. So first you want to kind of document what's going on, right? And then once you have some sort of idea of this is what's happening, and this is documentation to kind of back that up, then you go into the diagnosis phase. So just like you don't want to have a doctor just diagnose you without really understanding your symptoms, you probably should try to diagnose the wordpress or website problem until you have a clear idea of what's actually happening. And then of course you've got to figure out once you diagnose the issue, what do we do next? So we'll try to address all of these things. So again, like I said, we have portable symptoms, what is the cause, and then what do we do about it? So there's a few things that kind of go into documenting an issue. And so normally we think, you know, I run through this issue, I know in my head what's going on, I don't necessarily need to write anything down. Not always true. So what we want to do is take note of a few essential details before we get started. So one of those is, well, these are the steps, right? So you want to write down what are the steps it took to reproduce the issue, what was it that actually happened, and then what was it you expected to happen, right? So there's obviously a difference of what you want to have happen and what actually happened. But the reproduction steps are important because you'll see in a little bit that there's some loopholes there. So this is my vanity of each of debugging. I did, I saw I expected. So if you can remember that, that's like the three key things I like to think about when I'm trying to document an issue. But then you want to kind of look at the contextual details, right? So you've got three basic things there. And then we're going to look a little bit at things like work arounds, right? So, well, if this is what you did, is there another way to replicate the issue? So that could be a clue as to what's going on. And when was it that the problem actually occurred? It may not seem like an important detail, but as you get into it, it may become a very important detail. So for example, oh yeah, I installed that plug-in or WordPress update happened in the war, something like that, right? So important to know the timing of that because you may get a weekend and still have a problem and then realize that maybe it's correlated to this thing. And if you know exactly, if you've noted when that happened, it can help. So yeah, recent changes, things like WordPress updates, any kind of configuration updates or things like that. Make a difference. Pay attention to software versions. So if you're not familiar, if you go into WordPress, there's the tools section. I don't think, it used to be there was nothing there. So no one really wins into the tools section. But now they're putting more and more things there. That's where your site health check is. So you can go and check there. Matter of fact, debug step number one, sometimes your website just tells you what's wrong. So check that. And then it has a button you can click and it will snag all of the versions of things. So if you needed to paste it into a support ticket or something like that, it makes it really easy. And then being aware of environmental issues. Was there some sort of change on the hosting side? Unfortunately, not all hosts will tell you this. Another host, not Lou host to be unnamed. I was working on a website one time and I built the site. It was live. I hadn't touched it in months. And then all of a sudden one day just white screen. Nothing. So I went in and started trying to figure it out. Took me a couple hours, but I figured it out. There's this one line of code that was the issue. And I found, well, I asked specifically the host if they had made a particular type of update. They said no. And then I discovered that yes, indeed it was related to this thing. And then I asked them again and they said yes. So environmental issues. And then, you know, what are the error messages and things that you see popping up? You may not see them popping up. So we'll talk a little bit about that. And then a screen capture or some sort of video as well is helpful just to remember exactly what happened. So, yeah, so as I mentioned, and some of these pictures are probably hard to see back there, but we have the site health tool, right? So like I said, you might actually go in here and your website will just tell you, oh, yeah, this thing is broken or, you know, you're missing these PHP extensions. That's probably why you don't have these issues. So trying to address some of those things first could be helpful, but maybe not always specific to your issue, but it could be a helpful clue at least. And then there's another tool, and this isn't the only tool like it. There's other ones, but Stream is a really great tool because there's certain pieces of information that Wordpress can give you by default from the site health tool, and there's certain pieces of information you can glean, but there's just certain information that if you're not paying attention and time goes by, you'll never get that information. So a tool like Stream will tell you, oh, yeah, this update happened or this person edited this post or they changed some setting in the customizer. So especially when you have multiple people working on a website, it's important to know these things because you'll see it broken and you know you didn't do anything. And then if you look and see, oh, it broke here. This is the last person who touched it. Let me talk to them. And then you get a better idea of what's going on. Yeah, this is a free point. So yeah, so this is one of the tools I would just say go ahead and install it because you can't retroactively give that information. So it has to be running and active. But yeah, so that's kind of the collection of information. So you know what you did to reproduce the issue. The Site Health tool has all that info you can grab and then you have the Stream tool, which will have some more information. And then you kind of go into the diagnosing stage. So this is my big word of warning. Always, always, always have a backup of your site before you go changing stuff. And you can also, if you have the ability to create a staging site and do your testing there, that's probably the best way to do it. But at a minimum, just make sure you have a recent backup of the site. And of course, if the issue that is your issue is a completely broken site you should have backups anyway before that. So yeah, this is my matrix for troubleshooting. So this is the tool that hopefully you'll find helpful. So we have basically a couple of things, right? So we have our issue source here. And then we have our issue types across the top there. So just two things, a little simpler to include, right? No, I guess, I don't know, our rooms and weapons maybe. So yeah, so the idea here is you can rule out a particular source. If the issue is isolated to a specific page or a section of the site and it's not a problem in some other pages or sections then it's more likely a data issue than say, like, if they're plugging that issue or something. So then there's security. So we can have security issues if we don't notice, but then we also really don't realize we have a problem. So typically if you have a security issue, the way that you notice it is your site has obviously been hacked. So those are usually pretty easy to identify. And then we have the performance issue. So I think most people understand performance if your site is really slow, it takes 30 seconds to load or even just 10 seconds, you know, that's a problem. And a number of things can happen because of that. And then we have the environmental issues. So as a general rule, if you were able to rule out all the other types of issues, chances are you have an environmental issue. Something happened on the hosting side, something in the configuration of the site itself behind the scenes at the base level, something's off. So that kind of covers the top half or the top portion of that matrix. Now we're going to kind of go down the side and take a look at all the different potential sources that could be a cause of that. So the first one is plugins. And plugin, by the way, we're going through these in the order that they are most likely to be the problem. So plugins are probably the most likely to be. And we're going to go through all the steps that you need to take to ensure that you've been able to identify what the actual source is. So the things you want to do here are you want to deactivate all the plugins. Again, this is why you want to have a backup of your site or do this on a staging site because sometimes it shouldn't be true that turning something off and then back on, it should still work the same, but that is not always the case. Usually is, but not always. So turning all of those things off and then seeing if the problem still exists. Now obviously if your problem is related to the functionality that a particular plugin provides, you can't turn that plugin off because you can't test it, right? So if, for example, we had an event plugin that was starting an issue and you deactivated everything else and you still have the problem and it's just core WordPress and then this plugin, very likely that plugin is the issue. But it's also kind of hard to turn it off. So another fun tool, I've initially had really good success with this tool. I have to get the caveat that recently I've tried this a few times and the plugin hasn't worked exactly the way I expected. But they have a plugin that's a pretty cool idea. It's called plugin detective. And so you can install it and it will go through the process of turning certain plugins on or off and it does it in a faster way than if you were to just turn them all off and have to go through one by one, turn it on, go to the page. Does it work? Turn it on, go to the page. Does it work? This will load a page and then it will automatically turn stuff on and off and just reload the page for you and say, is it broken? You just say yes or no and then at the end it'll tell you this is a problem or none of these plugins are a problem. So it's a quick way to kind of run that one down if it works. So then we have the theme. So the easiest way to test if you have a theme issue is to switch to the default WordPress theme, which could... I mean, obviously there's a lot of default WordPress themes at this point. Any default WordPress theme will work. Again, the caveat there is if your theme does everything under the sun and then you switch away from it and it was associated with some of that functionality, then who knows, right? It's probably the theme because the fact that they provide all that functionality but my recommendation is just to find a theme that just does what a theme should do and then use plugins for everything else. Don't try to get a theme that does 40,000 things because it's a nightmare to try to move away from that kind of thing. So then we have caching, right? Caching is another one that catches people off guard a lot. So this is where you go to load up a page and, all right, usually what happens is someone goes in to edit a page and then they're looking at it and they're logged in and everything looks great and then they turn their computer off and they go to their friend and they're like, hey, look at this new thing I made and their friend pulls it up on their computer and doesn't look anything like what they just did, right? So there's a difference between being logged in and seeing it and being logged out and seeing it or seeing it in a totally different browser or a totally different computer. So that's kind of your indicator that you have some sort of caching issue. Because if you just clear the cache or even better, if your cache had properly cleared itself when you made the change, then everyone on the site would be seeing the same thing. So generally, if you can log out or log in and get it to behave differently or if you can look in on a different device or browser and it behaves differently, then it's a caching issue. And then again, so we have and this is why data, like I said, is a little tricky. We have data as a source but also as an issue type. So again, can you correlate the data with a particular setting in WordPress or some sort of data entity? Try to change the settings, right? So if you think that it could be related to a particular thing, then just mess around the set, right? Test those out, try. So another interesting problem, I don't think people have had a big problem now, but I remember plenty of times like I would copy something and then paste it onto the website and then stuff will get really weird, right? Like you get weird characters or just like things would not show up or random stuff like that. This is how I found out about something called Gremlins, which are like, they have apparently something called zero white characters, which are characters you do not see, but they wreak havoc against the name Gremlins. So if you, particularly if you copy-pasted something, this could be a potential issue. So I found that one of the easier ways of dealing with it is just to delete the content and type it out by hand. And if that works, then that could be what you're dealing with. Just a question. When you're talking about data, what data are you talking about? So what was it? I'm trying to be slightly vague because it could be anything, specific to your site. But so like the example of events, right? Like let's say you have an events and maybe like, I don't know, a map's not showing up. Well, you know, it's a little, like I said, data can be a little tricky. But if you think about it, right? It takes a time to say, okay, well, why would maps not be showing up? It could be the functionality of the events plugin or the map plugin or whatever is not working, but it could also be, oh, the address that I put in couldn't be mapped to an actual geolocation and actual longitude and latitude. And so it can't figure out where to put things and it thinks that there's no places to show so it doesn't show the map or something like that, right? So, yeah, kind of a vague answer. No, that's also a thing. Yeah. And then we have third-party integration. So, this is, for example, having, you know, maybe your Twitter feed or some Facebook stuff that shows on the sidebar somewhere or in a putter, you know, if all that just stops working, then the first thing you should check is is Twitter down, is Facebook still up, you know? Or there, yeah, random things like that. So there's a lot of times you can check that it's easily just going to status pages for a particular service. And then, you know, there's, sometimes there's more specific integrations where you, all you can do is call the company, but don't assume that it's a plugin until after you figure out it's not the service itself. And then we have the server as a potential source. So if, as I gave the example earlier, if the site went down and no one, literally no one had touched the site in a month, you know, you can't really attribute it to anything else. 99% of the time that I found it is the server or the environment, hosting environment itself. And then, of course, at least likely, there's still a possibility is there could be a problem with WordPress itself. So in this scenario, we have to kind of narrow those things down, right? So we ruled out, oh, it's not a plugin or a data issue or whatever. You know, it's not a caching issue. So usually we can narrow it down. Maybe you'll have a couple of columns or rows that are potentials. You know, you're not really sure. And then we can go from there. So for plugins, if you identify that's where the issue is, the first thing I do is I try to reach out to a plugin author and say, hey, this very specific thing is broken. Here are my reproduction steps. Here's my screenshots. Here's the versions of the things I'm using. They're gonna, it saves, especially on the free forums when it takes like three days for people to respond. It can be very helpful just to have all that information. Now granted, some of that information maybe you don't want to post on a public forum, but there are ways you can paste that information now on the forum, specifically as like a private note for the plugin developer or something like that. Just know that if you're doing it on a free plugin, sometimes the authors don't actually provide support at all on there. So there's that. But that's the first step. Other option is you can always use a different plugin, unless of course this is one of two plugins and you chose this one because that one other one was no good. So then you're kind of in a catch 22 there. But yeah, usually there's some alternative that you can do it. Of course, the third course of option, action. If those two don't work, it's hiring a developer to fix the plugin and then ideally have that developer contribute that back to the plugin author and go from there. And I'll say this too, it's not uncommon to have two plugins that just because you're using both of those two specific plugins, they cause an issue. So you could be turning plugins off and on and then the problem shows up. But it only shows up because you have this plugin and this plugin active. So just be aware there could be a correlation between that. So for example, like I had a Gravity Forms, one of the Gravity Wiz, Gravity Perks extensions combined with custom Gravity Forms plugin somebody else wrote. And we're trying to get them to work together to do a special address auto-couple functionality and so you type in the address and it would pull from Google but then you would click it and it was supposed to pre-fill the fields but it didn't pre-fill one of the fields just because the way that this other plugin worked reflected the way this one worked. So I went to the one author and they said, oh yeah, it'll never work because of the way this other thing works. And I went to these people and was like, we wrote you some code, you can just paste it on your site and it'll work with both. So it's always a way to kind of, when you have two plugins, sometimes you get this plugin author lanes the other one and that one lanes the other one and that gets to be a weird situation but ideally in most cases I've found that you can get something to happen. So it's the same situation with a theme except this time you can only run one theme at a time so it's going to be a single theme that you're talking about. And then we have caching. So well the first course of action to verify is to flush the cache. I don't consider flushing the cache a permanent solution but it's also not so usually if you have caching it's cached for a certain period of time and if you happen to just notice that it has a refresh within this time frame it could just be that the type of change that you made didn't automatically clear the cache for whatever reason. Is this a cache on my website? Well maybe. I have a whole other caching talk it's a whole other hour. There are different types and levels of caching so typically most people will call some sort of plugin that does caching and so when they do that what's like caching? Most likely page caching is what we're talking about but there's also browser caching which is not something you can clear it's something that clears itself where the user goes in and clears it for themselves so that's another popular caching but then there's other tools out there like cloud flare and other services that get used that also happen to be cleared there's object caching and so usually when post has like three or four maybe more types of caching they'll give you one place to go and you can flush all of them just to see if that makes care of it but if you're constantly running into this problem it's very likely that whatever that caching solution is is not properly saying when I update a post I can't make sure that goes and that's why you keep getting that problem so it could be that you misconfigured something in a plugin that does caching but it also could be the host misconfigured something or something like that so just be aware of that flushing the cache may work but it may not be the ultimate solution and then we have data because at that point at the time you've narrowed in on a data issue you pretty much know and probably have control over that data so you should be able to fix it and then of course with third-party integrations the services down usually I'll just say we'll wait it out but sometimes a service will have kind of a I don't know chronic issue and then you have to make that decision to switch to something else let's see yeah and then of course with any kind of server environment issue you should be able to reach out to your web host if your site is hosted by some random person who says I do hosting and isn't very responsive you should get a real web host what's that yeah I kind of like it good office and then if you have a WordPress bug then you should report so I probably should have a link somewhere in the slides maybe I don't remember if I have links in here but there are places specific places if you just Google reported WordPress bug it should point you in the right direction to like a place you can do that so obviously this is very kind of a vague thing but I think the matrix aspect of it is the more interesting part it's not something I've seen anywhere else is that available for us to download too yeah so the slides well I'm trying to best way to share it it's just a Google slide page technically I really really need to write a blog post on this and just put this in here I haven't done that yet but yeah if you want to come up and snap a photo or something you can do that but I'll also can share off the link I guess technically you can go to WPscholar.com go to the contact form and just say hey send me a link to the slide deck and I can do that so a lot of the issue types I guess are pretty obvious when you look at it but if it's a visual issue or interactive the one that might get stuck out is when you pull up a page and it's just a white screen yeah how do you do this start yeah so if you get a white screen so both first of all there's usually an error message of some kind it's just normally on a production site showing that is a bad idea for security reasons so that's usually hidden so if your web host or you can set up some sort of staging site I think by default usually the staging sites will have will show you the error message so if you can copy the site and then do it in staging and you start to see those issues if you don't there is a simple let's say simple you do have to go into a pgbplot so there's a wpqpgplot and you can add the wpdbug true and sometimes that's set to true but there's also another thing called wpdbug display so actually make sure you can still see it and there's another one called the log yeah and there's one wpdb so if you wanted to actually log those errors you can find those on the server in a file that I've been tracking before we'll send the errors to a file somewhere and some web hosts will even have like a screen in the interface where it will show errors so there's that as well but yeah usually once you see the error it'll tell you the path to the file where that error is happening and 9 times out of 10 it includes the name of the plugin yeah because it's in the path of the thing the main issue that you're talking about though is that if you're beginning a white screen WordPress might not even be running at that point so WordPress won't be able to spit out any debug information for you well of course now the way it works if you get an actual white screen like you said is probably because there's something that's happening before WordPress is fully loaded but WordPress now outputs that even in production if it fatal errors it'll show that your site is experiencing a critical issue or something and it has a link to find out more information but it also emails whoever the admin is the actual full error if you get an email especially if you haven't looked at your site lately that says there's an issue take close attention to the path and maybe the plugin or whatever it is that's causing it could be a theme and of course if you identify it as a plugin that's a problem you won't want to disable it you could go into the file system and like reading the folder that you turned it off but that's kind of a complicated thing Bluehost actually has an interface where you just go toggle things on and off and even if the site doesn't fully load it will still turn that thing off so that would be one option but yeah just making sure you disable whatever it is that was one of the things that I would when I get the white screen or you know that it's a problem with this plugin you can't even get to the WP admin to turn it off I would do that but reading the plugin folder it just doesn't seem the right way to do it but I guess it is so so if you disable a plugin by say renaming the folder and you log into WordPress and go to the plugin screen it will then say all this plugin doesn't exist we've turned it off for you and so then at that point that plugin will never reactivate until you manually go reactivate so just a side note yeah that's another thing where it can reconfigure itself so but yeah like renaming the entire plugins folder something else and then visiting the site and seeing how it lives you can do a database too yeah if you really know what you're doing you can go to the database and there's an active plugins option in there that you can just clear out you can use WPCLI too yeah usually you'll have to do like dash dash get plugins when you do WPCLI so that it doesn't actually run the plugin so we'll just run WordPress and deactivate whatever it is you're trying to turn off but yeah it'll work a couple of things one of the ways that I get rid of gremlins and data is if I'm copying and pasting is copy it, put it in a notepad because that takes out all the formatting and then paste it into WordPress which is rid of a lot of things like that and sometimes with integrations I'll reload the API and that will sometimes get rid of little bugs there it's kind of like sometimes just yeah reconnect or exactly hey remember me and it goes oh yeah I'll hold right sometimes I'll fix that also in Element there's icon that will clean out your whatever you post it gosh it's a kind of that actually is something that I've experienced plenty of times Elementor has kind of like its own little cache of things that it stores so sometimes when you have a caching issue it's not just your plugin slash host slash cloud player slash all these things it's also oh just clear that thing in Elementor and then I'll go into this is if you're in the for instance the text part and you go and you copy something in there or you've written it or got it in there somehow and you look at it or it's all sorts of junk in there and you push that icon oh yeah it's a clear formatting yeah I think I know the old WordPress editor actually had a button that would do some sort of cleaning so I think it's just it may actually be a carryover from that just being injected into Elementor but but yeah but yeah you have to know it's there to use it yeah I used to have a lot of caching issues and I'm going to talk about BPS I used to be on a shared server but caching was the big issue what caching plugin do you recommend that kind of is good but not too good so I guess I run Elementor and that's when I clear when I make a lot of changes I clear the cache and I pull it up again and it's a disaster I know it's not a disaster for long but initially it's a real disaster and it's like oh my god what happened to my site and it takes a while for it to reset for whatever reason but do you have any recommendations like I use WP fastest cache and I also use all in one I know I'm sorry there's another caching plugin that I use so yeah so one thing I've noticed is that a lot of times a lot of the caching issues are actually related to people using too many caching plugins so and you have to understand and this is again part of that long caching talk what your host offers what you need to fill the gap in on and so having a plugin that will do certain things but knowing to turn this off and their plugin that handles this thing or you know understanding your hosting environment building on top of that and sometimes that's just calling and asking so you're saying that the host might be able to provide software to do that behind the scenes and not have to worry they may be doing it without even knowing and that may be causing problems most web posts have some sort of caching already in place now what type of caching and to what extent that will vary but as a general recommendation for free plugins I can't say that I have caching plugins that I like a lot I like W3 Total Cache but it is like you have to be a wizard to configure it but as far as like paid plugins my favorite combination is WP Rocket and Imagify the image optimization because they work together really well they also don't take up like a primary link in your site bar and you can configure it and they even have guides how to configure for WP Engine and GoDaddy and all these different web servers so they are familiar with what the host provides and how you should configure that thing which is a lot more than you'll get for any other a lot of those plugins aren't just doing caching they're doing a lot of other things too like deferring JavaScript and all that stuff so you have to go through a whole other configuration process with that caching plugin so there's caching and then there's what I call performance optimization which is non caching things that happen so if you start messing around with how JavaScript loads and all this kind of stuff it may work really really well and it can also break horribly and so what you're describing and looking horrible could be related to like your CSS something got mangled I think Rocket has like a safe mode yeah so like if you choose like there are certain things that are always safer to use and certain things that are more risky so usually it's safe to combine CSS it's more risky to combine JavaScript it's also more risky to do what they call critical CSS or the styling just for the top part of the page before you start to scroll and then they put all the other stuff and have it load later well if that's not properly configured then it will just flip atrocious and then if you don't know how to like reconfigure that then it can be a mess so if you just don't use that feature it could impact your Google web scores and stuff like that so probably something that kind of professional come in and actually do it right and I've noticed some plugins that aren't specifically for caching has caching in it and they also have WP and I like WP optimized but I don't use the caching feature I only use it for database optimization and then I delete it and that's another doctor oh yeah question does you run site help that's at least when I do that I get a note that says try this for caching you need this type of caching but does it normally look at caching problems on the site help WordPress itself will have specific checks and I think right now the one related to caching is what we call a persistent object cache so not all web hosts provide it so sometimes yeah and usually it is something that your web hosts will have to provide I think W3 Total Cache can be like an alternative to object caching that you can just use but yeah otherwise it's pretty much just a web hosting is that worth changing to what they say so it can make a big difference so the times where that would make more of an impact is if you have an e-commerce site or if you have like a lot of people working in the WordPress app if you have page caching on the front end of your website everything will probably load it wouldn't even be making those requests to the database for the information but when you're in the admin usually nothing is cached in there so if you've got I don't know say you run in a big new site you've got 100 editors you know they're all in there every day of working which is why I say e-commerce is probably the most common use case where you really want to have that because technically when people are buying things um you're not really caching everything because you don't want to show other people's parts to other people because you've cached it so that's where the e-commerce would come in I don't even know what time it is or how much time we have left here 13 minutes I'm just starting this well if you have questions or issues feel free to swing by where are the books so if you go to the auditorium