 So yeah, so information there WPscholar.com is my website. I was, I'm a little out of the loop. We haven't done enough of these word camps for me to actually have put my slides up on my website. So I'll try to do that after this. So if anybody wants to check out the slides, you can. But yeah, so like she said, I've been working with WordPress for a very long time. I'm a developer. I've encountered almost every WordPress issue probably, not really, but a lot of them. So kind of wanted to share my experience, not just for the developers, but for the people who own websites, may not know all the ins and outs of what's going on behind the scenes. So it's kind of the idea of today. So obviously anytime you have a problem, there's two sides of the coin. Something happened that you weren't expecting to happen, or something didn't happen that you were expecting to happen. And so we're gonna kind of take a look at, what all these different situations could be. And we'll give you some structure around how you can actually go about the debugging process. So my family, just to give you a little history on the title of this talk, Clue, a detective's guide, right? I'm sure everybody's probably played the game Clue, with family or friends. So my family has basically banned me from ever playing Clue again. Because I have like an extra special super long grid that I draw out to the side of the piece of paper that they give you. And I can usually resolve the, figure out who done it in about a third of the time of most people. So I figure, well, why not apply a similar strategy to WordPress? And then it seems to be a relatively reliable way of helping to figure things out a lot faster. So hopefully, while you may not be good at Clue, hopefully you'll be good at figuring things out with WordPress. So as with any problem, the first thing you wanna do is you wanna document what the problem is. What are the symptoms that you're seeing? What's actually happening or not happening? We wanna end up at some sort of a diagnosis. What is the actual cause? We wanna get to the root issue of that. And then we gotta figure out what we're gonna do about it, right? So how are we gonna handle that situation? So the idea is to kind of touch on all three of these. The meat of it is gonna be the diagnosis because I think that's where it can be kind of difficult to figure that out if you're not familiar. So we'll spend a lot of time on that. But I wanna kind of walk through some of the essential details that you'll need to make note of when you're dealing with a WordPress problem, right? So first and foremost, first and foremost, you wanna make sure that you can actually reproduce the problem, right? So just because it happened once, potentially it could be a fluke or whatnot. So, and especially if you're not the one who's actually gonna be resolving the problem, you need to be able to outline the steps so that if you go to somebody else to get help, you'll be able to give them that information. You wanna actually make a note of what actually happened. And then of course you wanna make a note of what you expected to happen, right? So what was the difference between the two there? So these are kind of the essential details that you should always make note of when you first run into a problem. And you'd be surprised how much just thinking through, thinking through that, you can actually start to pick up on some clues along the way. But so first, I like to simplify it into I did, I saw, I expected. So kind of the Baini Vidi Vici, the I came, I saw, I conquered. This is kind of the troubleshooters guide to that. So this is what I did, this is what I saw, and this is what I expected to happen. So beyond those essential details, there are definitely some contextual details. And I won't say that they're necessarily optional. I think if you have any of these pieces of information, it's gonna be super helpful for you or anybody else that you're trying to help you resolve this situation. But again, part of that documentation process is, were there any workarounds? Like I did this, I expected this to happen, but I had to go to this other screen and do X, Y, Z to get it to actually work. Some of those things, those workarounds are actually very big hints as to potentially what might be going on if it works in one way and not another. You do wanna make a note of when that problem actually happened. Obviously, there could be a lot of reasons why. Could be you happened to update a plugin or somebody went in and started deactivating plugins, whatever the case may be, making a note of when the problem occurred or at least when you noticed it or kind of narrowing that time frame down will be very helpful. Which of course correlates to the recent changes, potentially make note of any software versions and that kind of thing. You wanna make note of the environment that you're in. Now, you're starting to look at this and you're saying, oh, well, this is a very long list of things that I'm starting to not necessarily know a lot about. And that's okay because WordPress makes some of this pretty easy. So I'll show you more about that in a second. And of course, if there's any error messages that you actually see on your site, we'll make a note of those. And really the, you know, any URLs or if you can get a quick screen capture or a video or something like that is very helpful. But a lot of this information, you can actually go into WordPress and if you go to the side nav there, there's the little tools section. And I don't think too many people click on it. Used to not be much of anything there but we've started adding more in recent WordPress versions. So this actually will show you on the first screen potential issues that you might need to resolve on your site. So sometimes your problem could be as simple as checking that list and actually addressing the things on that list. And then, you know, your problem might go away. But if it doesn't, there's a info tab which is the second tab, the screen that's not shown on here. But it'll actually list out all the details about what plugins you're running, what version of WordPress you're running, what, you know, your hosting environment is and all those kinds of things. And you can actually just click a button and it'll copy it all to your clipboard. So if you needed to paste it into a ticketing system for, you know, whoever might be helping you if you're trying to reach out to a third party plugin or something like that, it could be very helpful. So just be aware that that is there. As far as those contextual details, you know, you'll be able to grab a lot of that just from WordPress. But there are things that you won't really have the context around and I would recommend that you have something like, there's a plugin called Stream and it basically kind of keeps track of all the things that happen on your site. There's other ones out there like Simple History and things like that. But this will keep track of who edited, what pieces of content, you know, when the last time somebody logged in, you know, who activated or deactivated certain plugins and it'll keep track of when those things happen. So it's good to have that on there because it gives you just a little additional context. So if something does go wrong, especially if you're not the only person in there working on a site, you'll be able to at least have an idea like, well, this broke when so-and-so logged in. I at least know to like reach out to them and say, hey, you know, we're having this problem, are you familiar with what's going on there? So that's one of the things I think would be helpful is to go ahead and probably install something like that. Could just be very helpful with the debugging. So with that, we're gonna kind of jump into the diagnosis, right? So we've got all our details, we've got all of the information, we figured out some workarounds. How do we go about systematically testing to see what type of issue do we have? How do we know where it's coming from? This is where the meat of this is gonna be. But before we do all that, wanna make sure that if at all possible, if you have a staging site, that's the best place to test things. So if you can just copy your live site to a staging site and then run through your tests there and try to figure out the issue, or at least making sure that you have a good backup of your site, just in case something goes wrong. There's been plenty of times where something that seemed pretty innocuous like deactivating or switching themes and then switching right back, you would think that wouldn't break a whole lot. Well, I spent three hours one day trying to put about 70 to 85 widgets back on somebody's website because switching the themes made all those things go away. So it's good to have that backup just in case. So this is what I call our troubleshooting matrix. So this is, hopefully everybody in the back there can even see this. We have a slide for each of these items here, but so we have two sides. The first is on the left here. We have the issue source, potential sources of your problem. And on the top, we have the issue type. So kind of general categorizations of what types of issues you might run into. So this is your clue grid where you can start to mark things out as you eliminate them and then eventually you end up at a point where you say, okay, well, this cross-section is pinpointing this particular culprit as my problem. So yeah, so just, there, problem. So yeah, we're gonna run through all these different types. So the types of the issues, right? So there's different types of issues and having at least a general idea of why there are considered particular types of issues. How do you, what are these classifications that we're talking about? So first type is visual issue. So if something looks out of place on your site, you know, obviously that's a problem. We're not really talking about like your site white screens. That's not so much a visual issue. We're talking more about, you know, my sidebar should be on the side, but it is at the bottom below all of my content on the site, right? So like it's some sort of layout issue, some sort of, you know, something's not looking quite right. So that would be a visual issue. So we also have what we call an interactive issue. So this is where you load up a page and then for whatever reason, you know, you're not able to like click on buttons or, you know, just things that you would expect to happen on the page, like, you know, maybe you're in the back end of WordPress and you're working on a post and you hit the save button and nothing happens, right? So this is an interactive issue. So this is not something that's going to, you know, you're not loading up a page and then loading up another page. You're loading up a single page and then whatever's expected to happen there is just not, you know, it's not functional. Which leads us to a functional issue which is more likely to span across one or more pages. Now, technically an interactive issue could be affecting multiple pages on your site, but the functional issue is going to be more along the lines of an entire, you know, your site just white screens or maybe you realize that the footer doesn't load ever on any pages or maybe it only, you know, has an issue on one page where part of the site just, you know, it's not there. So this would be more of a functional issue. This kind of indicates something more kind of behind the scenes happening in the process of trying to load the page. It's just, it's never quite getting there. So that would be a functional issue. And then we have data issues, right? So this is where potentially it could just be a misconfiguration of some plugin or it could be, you know, could be a number of potential things. But the idea here is that it is an issue that's consistently displayed across a particular entity type in WordPress, right? So if you're thinking, oh, I've got a plugin and it does recipes, well, if this affects all of the recipes, potentially it could be obviously related to the recipe plugin, but it could be a data issue, something that, a misconfiguration of that, right? That would be affecting all of those. So being able to kind of identify, well, my problem only affects this type of data or this type of thing is very helpful. Then we also have security issues. So typically security issues aren't really noticed until there's obvious signs of tampering. And so if you're running some sort of security plugin or something like that, you might be able to pick up on some of the security issues earlier. But typically if you have a security issue, you know, it would be relatively obvious that someone's either hacked your site or there's strange things happening where your site turns up on Google with weird keywords or things like that. So then we have performance. I think most people could probably identify when something's just slow. So if we have some sort of performance issue, that one should be pretty straightforward to recognize. And then we have environmental issues. So this is basically your hosting environment. So this is, you know, basically if you've ruled out all of the other types of issues, chances are you probably are dealing with an environmental issue. Some sort of could be, you know, system or PHP version or, you know, something behind the scenes that you may or may not know anything about or even have control over. But so to give you an example of an environmental issue, I had a site that I had built and I had not touched it in about six months. And then out of the blue, it just white screens. The entire site's just not loading. And so I went looking and everything seemed like it should be okay. And then I was like, well, you know, I haven't touched anything. No one's even logged into the site in the last month. It's probably an environmental issue, right? Some sort of hosting thing that we're not aware of. So I reach out to the web host and I said, hey, has anything changed that we need to be aware of? And they said, no. I was like, okay, well, I guess I'm just gonna have to dig in and figure out what's going on. So come to find out. There was a particular library that they had updated that affected regular expressions, which if you don't know what that is, it's probably a good thing. But basically, if I took two characters and flipped them in this one area, the whole site came back up. And so then I reached back out and I said, did you update XYZ? And then they said yes. So if you've ruled out everything else, and especially if you haven't touched anything and then it breaks, it's very likely something on the hosting side. So you probably should just reach out to your web host. So those are the categorizations, right? So these are the general categories. And so we're gonna look now at the potential sources of these. Some of these might be a little bit similar, but they're definitely different. And these are listed kind of in order of likelihood that they are your problem. So just be aware of that as we're working down that list. So, I mean, everyone should be familiar with plugins, right? So you install a plugin, you get additional functionality. So how do we go about testing whether or not something is specific to a plugin? So the easiest way is to turn all your plugins off. Obviously if you're trying to debug an issue and you have functionality that is actually provided by a plugin, you don't wanna disable that one. But you wanna disable everything else. If you disable everything else that is still not working, it's very likely the plugin that's providing the functionality is the culprit. But it's potentially a conflict with another plugin or something like that that could be causing it. So, first thing you do is you deactivate all your plugins. And again, this is why you wanna make sure that you start your debugging on a test environment or something that's maybe not public. If you do end up having to do a test like this on a live site, there is a great little plugin called plugin detective. And plugin detective, basically what it does is it doesn't affect the front end of the site that everyone else sees. But it does provide kind of like an isolated environment where you can have a bunch of plugins not active and you can test and see if the problem's still happening. So this is a great little tool. It's actually a little bit faster than doing this yourself because if you deactivate them all, you're gonna be activating one plugin and testing. One plugin and testing. This one will actually deactivate about half of your plugins and then it'll half the next. And so, in fewer steps, you'll get to the problem a lot quicker if it is the plugin. So, highly recommend that. Doesn't work all the time, but it is definitely a good option. So, obviously the next thing most likely is your theme. So, if you have a theme and you think that is a potential problem, easiest way to find out is just to switch to one of the default WordPress themes and see if that fixes your problem. And again, if the functionality is the theme provided by the theme, then, you know, chances are it probably is the theme even though you can't really test it with a theme with a default WordPress theme. So, the next one here is caching. So, like I said, this is kind of the order of probability. So, caching issues are sometimes a little tricky and a lot of people don't necessarily know how to go about figuring out whether what they're dealing with is a caching issue or not. So, first thing you wanna do obviously is to check out the site on a different device. So, doing that or checking out at a different browser. So, for example, if you use Chrome, you might load up an incognito window. You could also use a guest profile which doesn't have any Chrome extensions or things like that that could be potentially interfering. Believe it or not, you do kind of have to rule out some of the things that you wouldn't expect, right? You might have something breaking out of sight and then you realize that, oh, there's this random Chrome extension that I had on my browser that was breaking it. So, that is a potential, but most likely you're dealing with a caching issue if you switch to your another browser or something and it works or doesn't work. So, the other thing you wanna do is log in, log out, check it both ways. A lot of the caching plugins will not cache if you're logged in because you have a little admin bar with your picture in it and it'd be a little awkward to cache a front end page with somebody's photo in the top right corner. So, it's always important to check that out. And then we have data issues and again, data is one of the categories, but it is also one of the potential issues. So, this is where you basically just have to look and say, okay, with the data that we're having issues with, does it correlate to a particular entity in WordPress, a post type, a taxonomy, a particular type of plugin configuration, something like that. And sometimes it's really tricky. So, there's these things that I learned about early on in my career. When I copied and pasted some code, but it happens a lot too when you copy and paste just text and put it into a site. They have these things called zero byte characters. So, they don't take up space. You don't see them, but they break things. And they're often called gremlins as well. So, sometimes, if you're copying and pasting something and it's just broken, it's better to just say, okay, well, let me just type it in directly and see if that makes a difference, right? So, things like that that might help you identify particular data issues. And then we have third-party integration. So, for example, if you have a site and you have maybe a Twitter or a Facebook integration of some kind, something like that, it would be pretty obvious if everything on the site worked, but then all of a sudden, your Facebook feed or whatever that you've got in the sidebar is just broken. So, it's very possible that it's just, it could be Facebook's down or something like that. So, the first thing you wanna do is just double check if you expect some sort of third-party integrations going on and something's broken. The first thing you do is check to make sure that the site's up and see how that's going. But you also wanna make sure that sometimes, sometimes it's the plugin that provides the integration. Sometimes it's the integration itself. So, you kinda gotta try to make that distinction. So, it's important to do that. So, then we have another potential source here is the server, right? So, this is the computer that the hosting environment provides to run your website on. So, if the issue happens in the absence of code or data changes and you can't attribute it to something else, then most likely, again, it's kind of the same situation where it's very likely an environmental issue or a server issue. Those tend to intersect quite a lot. So, and then, the last on the list here is WordPress itself, right? So, WordPress is pretty heavily tested across millions and millions of sites across the web. And so, it's less likely that WordPress would be causing an issue than a plugin that's only used by a thousand people or something. But, those issues do happen. And so, the way that you would validate if it's a WordPress core issue or if it's something else is to actually just try and test on a fresh WordPress installation. So, if you can spin up a new site somewhere and you can actually test there and see if it's happening, that's the way you would do that. But again, you know, most of the time, it's the additional functionality provided by a plugin or something that is causing the issue. So, how do we go about figuring out, you know, so we've eliminated a lot of things, maybe not everything, but we've got a much better idea of where we fall in that matrix and we've got a pretty good idea of, you know, where the issue's coming from, from our troubleshooting. So, we wanna figure out what we need to do next. So, the course of action is usually pretty straightforward in most cases. Obviously, if you've got a problem with a particular plugin, you're gonna reach out to the plugin author. The alternative is, of course, using a different plugin. So, when I was first, one of the first big sites that I built, this was back before, you know, we had all the great events plugins and things that we have today. There was one person in India who had written an events plugin and that was the only events plugin that I could find anywhere. And so, I had a client that wanted some events on their site and so I put that on there. And so, we imported about 2,000 events and then the page that was showing the events just crashed. Took me a little while to figure out. The plugin author never actually implemented pagination so there was no way to, you know, limit the number of things that were showing on the page or trying to load 2,000 items on a single page. So, reached out to the plugin author. I said, hey, you seem to have forgotten something important. Is this something that you would be willing to fix? And he said, no. That's when I wrote the pagination and gave it back to him so he could put it in his plugin. So, yeah, so it's important to, you know, at least attempt to communicate and resolve things with the plugin author and let them help you if they will. But sometimes they don't and, you know, especially with free plugins, support is also free and completely optional from the developer side. So, sometimes the best course of action is just to use a different plugin. And the same situation applies with the theme, right? So you're gonna reach out to the theme author, try to resolve it. Sometimes you end up in these matches where you're like, okay, well, you know, I think it's this plugin or this theme and you reach out to the author and they say, well, you know, it seems to be conflicting with this plugin or whatever you have going on over there. And then that plugin author's like, well, no, it seems to be related to the theme. And so you end up kind of going back and forth and it's difficult, especially if you don't know what you're doing to resolve those situations. But again, you know, a lot of times, even if you just offer, say, hey, find a developer, so can you dig into this issue a little bit? So when I, one of the first plugins I wrote, there was another plugin that did something very similar, but I had a plugin that did something a little bit different, that other plugin did some other things a little different. So a lot of people were using both plugins. They were just slider plugins, but the way that WordPress worked at the time, there was kind of only one plugin could do X and the other one, whatever plugin was last to do X, one basically. So WordPress plugins typically load alphabetically. So because of the alphabetical order in which the names of our plugins came, my plugin was constantly breaking because this other plugin was doing the thing and overriding what mine did. So mine wasn't poorly coded, but it was also a constant pain. So it's important to realize that those types of situations do and can come up. Hopefully it's a lot less now, but if you do end up with kind of this tug of war, it's good to maybe get a third opinion on that. So caching is another thing you have to deal with. A lot of times, just so you're aware with caching, if you happen to have multiple caching plugins or a host that does caching and then a caching plugin, it's very likely that the issue is you've got two types of caching coming from two different places and they're trying to override and step on each other. So just be aware that that's a potential that you might need to resolve, but a lot of times with caching, it's a configuration issue. Ideally, if you're using something like WP Rocket where they've got really good support and you could just reach out and say, hey, my site seems to not be properly caching or something like that, they'll be able to help you. If you happen to be using a free plugin, like W3 Total Cache, it's got a million options and if you're not at all a complete caching nerd, then you'll probably wanna switch to a different plugin or just learn a lot about configuring cache. So the other one here is data, right? So the only thing we can really say about that is once you figure out what data is wrong, fix the data, fix the configuration, whatever that may be. And then we have our third-party integration. Again, this is kind of a sit and wait if the service is down or you can use an alternative service. And then we have the server and that's really just gonna be contacting and reaching out to your web host. So then of course, if you do happen to run into an issue with WordPress itself, then it's important to report that. So there is typically developers know how to, thank you, how to report a bug through the official track system and all of that. But typically if you just go to WordPress support and you say, hey, I'm running into this issue, there's kind of some general places that you can post and someone should be able to help you out and help you get a report filed for that. So that's basically it. I could provide a lot more examples or if people have specific scenarios that they're like, hey, I'm having this problem, what category, how do I identify where this thing falls? You know, we can kind of take a look at that. I'm at the Bluehost booth. So if you have those kinds of questions or wanna actually dig into a specific issue, always happy to help with that. But yeah, basically just wanna open it up for general questions and I'll go ahead and see if I can pull up this matrix here again. And we start with a question from the chat. Ron Amick asks, the stream plugin, does that affect site performance much or at all, do you know? It hooks into very specific actions. So it's not like, you know, if you log in, it's gonna just make a note of that. You know, it will store those things in the database but it shouldn't affect site performance from an end user standpoint. It should be a pretty lightweight plugin. Next. Yes, second row. So we get emails sometimes and somebody will just say, log in to the room and I'm like, I'll make a blank post and I'm like, it's fine. It's not good. And then they'll send a screenshot and they're like, look, it's broken. No, it's not broken. And what happened was something in a plugin changed the space in blocks by like, in this much. So I think we're trying to figure out a way to be like, okay, what we can do and what caused it, like, can we find a way to easily streamline something like that? Yeah, so the question being, have you been able to streamline the process of collecting actually useful feedback from a customer or something that is having a problem? So, yeah, there's a lot of people who will just, yeah, exactly send those emails. They're like, oh yeah, this is broken and then you're like, it's broken how? It's broken where? So, yeah, it can be difficult, but yeah, I think if you have a way to kind of automate the or enforce or just heavily push upon your customers, the whole, I did, I saw, I expected, at least they're not saying, hey, the block editor is broken and then just like leaving it at that, right? They're saying, well, I was on this page and I was doing XYZ and the spacing's all wrong, right? I wanted the spacing to be this way and it's not. So then at least hopefully you'll get some sort of helpful feedback, but yeah, people are people and they have their own ways of going about things, so. Next, from the chat. Ron again, how do you scan a site for broken links? How do you scan a site for broken links? So there are some great tools out there. Now, I would highly recommend not installing a plugin like Broken Link Checker. It can be a very, you know, it scans your site from inside of your site and it affects your site as far as the performance, so you don't want to cause more issues in the process. So if you're trying to scan for broken links, I recommend some sort of external tool to do it from the outside. There's a lot of SEO tools that can check for that. There's a tool called HexaWatch. They actually have some cool stuff. There's a HexaMatic and HexaSpark and they're doing a lot of cool stuff, but they actually have a tool that will monitor not just broken links, for example, but they'll actually also monitor the technologies used on your site. So if for some reason your site technology changed behind the scenes, it would actually let you know. So if there was some sort of unexpected hosting change or something like that, it could actually potentially let you know. So yeah, so there's some great tools out there like that. Yeah, Screaming Frog is one. If you happen to be on a Mac, there's one called Integrity which will do a full crawl of the site and detect a lot of the broken links and that kind of thing. Anyone else? In that case, thank you very much and I believe it is lunchtime.