Cool, awesome. Hey, I'm Dustin Mesa here to talk about WordPress upgrades. Let's get started. That's me, yeah, experienced from over a million WordPress upgrades. You can follow me on Twitter at Dustin Mesa. I'll link the slides later today. So, real quick about me, I'm the director of customer experience operations at WP Engine. WP Engine is a managed WordPress platform. My team is in charge of WordPress upgrades. We've been in charge of them for the last three years. I worked at Raxway's hosting for five years. I was the senior manager of cloud operations. So, I have a lot of hosting background and I went to UTSA and I got my degree in business management, which I never used in the technology industry. Yeah. So, real quick, why should you listen to me? I own the entire WordPress upgrade process at WP Engine. We've done over a million, easily now, over probably three million upgrades. I've been upgrading WordPress since version 3.5. For some of you, that won't be a lot. For some of you, that'll be a whole lot. I've handled every upgrade deferral request for the last two and a half years. So, for a while, for a long while, for two years, at WP Engine, if somebody wanted to defer their upgrade to the next version, they had to put in a deferral request and then I had a conversation with them around why they think they can't upgrade and what it is and, you know, this and that. So, I've seen literally thousands of reasons why somebody thinks they can't upgrade to the next version of WordPress. And I really think I've probably heard 99% of all the reasons and I have answers for all of them. So, yeah, I'm here to help. We've performed over two million upgrades. It's probably three by now. But yeah. So, a little bit about me and why you should listen to me on WordPress upgrades. So, a quick disclaimer. My advice is based on my experience and what I've seen work for our customers. Every site's unique. There's most likely an exception to every rule that I talk about, but most likely that exception doesn't apply to you. And you will need to dedicate time to this, but it's well worth it. There's no doubt about it. If you put in this time, it will pay you back in dividends. All right. This year, or this last year, the WordPress Security Learning Center did a survey about security and they asked, what steps do you take to secure your site? And the number one answer that experts gave was, I keep WordPress up to date. So right away, it's really important from a security perspective to keep it up to date. But I'm going to give you about a hundred other reasons why you should, too. So, let's talk about what people are saying about WordPress upgrades. There are so many updates I can't keep up. Okay? I mean, maybe that's true. I don't know what your life's like. WordPress upgrades always break my sites, always. No matter what, they always break my sites. If that's the case, you're doing it wrong. There's just zero doubt in my mind. That is not how WordPress works, but it is how you break WordPress. How could I ever know what an update will do to my site? All right. That's pretty fair. Yeah. We've got hundreds, if not thousands of code changes and big functional upgrades. How could I ever know what's going on in my site? I don't need the upgrade because my site just works. Oh, I like that one. I don't need to change my oil. My car just drives, right? And then I always stay one version behind so they can work out the bugs. Oh, I like that. I mean, hey, that might have been real in WordPress 1.2 and everything, but we've matured quite a bit, the community. All right. So, but those are all real things. I've heard that from hundreds, if not thousands of customers, and what that gives them is what I like to call button anxiety. You get a lot of anxiety about pushing that button. I once had a guy call me and he was literally crying because he didn't want us to upgrade his WordPress. And I was like, oh my gosh, like it really hit me at the end of that call. I was like, something's going on here. Like, yeah, here I am at the other side, you know, on the other side of the line saying, well, yeah, you should do it because it's better because you're going to get features and it's more secure. But man, if somebody is on the other side of that crying, there is something going on. Like there is a real thing. There's something there that this person is very afraid of or, you know, worried about. And so, so I took, I took some time and I thought about it. And I came to kind of this, this quote really, really helps me kind of summarize it. For every external struggle, there is an internal struggle look inside first. And so I thought about it. I was like, what if I was this guy, like, what am I afraid of? Well, shoot, then it kind of hit me, man, I could be afraid of a lot of stuff. What if this site, what if this site literally puts food on the table for my family every day? And now here's somebody saying, well, we're going to upgrade it. And hey, it might break, it might not. It's kind of up to you to get ready for that. Wow. If you're telling me you might do something that's going to break my site, which ultimately means you're going to take food off my table. Well, of course, I might cry about that, right? That's that's a big deal.  This one specifically I love because I think about, OK, if this site is my life and I can choose to spend two hours getting it ready for a WordPress upgrade or two hours doing marketing, getting new business, like once again, putting more food on the table, man, that's a real hard choice. You know, none of you got WordPress sites that you could spend two hours getting ready for an upgrade. You you you got them because you're passionate about something because you want to make a difference. You know, you want a business, something like that. So why would I ever choose spending two hours to get my site ready for WordPress upgrades? I get it, right? I stopped and I said, man, there's got to be a better way. I've got to give them because my usual answer was, no, just just go test it. Like you can do this and, you know, people didn't understand. And I said to myself, there's got to be a better way. I've got to be able to get people ready for this so that nobody ever calls me crying again. So I kind of started at the beginning. A lot of people don't understand what an upgrade is. You know, we all understand the high level concept. It's a WordPress upgrade. WordPress is changing, right? Maybe some people say get better, some people say get worse, but it's changing. And so I wanted to help people understand, well, that could be more than just, you know, changing its specifics. And not every upgrade is built the same. So the first kind of upgrade you can deal with is a feature or functional upgrade. And that's an upgrade that adds or removes features and functionality. And it's a, you know, it's a feature or functional upgrade because it will be a major or minor version increase. So major, that one or minor, that one. So that will change. If one of those first two numbers are changing, you know, you're going to get a functional upgrade. And this is the upgrade that breaks people's sights the most. You've also got a maintenance upgrade. So this is an upgrade that fixes bugs. It does not add or remove features or functionality. It's literally just being done because the community said, hey, we got a little too many bugs here. We should probably just fix those before we go and do another major release. These are excellent. When you see these, it's by the way, it's the third, the third number, the very last one, when you see these, you should be excited. You should be happy because the only thing that's going to happen is your site's going to get better. Same for this. So a security upgrade. It's an upgrade that closes security vulnerabilities. It does not add or remove features or functionality unless that functionality was vulnerable. Now, they would never remove a piece of functionality that's so like ingrained in WordPress that it would totally take down your site. Like they would never go, there's a vulnerability in posts. We better just get rid of posts, right? Yeah, right, right. So you should feel very confident that whatever security vulnerability they're patching is not going to actually just ruin your site. Once again, you should be excited to see security upgrades. Those are good, very, very good. So how does an upgrade become an upgrade? So you've got core contributors, those really, really smart people. Then you've got the community, those really, really smart and really exciting people. And together, they kind of decide on what to make WordPress. What should we do? Should we have this? Should we remove this? Is it time to get rid of this? What do we do? They do all that together, they work on it, and then you get what you call beta and there can be many betas, right? So it could be beta one, beta two, beta three, beta four. And when there's a beta, everybody kind of looks at it and says, okay, how's this? Is this good? Let's test it. Does it have bugs? If it does, let's fix them. And so it goes through this beta process. A lot of people test it, they submit bug reports. So when you get a beta plus bug reports, you might get another beta or once they finally feel good about it, you get a release candidate. And when there's a release candidate, that's basically WordPress saying, all right, we think we're done. Like if nobody raises their hand and says something really bad's here or there's bugs, this will probably become the next version in two weeks. So you know that release candidates are kind of like the final draft. And so yeah, that's how an upgrade kind of becomes. So now that you know about that, let me tell you why you need them. And I'm gonna tell you through kind of real life scenarios. So how many out there own a house? Good amount.  Like would you, if you knew a pipe burst, would you just be like, wow, whatevs? Like it's cool, I'll just keep living because my bed isn't wet, so I'll just go sleep. And like, no, no guys, come on. It's really easy to think of no, you would never let that happen to your house because it's your shelter, right? It's one of our core needs. It's shelter and it's providing it for your family. So you would never let it get like that. We all own cars probably. Actually, this is a great city, some of y'all might not own cars, which is cool.  And you're like, yeah.   Like I got the title, it's cool, I got the keys right here. I own a car, I've got it. Well, I mean, geez, yeah, yeah, in the most literal sense you do. It's like when I asked if you have a website and you don't upgrade it, it's like, well, okay, sure. You've got an upgrade, you've got a website, but you don't take care of it. I mean, it's the same deal here. How about this one, huh? I think we all know this guy. Yeah, computers, whatever. It's just getting really hot, so I got a strap on a fan to it. You know, I was that guy in college, I had a Pentium 3 laptop and ultimately Intel should have never put a Pentium 3 in a laptop, but eventually it got so hot that I could only use it for a prolonged period of time if I put a box fan on my lap, turned it on, and then put the laptop on top of it. So I'm guilty, I'm that guy, right? I've done it before. Now I know, I probably should have taken it in, I should have probably taken it apart and at least spread the dust out before I did that. And then, oh boy, hey, great, beautiful city, you've got the water. What if you had a boat and it hit a rock and it went down like that, and people were like, hey, you got a boat? It's like, yes, we can go fishing on it. We gotta take another boat out to it, but it's totally cool. Like we can still sit on the top half and fish. I've got a boat, we can fish from it. All of these things are ridiculous and we laugh, but we do it to our websites, guys. Those same websites that we look to put food on our table. So if you follow all of that, if you do everything, hopefully I've convinced you that doing WordPress upgrades is important, but if you do it, this is what you get right here. You get a well-oiled machine. You get more horsepower, it's faster. Every WordPress upgrade becomes faster. You get a very, very tuned machine. It is efficient. The bugs are gone. Things work better. New functions are created, everything. Like things just work much better. You get all the options. One of my favorites at WP Engine every now and then, I do support just for fun, just to kind of make sure I'm staying in touch with our customers. I remember once a customer asked something like, hey, how do I have a new menu? And I was like, well, that's pretty easy, but that's cool. I'll get the Codex for them and whatnot. And so I show them the steps, and they're like, I don't have that option. And I was like, what do you mean you don't have that option? So I go into their WordPress site. They were running such an old version of WordPress that menus wasn't in the UI. It was, and I was like, oh my gosh. Are you kidding me? That's like saying, yeah, I'm gonna buy this car, and I'm never gonna buy a new car because, but I don't want air conditioning. Air conditioning was invented. If everybody was like, my model T is good, guys. I get that four by 40 air conditioning because I just roll down my windows. Like, no, you want the options. People want autonomous driving. And then you get that fancy car alarm. It's secure.  WordPress Core is very secure. It's out of date code, and it's really insecure code that's insecure, but WordPress is very secure. And if you keep it updated, you get all of this. Now, I've painted a beautiful picture for you here. Everybody's excited. They're like, I'm gonna go home, I'm gonna upgrade my WordPress, and I'm gonna get this amazing car. But if you do that, and you don't do anything else, you might break your site, right? Like we talked about in the beginning. And so it's not enough for me to just tell you why and how and what you'll get. I'm actually gonna show you how to get ready. Literally five steps for how you will be ready to push the button every single time. Now, a lot of times people feel like, oh, I gotta take all these notes. I'm gonna post the slides so you don't have to, but you can. You can take pictures of it and stuff. That's totally fine. But remember, don't feel like you're gonna lose out. I'm gonna post the slides later today. So we've all got our site. I'm gonna use my site kind of through this and go through this. So step one is get to know your site. You're gonna start to learn a lot more about your site than you probably know today. And you're gonna start by cataloging your plugins. So you're gonna take your favorite spreadsheet, Excel, Google Sheets, OpenOffice, whatever you like. And you're gonna literally just, you could actually go to the plugins page and you can copy and paste and just paste. And what it'll give you is the first column will be all of your plugins. So you're gonna catalog them, you're gonna list each one. You're gonna rank them in the next column, high, medium, low, in respect to the criticality to your site. And be honest with yourself, guys. You're only gonna make more work if you're not honest. So something that's critical to your site, let's say you're a nonprofit and you need people to contact you because they want to sponsor your events. So probably your contact form is high criticality because if your contact form was gone, you would not be able to stay in business, right? So boom, if you had a contact form plugin, it would be high. Now, your slider plugin, probably not a high, right?  So it's different for every site. So but be honest, don't say everything's a high. You're gonna place a few sentences of notes about the front-end functionality. So what's this plugin do for me? Why do I have it installed? And how do I make sure I know it's working well, right? So contact form's real easy. You'd fill it out, you'd push it, and if you get the email, you know it's working. And then you're gonna provide exact instructions for how to reproduce that functionality. So we'll do it real quick for my site. All right, this is my wedding site. I was married like a year and a half ago. I owe funny stories to the site. So I worked for WP Engine, obviously, when we were meeting my wife, we were gonna get married. I was like, I'll do the website. I'll do it in WordPress. And she was like, sure, but like any good groom, I procrastinated and procrastinated because it's WordPress, I can make it in like a day. And I just kept on waiting and I was like, oh no, I'll do it, I'll do it. And then one day I come home and she's like, I made the site and I was like, what? What do you mean, show it to me? And she pulls it up and I was like, where did you make the site? Wix. I mean, I almost, I know I probably did fall on the ground. I looked at her and I said, listen, I would get laughed out of work if the people we invited went to a site and they're like, what is this, Wix? Like, I wouldn't even be able to have a job anymore. And she was like, well, then why don't you do it? And I was like, well, too shy. So I did it, so I did it. Okay, so real quick, we're gonna catalog my plugins. First one is a Kismet. You'll notice it's deactivated. That's because I don't have comments activated, but I keep it just in case I want comments. Now, that is pretty much against one of my rules, which is don't keep plugins around deactivated. Now, I trust a Kismet. It is literally kept alive by the most important people in WordPress. So I know that it's not gonna go stagnant and no one's gonna abandon the code. But seriously, don't leave plugins around deactivated. You're not gonna use them, just delete them. Plugins are not like Pokemon. You do not want to catch them all. There's just no doubt in my mind. All right, so I put a Kismet down, but there's no steps to replicate because it's not activated. I put contact form seven down. What contact form seven is, it's a place for our friends and family to contact us if they have questions about our wedding. It's a, oh, if I'm being honest, it's a low, but for my wife's sake, it's probably a medium. I don't mind. It's definitely not a high. If my friends and family can't contact me through my website, it's cool. They have my phone number, like they have all my other contact info. It's all right, so it's not a high criticality by any means, but we'll say medium for my wife. And how do I replicate functionality? I go to the contact us page, I type in some stuff, I hit submit, and then I as the owner of the site should expect to see an email. Boom, now we've done our first one. Second one, layer slider WP. We use a slider on the homepage. It rolls through our engagement photos. It's a medium criticality once again for my wife. And to replicate the functionality, I go to the homepage and I see images sliding by. Love it. So all this does is add the ability for someone to love it just like you can like it on Facebook for our site. It's definitely a low criticality plugin. To replicate it, I just go to my any post and I click the love it button and I should see the love it count go up by one. Easy. RSVP and wedding invitation. Okay, here we go. Now this is a high criticality because we really wanted people to go to our site and RSVP so we can understand who is coming. So if that's not there, the site's basically worthless in my opinion. So we've got RSVP plugin. It's a high criticality and to replicate, I would go to the RSVP section, choose how many guests put in my name, push submit and then I as the site owner would expect to get an email with the details. Boom. Vantum push menu that allows a navigation drawer on mobile phones. It's a low criticality. I don't care if my in-laws can't use the push menu. But if I wanted to replicate it, I go using an Android phone and make sure I can use the drawer navigator. And then WP Retina 2x. Just make sure that the images I have are shown in Retina on a Retina MacBook. Once again, that's low for me. I don't care. And to replicate it, I take my wife's MacBook and I go to the site and I inspect the image and it should inspect show Retina. All right, there we go. Took us about four or five minutes to do my site. There it is. Now I'm ready by cataloging my plugins. Sweet. So then you catalog your theme and custom functionality. List up the functions, rank them high, medium, and low. Place a few sentences. Provide instructions. So same thing. A lot of you have themes that don't have a lot of functionality. That's cool. Mine, it's just like pink and it kind of arranges stuff. So I mean, it's medium, right? It's not high probably because the RSVP still works if the theme isn't there. But yeah, so it's easy. I don't have any custom functionality. Some of you might. If you do, you're pretty advanced so you definitely know how to do all this stuff. And you just, you do the same thing as your plugin. Usually that's much lower, like one, two, three. So it's really easy. Cool. So now, step two, get to know your devs. For the high critical plugins and themes on your site, you contact those devs through their support or their support teams. You use your contact us or you use their support channels. You contact them and you let them know the specific functionality you're using in their plugin and you open a dialogue with them. So you're gonna get to be their best friend. So you're gonna talk to them about what that functionality does, how important is it, right? Is that functionality a core part of the plugin or more of an add-on? So asking Jetpack is pretty math. Core functionality of Jetpack, they're probably gonna tell you no. And so you know that, ooh, if pretty math is high criticality, I've got a bit of a risk here. It's cool though, because probably Jetpack's pretty good and they're not gonna break pretty math. What's the future of that functionality look like for them? So Jetpack would probably tell me, yeah, I have pretty math broke. I don't know if we'd fix it. And we're definitely not enhancing it, right? What kind of development cycles do they have? How do they get ready for new versions of WordPress? So you're gonna understand what these devs, the people that you've trusted to make critical functionality for your site, you are gonna get to know them and understand how they work. And that's gonna be really important because if something goes wrong, one, you already know kind of how responsive they are, how much they love that piece of functionality and everything, and you'll have an existing relationship with them. And then you'll find at least one alternative to each of those plugins because that might be a real thing you'll need in the future. Go find kind of the best rated one, one that definitely works for your needs. You don't need to install it. You can test it if you want, but just make sure and you notate that in the list that we've made, right? So step three, get to know the future. You're gonna subscribe to the releases part of the WordPress.org blog. WordPress.org blog is nice enough to split up all their blog posts into different categories. One of them is releases, and so you wanna subscribe to that. And then you'll start getting emails or RSS feed, whatever you do to subscribe. You're just gonna start getting notifications when betas are released. And when they are, you're gonna read that post. It's like, not even 200 words, so it's pretty easy. And you're gonna contact those devs, those same ones you already contacted. You're gonna contact those devs to get their thoughts on if that plugin is impacted. And then if so, find out when they believe it will be compatible, right? You're gonna identify if any custom functionality may be impacted. And if so, it might be a good idea to test the beta release. If you have custom functionality that's not in a plugin, not in a theme, and you think it's impacted, probably good to test this, and we'll talk more about testing it in a bit. But now you have an idea of what's coming and how the site may be impacted. So you might walk away from that going, doesn't look like I'm impacted at all. Yes, right? That's excellent. You don't have any anxiety about it either. It's not the unknown that was making that guy cry on the phone to me, right? You've got a peace of mind that you never had before. But hey, maybe it is impacting it. Cool. Now we can set the right expectations. Now we know there might be some bumps in the road that we gotta get through, but it's okay because I'm gonna show you how. Here's real quick what a WordPress beta release looks like. So check it out at the bullet points kind of where it gets meaty. Menus can now be managed with the customizer which allows you to live preview changes you're making without changing your site for visitors until you're ready. That's pretty cool, I like that functionality. But maybe you're running some crazy custom menu plugin. Ooh, that's a really good giveaway to contact that menu plugin dev and be like, hey, what do you think about the new changes in WordPress with the customizer? How's that gonna impact your plugin?   Or, oh yeah, you know what? That was a bit of a curveball, but we're already getting to work on testing it. We're gonna make sure it's gonna work with us. Once again, you're getting that peace of mind, right? No more button anxiety. So you're getting to know it, you're subscribed to releases. When a release candidate posts is made, if you remember release candidates when WordPress says we think we're basically done. Unless someone finds something really bad, this is what we're going with. You're going to contact the devs, no matter what, like even when the release candidate's done, you should contact the devs of all the high-criticality plugins. And just find out if they believe the plugin's compatible. Ask them, hey, have you tested? How are you feeling about it? Things like that. Then, this is where it gets real fun.  I've been in a lot of talks this week. People talk a lot about managed WordPress. It's the way to go. You get what you pay for. There are tons of managed WordPress hosts that have one-click staging sites, SiteGround, WP Engine, Pagely. All of them, you can use them. One-click staging, it's already a thing. So if you're not on one of those, get on one because it makes your life a lot easier. So create a staging site, do your one-click. Then install the WordPress beta tester plugin and follow the steps to upgrade to the latest release. So this is really easy if you've ever installed a plugin. You literally just search WordPress beta tester plugin. It comes up, it's the one, it's the first result. And basically what it allows you to do, it goes and gets the release candidate or whatever the latest kind of releases that's not production and then it installs it. So now on your staging site, you will have the release candidate running. So now you're like, whoa, my site is running with the new thing. Here's what a release candidate email looks like. It's really, it's even smaller than like a beta. Just kind of says, hey, here's the date we think we're gonna ship if no one finds anything weird. So you can kind of understand what you're doing. So now that you've installed your staging site and you've got it to the latest version, it's time to test.  Execute the steps to recreate the functionality you documented earlier. So run through them. Just like we made the steps, we're gonna go to my site, we're gonna check out the slider, run through all of those. Probably not gonna take you more than 15 minutes as long as you don't have like 100 plugins. Document each result and specifics about any failure. So if something doesn't work like it should have, document exactly what happened. On this step, when I click this button, it should have done this and instead it gave me a white screen or instead it gave me this error. Execute any backend functions that are unique to your site. Document those failures. A lot of you will not have these because this is usually custom stuff. Now we review the results. How are they? If there are no issues, awesome. You just had a no anxiety upgrade. Skip to step five. But if there are, let's dig in. If the issue is with a medium or low criticality function, you have some options. If it's medium or low, you can do nothing because you already said this is not high criticality. I can not care. You can contact the plugin dev. Just be like, hey man, I noticed that this didn't work. What are your thoughts? What are you guys gonna fix it? If not, or you can replace the functionality. You can build your own or really you can just go find another one especially if it's something common like WP Retina. But what if it's high? Ooh, this is when things get tricky. You're definitely contacting that plugin dev. You are giving them every detail about what you did, how you did it, what you're using the functionality. Hopefully they remember you because you've already started a nice dialogue with them. And this right here, this contact, this will completely determine when you can upgrade. So if they say we're not gonna be ready until a week after it's released, cool. You know I'm not upgrading for a week. Or you can replace the functionality. You could build it. You could pull that, a JetCord, that extra, the backup plugin that we decided we're gonna go find one for every high. You could put that in place and see if it works and if it uses it.  What do you wanna do? Is that dev? If that's a great dev right there? Oh, I'd wait on them. I'd wait on them a month. If that's a good dev and it's a plugin that you trust, I would wait. This is just a cool thing. You'll see it in the slides. This is a plugin dev talking about how they care about their customers and how they want WordPress to make sure they give them every advanced notice on how they can get ready. So this is just something that shows you. Plug-in devs, the good ones, they care about you and your sites. They never want your sites to break. They want their stuff to be ready. Once all those issues have been resolved, so either we wait a week or they fix it immediately or you didn't have any issues, right? It's time for a worry-free upgrade. You will now have a much better understanding of your site. You will not fear the upgrade button. You will be ready, this is even better, you will be ready for any maintenance or security upgrades that are released. No testing needed. Seriously, any maintenance or security upgrades that are released once you're on the latest version, you do not have to worry about just install them immediately. It is perfect and you know anxiety, no surprises. You'll have a game plan for the next functional upgrade. You've done it once, it's gonna get even easier. So preparing for next time, last steps. If you documented everything you did, this process will take half the time in the future. It's cut in half, it's even easier. If you manage lots of sites, the testing plans and communications to dev gets easier because usually when you're managing a lot of sites, you're relying on the same plugins. If every single site you have as a contact form and you use gravity forms, you're gonna have a really easy time talking to gravity forms about it, because it's just one for 40 sites. Ensure you plan your time accordingly over the next quarter. It's actually not even a ton of time. It's like five minutes, four times a quarter to read those emails and kind of look at them and see what's the new stuff. It's 30 minutes probably to test, but it's well worth it like I said in the beginning. Falling this plan takes time, but it also means a lot less surprises and I don't know about y'all, but I hate surprises, bad surprises, right? If every one of us could guarantee that we could spend 30 minutes a quarter and make sure that our kids never brought us home, bad surprises, wouldn't we do it? Of course we would. Of course we would, we'd love to get ahead of things. Life is all surprises, but here is one way that you can literally never have to call me crying on the phone.   That's it guys. Thanks so much. I'll be right up here. I'll hang out if you have any questions or anything, but I know it's kind of late so if you wanna skedaddle, you can. Thank you.