 Hello, welcome to WordCamp 2023 and my talk on easy updates for old content. Thank you so much for coming. I appreciate seeing you all here. My name is Ken Gagney, pronouns he, him, his. I am a technical account manager at NewsPak, which is a division of automatic. I've been at automatic for six years. I've been using WordPress for 17 years. My talk is based on both of those experience. It will be both slide-based and live demo. There will be a link at the end of the talk to download all the tools that I'm going to be demoing for you. So if you miss something, don't worry about it. It's all online. I'd like to start by asking who here has their own personal website? Not one for a client, but one for themselves. Okay, cool. This is me making sure I'm in the right room. Good. How many of you have three of your own WordPress websites? Three, five, three, four, three. So three is the most here. Okay. How many of those sites have you posted new content to in the last month? None. None? None. How old is your oldest of the three sites? Six years. Six years. Okay, cool, cool. So we might have slightly different definitions of old content. I have a lot of websites, a lot of WordPress websites. They've been around for a while. But before I was a webmaster, if we're even using that term anymore, I was a sysop. I was a sysop on CompuServe, and Genie, and Delphi. And then I went to this small service called CyndiCom Online. And I was tired of each one getting shut down to me having to be shuffled off to a new home. I was tired of playing in other people's sandboxes. So after this happened four times, I was like, I need to build my own sandbox and play in that. So I started looking around, and I saw some different CMSs. One of them was called WordPress. The other one, I've already forgotten the name. It used to be really popular, and then they decided to go commercial and everybody jumped ship and went to WordPress. So I was glad I didn't choose that one. So I launched my first WordPress website. I used to have a movie forum on some of those online services. So I started a movie blog, and it was called ShowBits. And I would write reviews of movies, just for fun, just for myself. And it launched in December of 2006. That is when my first WordPress website went live. So in 2006, I was running WordPress version 2.0, which was the latest version, on a server running PHP 5.2. And I kept the site up and running for a long time. It's still up and running. So let's skip ahead 14 years in the lifespan of ShowBits. It's now the year 2020. A lot has changed in web standards, in the technology, in the design, in the user interface, in the expectations. So in the tech side, we're now running WordPress version 5.3. We're running PHP 7.4. And 16 years, or 14 years of all these changes. This is what my website now looks like. The same. It hasn't changed. It's running the same theme that I launched it with 14 years ago. I've been posting new content to it, but I've never redesigned it. Because it still works. Why would I go through all the trouble redesigning it when it works? There's been some other changes though, that I might want to take into account in those 14 years. So again, my site launched in December of 2006. Does anybody know what happened in the world of technology just one month later, January 2007? She's holding it in her hand. The iPhone, I launched my website before there were mobile devices to speak of. Before there were responsive websites. So this is what my website looked like on an iPhone in 2020. You have to pinch and zoom to see the sidebar, to scroll around. We all remember those days. Those days should have expired long ago. But not on my website. Nope, I was still running a non-responsive theme in 2020. And there was another big change in December of 2018. Does anybody know what that was? WordPress 5.0, Gutenberg. Big change. Maybe not to the end user reading the content, but certainly to us on the backend. Some of us installed the classic editor plug-in and held onto that for a long time. Some of you may still be running classic editor. Shame on you. Gutenberg is really good now. So, I have this website, 14 years old, still works. If it ain't broke, why would I update it? Well, I can give you five good reasons. One, we just went over, it wasn't mobile friendly. I want to be able to reference my own site on my own iPhone. I want other people to be able to see it. I want to send them the link and not be embarrassed about it. So I want to update my site with a new theme that's mobile friendly. I want to avoid a PHP incompatibility. And my site, when I launched it, was running on PHP 5.2. WordPress 6.3 just came out last month, now requires PHP 7.0 as a minimum. And even PHP 7 is already at end of life. This is another website that I recently inherited that I had to update from PHP 5.2 to 7.0. I just did a lift and shift and it broke because the theme was again from 2006. This is a different site, not show bits, but this is what happened when I tried to update it on a new server, just tons of fatal crashes because that theme was never written with new versions of PHP in mind and some of its calls have been deprecated. Dream host is where I have some of my sites and it is requiring people to update to PHP 8. It is saying right here that we no longer support PHP 7.4 and older and if you want to continue running it, we will charge you an extra $5 a month. So I need to update the PHP 8 and I need to make sure my site built 15 years ago, works in PHP 8. So just because it is working today in my site does not mean it will tomorrow as these upgrades become relentless and required. Reputation, show bits is my very first WordPress website. It has been around a long time, which means it has had a lot of time to be indexed by Google. People who search my name might come across this site and I don't want people finding this site and saying, this guy works at automatic. That's embarrassing. No, I want them to see a site that I'm proud of. Content, so that's not just me, okay. That's fun. I don't know why that's doing that. I mean, if you just blink really fast you can read it. So the slide says, okay, let's see if it goes back to that same point if it happens again. Great, okay. Content has a long tail. So again, my posts have been around for a while and if you Google search some of this stuff it might still come up. I might still be getting traffic to this site. I might still be generating revenue or page clicks or contacts or inbound leads from an old website and I want it to look good. It might be generating even more inbound leads if it looks better. And also maybe I'm, okay, I think it's my Bluetooth clicker. That's interesting. Maybe I'm still blogging on this website. Maybe there's a reason I've kept it up. Maybe I'm still watching movies and still writing reviews. Or maybe I want to get back into it. Maybe this is an interest I had once upon a time. The reason it's running such an old theme is because I neglected it and now I want to show it some love. Maybe I want to start writing content for it again. And I'm used to higher standards now in my technology and I want to update this site to those modern standards. So I'm going to show you how to update old sites, the content specifically in the design, for modern aesthetics. And before we begin, I've already done this. If you're following along at home watching this video on WordPress TV, there are three things I want you to do first. Take a backup of your site. Make sure the backup works and that you know how to restore it. And then take another backup. Not just one. Always have multiple backups. I had an incident two years ago where my internal hard drive and my external backup drive failed simultaneously. Thank goodness for cloud backups. Thank goodness for backblaze. So always have multiple backups. Now at this point I'm going to switch to a live demo and show you some of what I've been talking about. Just need to switch my display for a moment. There we go. So here is show bits today and I want to change it. WordPress makes it really easy to change the theme for a site. Just install it, activate it, brings all your content over. That's great. So I need to choose a new theme. So there's another site I have developed more recently which uses a nice theme that I like. This is my Star Trek podcast. It's called Transporter Lock and it has a featured image for each new episode of my podcast. It has a little teaser, some text that I wrote. Then you can click to read more and listen to the episode. And you can just very quickly scroll down a single page and see all the episodes. You know compare this to my old blog which was truly a blog that shows the entirety of every post in Reverse Chron. I'm sure we've all had that standard once upon a time. Very popular in live journal which I was never on. But it's just you scroll and you scroll and you scroll and it gets tiring. So I want this site to look more like this. Very visual, lots of images, short amounts of text. Grab people, pull them into the episode they want. Let's start there. So for this demo I'm going to use the same theme from Transporter Lock on show bits. I want to switch show bits to look just like my Star Trek podcast. So I'm going to go into the back end. I've already installed that theme. It's called bloggable right here. So I'm going to click activate and it's activated. Great. So this should be done like we're going to end the presentation right because now I've installed the new theme. Yeah, right he says. Well okay. So clearly I'm going to customize the header image at some point. That's fine. But this doesn't look as good as my Star Trek podcast. So there's no images and all the text has these ellipses at the end. Like they're incomplete thoughts, sentences just cut off, mid predicate. This is not that great. So when you switch a theme it brings all your content over but it doesn't magically generate content for you. And my old site did not have featured images or manual excerpts and that's what this Star Trek podcast is using. Each of these images is a featured image on the post and I wrote a manual excerpt at the bottom of each story. So we need to fill in those gaps on my 14 or 16 year old blog over here. So the way we're going to do that, well the reason there are no featured images on my movie blog is because, again I launched my movie blog in December 2006 using WordPress 2.0. That's when it launched. And three years later, to the month, December 2009, WordPress 2.9 came out and introduced featured images. They weren't in WordPress until 2009. So my theme didn't support featured images because they didn't exist yet. And so I already had three years of writing without featured images. I never upgraded my theme, never had the opportunity to go back and add featured images. So now I have to do that now. I have 14 years of content I have to add featured images to. The best way to do that is programmatically. And I don't mean AI. I'm sure AI could do some of the things I'm going to be talking about today. But AI usually has a premium upsell. So even Jetpack, which one person mentioned earlier talk, has, you get 20 credits free and they need to pay for more. Other plugins are similar where you have to pay for them. So I'm not using AI today, I'm just showing you some scripts, some plugins that can help you do this stuff. So I'm going to install a plugin called Code Snippets. This allows you to execute PHP on your site. You don't have to use the command line. You don't have to install other plugins, just this one. So let's go ahead and do that. WP Admin plugin install. There we go. And there are other plugins like Code Snippets. I'm not saying one is better than the other. This is just one that I know works well and works with what I'm demoing today. So here's Code Snippets. I'm going to install it and I'm going to activate it. I'm also very glad that the WordPress.org plugin repository is not blocked by this school's Wi-Fi. And now we have this new menu item called Snippets. And there are no Snippets at this moment. But I'm going to go ahead and click Import at the top. And I'm going to choose a file. And this is a script that I will make available at the end of this talk that I'm importing right now. And it says your Snippet has been imported. Go ahead and have fun with it. It's like, thanks, I will. And there it is. It's called Fix Featured Images. And I'm just going to, it's the type single use. So there are some Snippets that run all the time. And then there are some Snippets that you just run once. And that's all we want to do. It's just run this one once. So I'm going to click the Play button. And great, it's run. And now I'm going to go to my home page. And now I got some images. It's added images to six years of posts. There are some that are missing. It didn't get all of them. But this is a really good start. You know, even if I go back to previous posts, to even older posts, it's not just the first page of them. I got quite a few here. So what it did was it went through all my old posts, looked for images that I had attached to those posts and probably used in the body. And it took the first one and it assigned it as Featured Image. And there's a small but important distinction I want to make here. It didn't look in the body of the post to find the first embedded image. It looked for the first attached image. When you are writing a post in the Post Editor and you upload a post, it saves some metadata in the media library. You can see right here that the second image on the list take care of yourself. It says attached to a post called take care of yourself for Christmas. That means I was writing that post and I clicked Insert Image and I dragged that file in and I uploaded it. And it got attached to that post. It might not have appeared in the body at all. I might have decided later I'm not going to use that. I kept it in the media library but I didn't insert it into the post. It's still saved in the media library as being attached to that post. And so it got added as the Featured Image. Similarly, I might have written a post and used only media I had already uploaded from previous posts. I'm just reusing, repurposing old media. And if I had done that, the script I just ran would have found no media attached to that post because there was nothing uploaded to that post. It was all previously uploaded to other posts. You can actually, in the media library, when you're in list view, not grid view, you can go to Filter and search just by unattached media. This is media that's not attached to any post. Either the post got deleted or the media got uploaded directly to the media library, not in the post editor. And you can actually go back and you can attach these images to posts later. Just by clicking Attach right there. You choose which post it goes with. So this script goes through your post, finds the media that was uploaded to that post, and assigns the first one as the Featured Image. Now, as you saw, there were some posts that didn't have any media. It didn't get a Featured Image assigned. So what I would do in that case is I would add one more plugin. It's called Add Featured Image Column. Hasn't been updated in a few years. I normally don't recommend older plugins on your site. But this one, it's simple enough that it still works. And I don't see any risks associated with it. Doesn't mean there aren't any. I'm just saying I don't see them. And I activate that. And now when I go to my post bulk editor, there's an additional column on the far left. And it shows the Featured Image for that post. And I can very quickly, visually, manually scroll down and see which posts are missing Featured Images. And I can go in and I can manually adjust those. So since there are so many years of old posts on this site, I would focus on the ones that are on the home page. The ones that are most likely to be seen first. And I would check my Google Analytics and see which old posts are getting a lot of traffic. And I would prioritize those as the ones most likely to be seen and needing Featured Images associated with them. So we've now added Featured Images, great. Let's take another look at the home page again, see how that looks. This is a good start, I got some photos there. But I still have these excerpts down here that I'm not thrilled with. Now you may remember my old site, it was just the entirety of every post, one after the other. It wasn't using excerpts. This wasn't a theme compatibility issue, though. Does anybody know what version of WordPress introduced the concept of the excerpt? Three, it was version 0.7 released in May of 2003. And despite being called version 0.7, it was the first version of WordPress. When we celebrated WordPress's 20th birthday this past May, we were celebrating the release of version 0.7. And it had excerpts. It's always had excerpts. So even though my theme supported it, it didn't use them. On the front end, you would just see the entire post. So I always just left that field blank. And I knew that if someday, if I needed it to, it would just automatically generate them from the first 50 words or so, which is what you're seeing here. But this doesn't look intentional. It looks, as I said, like a thought cut-off mid-sentence. And I think we can do better than that. So even though I wasn't filling in that field, there was a similar field I did care about in which I was filling in. I'm going to go to the back end of one of these posts on our very fast Wi-Fi. I'm going to scroll all the way down and right here. This is my SEO description. Most of you are using a plugin like Yoast. This site happens to be using another one called the All-in-one SEO pack, or A-I-O-S-E-O-P. And this is what shows up when somebody links to my posts on Facebook, Twitter, X, Slack, etc., also very often on search engines, hence the SEO description. And so I was always filling that in because I knew that was something people were going to see. I was always sharing my content on social media. And I was making sure I was getting indexed by Google using the Google Webmaster Tools and the Search Console. So I have this information and it's very similar to an excerpt. I just need to get it over to this excerpt field on the far right. How do I do that for 14 years of posts quickly? Again, we use a script. So I'm going to go back into code snippets. I'm going to import yet another script. This is another one that I will make available at the end of this talk. Let's see. Choose the file. There it is. And what this script will do is it will check every one of your posts to see if there is a SEO description by Yoast. And if there is, it will copy it to the excerpt. If there isn't, it will check to see if you're using All-in-one SEO pack. And if that has an SEO description, it will copy that to the excerpt. And if it doesn't, then it stops. And in the event that you've already written a manual excerpt, it will not overwrite it. It will skip those posts. Just like the featured image script I showed earlier, if you have already assigned a featured image, it will skip that post. It won't overwrite that. So I'm going to go to my snippets. And there is one called SEO to excerpt. I click the Play button. I let it run once. You can also, what I will make available after this presentation is you can also run these scripts from the command line. If you are comfortable with doing that and have access to that, there's a version of the script specifically for that environment. And if you're not comfortable with either the command line or code snippets, you can actually run these as plugins. I don't recommend that because plugins are something you generally want running and operating on your site all the time, like a permanent modification. And this is just something that needs to be done once. I actually was testing the plugin version of the featured images just to make sure it worked, and it did. And then I was continuing to use my site, and I was like, okay, let's delete this featured image, and I deleted it. And then I refreshed the screen and it was there again. I was like, I thought I deleted it. Is it a caching issue? And I deleted it again and it was still there. And what happened was that the plugin was still running and every time it found a post with no featured image, it assigned one to it. And so that was not ideal. That was suboptimal, as we would say. But I wanted to make sure that you can run the script that way if you prefer. Okay, so that script is done running. It took a little bit longer than the previous one. Again, let's go to the site, visit site, and those cutoff sentences are now gone. Now we have complete thoughts. They're keyword rich. They're effective teasers, or so I hope. That's how they were written to be effective teasers. And now we have excerpts for all the posts that had SEO descriptions. So this is a dramatic improvement. Now again, it's still a little rough around the edges. Some featured images are missing and the layout might need some custom CSS to align everything neatly. But I no longer need to go back and assign featured images and write manual excerpts for 14 years of content, just thanks to those two scripts. So from a front end perspective, this is a dramatic improvement. We've come a long way just in the last 20 minutes. But there's still one more thing that we wanna take a look at. One more thing we wanna consider. Let's go back to some of my older posts. Let's see, here's one, let's see. So when I go into the back end of one of my older posts and I try to edit it, oh, wait a minute. Let's see here, just one moment here. Yeah, just needed, I had a plugin running that I didn't want. Let's try that one more time. Here we go. So when I go into an older post that was written pre WordPress 5.0 or with the classic editor plugin installed, it all shows up as a classic block. And I can click convert to blocks and it'll break it out into paragraphs and YouTube embeds, et cetera. Ideally, it doesn't change how the post appears on the front end. If I go back to edit this post, I may want to go ahead and click convert to blocks because then I have access to all the tools of the block editor. But in this case, I want to go back and convert to blocks all 14 years of old posts. Whether or not I'm ever gonna edit them again, I wanna convert them all to blocks. And this isn't just a preemptive strike against posts that I think I might want to edit in the future. This has a real potentially financial impact on your site because there are plugins out there like OptinMonster or Newspack Campaigns or even Google Ad Manager that you can use to programmatically insert content onto your site like ads. And you may be placing those ads on every third paragraph of your story. It automatically gets inserted after every third paragraph block. Well, in this post that's on the screen right now, the entire post is a single block. And if I'm telling my ads to show up after every third paragraph, it's gonna show up once at the end of the post because all it sees, despite there being four or five paragraphs here, since they're not blocks, it can't tell where to insert itself. So it's just going to insert itself at the end, at the end of the only block that it sees. So I wanna convert all my content to blocks so that all those other plugins that I have running know where they go in the content. So I'm gonna install one more plugin. This plugin is developed by my team at work. It is open source. It's called the Newspack Content Converter. It is not in the .org repository. And in fact, I wanna give you a little warning here. This is a screenshot from the GitHub repo. It says it's at version 0.0.14 alpha. So it's very rudimentary in some ways and also comes with this warning. This plugin is presently in alpha and used primarily as a developers tool. So remember my instructions at the beginning. Take a backup, make sure your backup works and then take another backup. So I'm going to install this plugin and since it's not in the .org repository, I need to upload the zip file. Just right there. Click activate. Latest version of this plugin is only two weeks old so it is still being used and being developed. And now I have a new menu item down here called Newspack Content Converter. It says there are 512 posts that need to be converted. At 100 posts each it'll take six batches. So I'm just gonna click run conversion. And what this plugin does, on one hand I don't consider it very elegant but on the other hand I think this is the only way that Gutenberg will allow it to run. I have not found a better way to do it. And what it does is it's actually opening each post one by one in the background, clicking convert to blocks and clicking save. So the more posts you have the longer it's gonna take and it does it as I said one by one. So 512 posts is just gonna run in the background. After it's gotten started for a while it also says you may carefully open an additional tab and it'll start doing another 100 post batch concurrently. So it goes twice as fast. Now the more tabs you have open the more processes you're running on your website. So if you have a high traffic site and you're doing this on production maybe just let the one tab run and let it take as long as it needs to and it'll eventually complete. Anecdotally I have found that it works better in Chrome. Right now I'm running it in Safari but it should be fine. But and when it's done all of my posts will be blocks. You might wanna double check for example if you're using short codes which really shouldn't be a thing anymore we should be using custom blocks but if you have some old short codes you might wanna make sure that those are still loading correctly. Again take a backup first. And I'm not gonna make you sit here and wait while this finishes its run of 512 posts. But when it is done 512 posts all put into blocks and all my programmatic ads, ads and insertions and house ads and et cetera will all know where to slot themselves because everything is blocks. And so when that's done that will be the end of my programmatic efforts on this site. I will have added featured images to 512 posts or many of them. I will have added manual excerpts, custom excerpts that look good on the front end and in SEO. And speaking of which if you are using Yoast you can make the SEO description in the future automatically be the same as the excerpt. So you can say the default SEO description is the excerpt that way you don't need to write the same content and paste it into two places. You just write the excerpt and that would be your SEO description in the future. And you can override this on a per post basis because they do serve slightly different functions. The manual excerpt in the SEO description. But this is how I updated a whole bunch of sites because I was asking you earlier how many sites you each have that are built in WordPress that are for you yourself and not for clients. I have 16 and I had to update about eight of them last year. Didn't have to. I just had some free time and I wanted to. And I figured that the best way to do that would to not do it manually. So this is the little toolkit that I've put together. And I will share the link to that with you now. If you go to kengagni.com slash Rochester that is a link to my GitHub repo. And it has the read me file that describes how to do everything I just did. It has links to the fixed featured images script and the SEO description to excerpt script as well as instructions on how to install them and run them. Whether you're using code snippets, the command line or a plugin. And then finally it has a link to the Newspack content converter, which is its own repo. It also has credits for where some of this came from. A lot of these scripts were adapted from other sources. One was from StackExchange and then expanded with some help from ChatGPT. Another comes from Newspack, my team, and expanded with their permission and made available to the public. And then Newspack content converter was already out there in the wild. So those three things together are sort of a toolkit. I am not a developer. It'll be awesome if these were all rolled into one Swiss Army knife that users could just install and click buttons to make things happen. But in the meantime, this is as user friendly as I can make it. And I think it's fairly user friendly because you don't need to be a developer. You don't need to be a programmer. You don't need command line access. This is just a very quick way to update 14 plus years of content on your WordPress website. So that is my talk. Thank you very much. Any questions? Thank you. The convert to Gutenberg thing is amazing. So that was written by my coworker, Ivan. He is a brilliant developer. There is a plugin very similar to it by TenUp that is in the .org repository. And what I have found it does is when you go into the post editor of a single post it will automatically convert to blocks for you so you don't need to click convert to blocks. The screenshots imply that there is a command line method to bulk convert posts. But two caveats to that. One, I couldn't get it working. I'm willing to blame pilot error. But also based on what I read it does the same thing Ivan's plugin does which is go through each post one by one and convert them. And so that's why I think this must be the only way to do it. There must, hmm? Does it use the REST API? That's a good question and I do not have the answer. I can tell you that the News Pack Content Converter what it does is when you activate it it duplicates your WP post table and it runs all the conversions on that duplicate. And when it's done it writes it back to the WP post table. Hmm. As opposed to duplicating just the post content field? As far as I know it duplicates the entire post table and then runs the conversion on that table. I think. Or maybe it just duplicates the table as a backup and then runs it on live. Not quite sure. But this is, as I mentioned, an alpha tool made primarily for development. We do use it on our customer sites because when customers migrate to our platform very often they are coming from aging platforms. I'm sure some of you have seen, like you log into a client's website, you've just contracted with them and you log in and it's running WordPress 4.9 and it has 26 plugin updates pending and they tell you don't touch anything because if you do this house of cards will crash. Yeah. So when we encounter an environment like that we very gingerly bring it all over to our platform. We update it to the latest of everything and that includes updating the content to blocks. So we run this script on those environments to make sure that everybody launches on our platform with the latest and greatest, which includes Gutenberg. Any other questions? Yes. A really basic question. Yes. A really basic question, how do you do a backup? So that's a great question. I will give you an answer right now but I will also say that that is potentially the topic of an entirely additional talk. So there are lots of plugins out there. Two that I have used with some success, well with great success are Updraft Plus and Jetpack, which again, full disclosure is made by automatic. WP Migrate. WP Migrate, okay. This is another recommendation coming from the audience. I haven't used it, but you look trustworthy. So there you go. I appreciate it. Anytime. And there are really like two kinds of updates you can make. One is of your SQL database. So that's all the content that you've written. And the other backup includes the actual files on your site, which is all the media you've uploaded, all the plugins you've installed, all the themes you've installed. Of the two, they're both very important. The database is potentially more valuable because you can always reinstall plugins. You can always reinstall themes, but the database has your plugin configurations, your theme configurations. Your content, like your titles and your keywords and your bodies of all your posts. So make a backup of at least your SQL database. Nothing that I have shown here today modifies anything outside your database. It doesn't modify your media, the files that you've uploaded. It doesn't change your plugins or your themes. It's solely making changes in the database. Also, database backups tend to be relatively small. If you've been uploading media to your site for decades, and that includes potentially video files, which are huge, your WP content slash uploads directory can be gigabytes. And those downloads and backups can take a while. It's worth it, but in this case, it's not necessary. So use updraft plus or WP migrate or Jetpack or check your hosting provider. I have some sites on WP Engine and they do either hourly or daily backups. And you can just go back in and click which backup you want, click restore. And it'll say, do you want to restore just the database or everything? And you tell it and it'll email you when it's done making the backup or when it's done restoring it. So that's a good hosting platform. We'll do that for you and you won't need a plugin. But there are lots of options out there and they all generally work. In my case, I was using backup buddy. And I think I then migrated my site to a platform that didn't support backup buddy. So I had the backup, but I could no longer use the plugin to import it. So I had to get into some shenanigans and it got a little messy, but it worked in the end. That's not a reflection on the backup buddy plugin which is made by iThemes, which is, are they owned by Liquid Web too? Yeah. Thank you, yes. That's generally a safe bet nowadays, but. Or automatic. Any other questions? Yes, you may add one thing to that. If you are using your hosting platform to make your backups, download the backup so that if your hosting platform doesn't go down it doesn't take your backups with you or with it. That's the same reason why I also use cloud backups in addition to an external backup drive that is sitting right next to my computer because if somebody breaks into my house and grabs my computer, they're gonna grab the drive that goes with it. My house burns down, it's taking both of them with it. So always have an off-site backup. An off-site can mean a couple of different things in this case. In this case, off-site from your hosting provider is your computer. So yes, definitely do that. Updraft Plus allows you to, and backup buddy and some other plugins, let you designate an external destination for your backups and that can be Dropbox or Amazon S3. So that's what I did in this case. I need to find, I had already done all these conversions to my movie site a year or two ago and I want to kind of undo them for the purpose of this demonstration. So I went into my S3 bucket and I found an old backup that had been sent there years ago and was still there. I pulled that and recreated my old site. So was there another hand up over here? If you're relying on a hosting backup, depending on the host, you may not have immediate access to it and they may charge you for it. So that's a good point. I believe Amazon S3 charge is not only based on storage but also traffic. So uploading and downloading files to your bucket. A dream host, at least on the virtual private server that I use, which is one of the, I guess not the highest end tier of service that they offer. They say like, do you want a backup from a few hours ago, a few days ago, or a few weeks ago? You can't designate a specific date or time. It'll try to get a backup within that window and it'll tell you if it succeeded or not. So yes, make sure that you've covered all your bases and that you've checked your backups before you do anything. I'm glad that this has become a talk about backups but it's important. I'm glad the topic came up. Any other questions about backups or easy updates for old content? Obviously I didn't go over things like making sure old plugins still work and making sure that everything else is working the way it's supposed to. I recently inherited a site that nothing had been updated since 2006 or so and I ran a security scan on it and it found 140 threats. So I just removed all the plugins and themes, reinstalled everything from scratch, got it up and running and then I realized that those threats have been used to infiltrate the site and inject spam content into the posts. So I had prevented additional injections from occurring but now I had to go through all these posts and look for like opacity equals 0.1 so that's almost blank and there's a link to various pharmaceuticals and they were very clever about these things so a lot of search for places were being done to remove all that. So yeah, there are lots of other kinds of updates for old content you need to be aware of based especially on how old the software was but as far as an aesthetic view goes if your site has been secure you just want it to look good in a new theme, fixing the featured images, featuring the excerpts and converting to blocks is a good way to start. Again, I suspect that AI can do some of this especially writing the excerpts but probably not for free and as you saw from the talks this morning we are always going to want to manually review the results of AI because it may sometimes be inaccurate or untruthful without realizing it. So in this case we're just repurposing things we've already written SEO descriptions to be your excerpts. Any other questions? Great, thank you so much for your time.