WPwatercooler

EP449 – A Spring Clean WordPress Routine – WPwatercooler

March 24, 2023

It’s spring cleaning time for your WordPress website! Jason Tucker, Sé Reed, and Jason Cosper will share their insights on a range of topics to help you give your website a thorough cleaning. The conversation revolves around the importance of speed and response times for website pages, as well as the discovery of issues that may have gone unnoticed without the implementation of certain tools and configurations.

One of the primary tools discussed is Query Monitor, a plugin that helps identify slow queries and requests, providing valuable insights into potential bottlenecks in site performance. The hosts also talk about the Index WP MySQL for Speed plugin, which optimizes the WordPress database by adding indexes to various tables, thereby improving query speed and overall site performance.

Additionally, they touch on the compatibility of the WP Watercooler site with the Fediverse and ActivityPub, and the challenges encountered in making the site more Cloudflare-compatible. They also explore the potential conflicts between indexing plugins, such as Facet WP and Index WP MySQL for Speed, and how these plugins avoid creating duplicate or redundant indexes.

  • Cleaning up unused images
  • Implementing WebP for more lightweight images
  • Properly indexing your database
  • Optimizing caching for faster loading times

Links

Panel

Episode Transcription

Jason Tucker:
[0:09] This is episode number 449 of WPwatercooler, Spring Clean WordPress Routine.


[0:16] It rhymes. You’re welcome.

Jason Tucker:
[0:20] I’m Jason Tucker. You can go to my website at jasontucker.blog and find everything about me over there.


[0:27] Hey, I’m Sé and I’m here to say, uh, follow me at SayReadMedia and all those things.

Jason Cosper:
[0:34] And y’all know who it is. It’s your boy, Jason Cosper, AKA Fat Mullenweg back at it again on the world’s most influential WordPress podcast.

Jason Tucker:
[0:42] Go find that podcast wherever you listen to podcasts. We would very much so enjoy having you over there and you can go hang out with us over on Discord.
Go to wpwatercooler.com slash discord.


[0:55] Also, where do you listen to your podcasts? The two of you. Just curious. Overcast.

Jason Tucker:
[1:01] I use Overcast.


[1:04] But it’s so sunny today. Sorry. Okay. I’m going to check it out.
I use just the default one on my phone, but I am looking to upgrade my technologies.

Jason Cosper:
[1:18] So, thanks. I like Overcast very much. much. It has a thing that eliminates silences from the podcast. That’s a problem we don’t have here.
But sometimes people do pause for quite some time and closing those gaps can make a three-hour show about Apple products into a two and a half hour show about Apple products.


[1:43] What is that like? Silence. I don’t know.
Never heard of it.

Jason Tucker:
[1:52] They were talking about spring cleaning. It’s spring.


[1:55] Spring has sprung. It is the spring equinox and spring and a lot of rain for all of us.
Yes, in California, absolutely. Yeah, I was gonna say something about how this inspired us to do spring cleaning, but really it was just because Cosper is a wizard. That’s the truth of the matter.
So we titled our thing appropriately for the season because Cosper is a wizard is like what doesn’t make sense of the title.
Necessarily. I mean, I guess it could, but like, you know, it doesn’t like good, it’s not good for CEO.

Jason Cosper:
[2:29] I, you know what, I mean, personally, from, from a completely, like, personal standpoint, I would appreciate a podcast titled Cosper as a Wizard.
But I understand for SEO purposes, we, we definitely have to, to kind of discuss that. Let’s, I mean, let’s, let’s talk about what sort of kick this off.
Tucker, you recently moved one of your sites.
Actually you moved the WP water cooler website back over to spin up WP, right?


[3:09] Yeah.

Jason Tucker:
[3:11] Yeah. I, I, I kind of use that website. Yeah.
I kind of use water coolers website as a way of testing out variables and And so I’ll switch over to them and then give it a shot and see how it works and how their stack is set up and everything.
And Jason Tucker does for fun, my great website. Yeah, I totally do it for fun.
Cause I don’t have any clients that require me to move things around.
Cause it’s not, that’s not how my life is. You’re like, you know what?


[3:36] And Jason Tucker does for fun. Migrate website.

Jason Tucker:
[3:39] Yeah, I totally do it for fun. Cause I don’t have any clients that require me to move things around. Cause it’s not, that’s not how my life is.


[3:46] I’m bored. And you’re like, you know what? I have nothing to do tonight.
I think I’ll migrate my website to our new house.

Jason Tucker:
[3:51] And it’s usually, it’s usually like, I don’t know, 15, 20 websites that I have that are all mine or my family members that, you know, don’t pay me to do it.
And I just kind of move our stuff around. So, yeah, so moved, moved to spin up WP again. Um, we, I was there for probably about a couple of years when they first launched. I was playing around with them a little bit.


[4:15] Yeah.

Jason Tucker:
[4:15] I was finding it very like, I was finding it very weird. Because the place I was at before wasn’t, it was working. Okay. But it wasn’t, it wasn’t perfect.
And so I was like, I didn’t have you were looking for that.
What I didn’t have. Yeah, exactly.


[4:33] That’s right.
I see now why you’re changing all the time, because your standards are just way too high. That’s really true.
You’re like I want root access and automatic updates. Come on.

Jason Tucker:
[4:51] How hard is it?


[4:53] Why is it so hard?

Jason Tucker:
[4:54] Well, I will tell you, I will tell you that way back in the day.
Watercooler was hosted on a free account with WP Engine.
And we got a word camp.
We all got it over. Mine still alive. I’m going to go look. So yes, I can’t log in, make any changes or anything. So anyhow, moved over there, things weren’t working right.
And I’m finding, I’m finding some things are a little slow and acting a little weird. And so I asked Cosper, I was like, Hey, what do you think of this?
What am I doing wrong here? What’s not right. You were, you were getting somewhere.
Just real quick, real quick. We do need to put in the show notes, egersus.wpengine.com.

Jason Cosper:
[5:31] That’s the website. That’s the website.


[5:32] That’s the website. you do need to put in the show notes, it goes to step WP engine.com or just go there right now by yourself and just get a little taste of that. Okay. Sorry. We’ll do moving on.

Jason Cosper:
[5:43] Oh, very nice. Very nice.


[5:45] Yeah. Thank you. I just thought you would appreciate it if you clicked it, go click it people. All right.

Jason Cosper:
[5:51] Yeah. So yeah, we, Jason was having some issues.
Like he’s like, I moved it and a spin up WP is, is normally been pretty fast, been pretty performant to have the side on and everything else.
But like he said, he just likes to test stuff out and see how things are going at other hosts, see how other folks do that.
And so we were looking- It’s like a global exchange program, really.
Yeah, we were looking at the performance And I, I threw as I am want to do when I knew it was when I hear like someone’s having a performance issue.
I, I throw the site into a webpage test.


[6:44] A website performance issue.

Jason Cosper:
[6:46] Yes.


[6:48] Let’s be clear.

Jason Cosper:
[6:49] Oh sure. Sure. Grow up.


[6:51] No, not sponsored. Yeah. We’re not sponsored. We can make those jokes.
I’m here for you people.

Jason Cosper:
[7:03] Let’s see here. Is this, yes, this is the right one. I’m gonna go ahead and share my screen really quick.


[7:09] We’re looking at a waterfall. This is not my favorite kind of waterfall, but you know, it’ll work for today.

Jason Cosper:
[7:17] Yeah, but I mean, you look at that first load, the first page load, 1.6 seconds, and Tucker was like, what in the hell is going on?
Like, can you help me figure out?


[7:30] Figure out really not like that’s that’s a line. So just for people who are listening and not whatever, there’s the top line here is like, like, one and a half seconds. There’s four columns of nothing but the host server loading.
And before anything on the site even starts. That’s what we’re looking at here.
You’ve seen it. I know you’ve all seen it. I know.

Jason Cosper:
[7:52] Yeah. And then a bunch, a bunch of CSS and JavaScript files right after that, if you’re not used to seeing waterfall views, that is kind of what follows is like all of the CSS and JavaScript needed to load your site.
And they’ve got this nasty little orange icon next to them that says that they’re render blocking.
So not only is it taking 1.6, seconds to load the water cooler site, then there’s also the additional blocking of actual page rendering that is blocking the page rendering until what’s blocking the what’s blocking that.
Yeah, so see, that’s, that’s the interesting thing. And no shade to WP rocket, but Tucker was running WP rocket and had the CSS and JavaScript set up to defer.
But for some reason, it just wasn’t deferring.
So we had to like, dig into that like defer the render until it was ready.


[9:00] So it didn’t get that ping? Or what do you mean?

Jason Cosper:
[9:02] Right. So basically, what what it does, and what that what that process does by telling the CSS and JavaScript to defer until they’re like, it’s loaded, basically, it starts showing maybe a flash of unstyled content, you might get a quick look at that.
But you can actually see content and know that something is loading instead of just waiting for getting an actual bit of like rendered, you know, content.


[9:40] So, um, and there are ways to load the content so that, you know, it’s visually at least something’s there and then you don’t have to worry about loading the CSS styles right away.
That’s what you’re talking about. Yes. Okay.

Jason Cosper:
[9:56] Just correct. And one of the other, and of course Google will penalize you if you, I’m surprised, say is not Twittering it penalized, but I was in my head.
So but yeah, no, they, they will give you a kind of knock if your content is unstyled, and then it snaps into styling.
It’s a metric that they call cumulative cumulative layout shift.
So that basically means that like either there’s a header image that hasn’t fully loaded and then all of a sudden like your header text pops down because the you know featured image loads up above it where there wasn’t before like Google will knock you on that.
Yeah, are your fonts? Well, the fonts, it’s a little more subtle.


[11:00] Fonts.

Jason Tucker:
[11:01] That’s the red one right there in the middle of the bread, right?


[11:06] Right. Nonsense. Fonts are well, I don’t want to get down the font hole.

Jason Cosper:
[11:10] Sure. Sure, we can we can travel down the font hole some other time.
So as I kind of dug into everything, I was just like, like, Hey, what, what’s, what’s going on here?
Like, why are we running into these problems?


[11:32] And this looks non performant.

Jason Cosper:
[11:37] I absolutely did.
And I just kind of thought to myself, like, Hey, what, what can I do to, to fix this?
So we ended up going through the the website, like kind of bit by bit.
And I, as I was making these fixes, as I was, you know, moving things around, at first, I was like, Okay, well, let’s make sure like the the MySQL queries aren’t, you know, being a hit.
So spin up WP doesn’t have any sort of like PHP, my admin or anything like that.
So I put Adminer onto place on the site and Wait, I’m sorry to clarify.


[12:24] I think I missed something. Was the waterfall we were just looking at from spin up? Or was that from WP Rocket.

Jason Cosper:
[12:31] I will know it like the the site was hosted on spin up WP and the waterfall was weird WP rocket already correct.


[12:40] Yeah, yeah. Got it.

Jason Cosper:
[12:46] WP rocket should have been deferring that CSS and JavaScript a script to, you know, so basically it wouldn’t load in a way that that wasn’t performant that was still dragging down the the overall load time. Go Brian Kardell, The Hedgehogs, was also that weird.

Jason Tucker:
[13:08] There was also that weird analytics thing that you also brought it brought to my attention to from that as well, where some and this is this is just one of those things where if you’re if you’re looking to try to figure out like, why are things loading slow, turn off all that crap.
So there’s an analytics piece in there.


[13:24] Which crap specifically?

Jason Tucker:
[13:26] Yeah. So, so anytime these plugins, any, anytime these plugins try to do any analytics callbacks to their server, it may be slowing that down as well.
So that might be something to look at.


[13:39] Like the plugin analytics. So like, if you say, like, if you say to the events calendar or like give WB, yes, you can track my stuff that. Yeah.

Jason Tucker:
[13:48] Correct.


[13:49] Back or something. Okay.

Jason Cosper:
[13:50] Yeah, not any of the stuff, either that have like rolled their own or using a tool like freemius to report back like those usage analytics.
That all is is well and good. And like, you know, you should, you should want to help make the plugins you use better.
If you’re not, you should want to do that. But that also depends on their infrastructure being fast enough to take in all the analytics from all the people who are sending in analytics. And sometimes not.


[14:27] I’ve never thought about that before, actually. Like I mean, either about the load, like, yeah, I guess I just never even thought about when it would be sending that data. So is it sending that with each page load?

Jason Cosper:
[14:41] In it, at least on dynamic page loads, yeah, it’ll it’ll send some of that stuff on generation.
Dynamic page loads happen either when your site like you’ve just cleared cache or whatever, or in some cases, like in your dashboard and WP admin.
So if you notice, like, sometimes you’ll see that a a site is loading a little bit slowly and then you disable like the analytics or the analytics.


[15:17] I was like, what? Get rid of that. No one needs it.

Jason Cosper:
[15:22] And you’ll see things speed up and get a little faster. So it’s we found I don’t want to do it. We’re not sponsored. It was it was also WP Rocket, their analytics.


[15:38] This is not this is not shade. Yeah, this is this is constructive criticism.
I that always has such a bad ring, but this is just honest analysis is what it is. No shade.

Jason Cosper:
[15:49] It was real. It was adding about point four to point five seconds on every dynamic page load.
And one of the things that we also quickly came to realize is, in order to help make the WP watercooler site a little more compatible with the Fediverse and ActivityPub and Mastodon, Tucker had put some, Tucker had put some code in place to get it to be more Cloudflare compatible, that was making every page load a dynamic page load.
So we were bypassing spin up WP’s page caching, first and foremost.
So that’s why every page load was taking 1.6, sometimes two seconds.


[16:40] It’s like, I’ve never seen this before. What is this page? Wow. It’s so new and fresh.

Jason Cosper:
[16:51] So, but in doing that, in seeing these dynamic page loads in kind of blowing past caching, we managed to sort out some actual real problems here.
So it turns out that the the issue was and you know, was like, okay, on dynamic page loads, things are a little bit slow, like, if caching was working correctly, had, had we not tried to be a little more Fediverse and activity pub compatible, we would have missed this.
And we would be doing a show on a completely different topic today.


[17:33] Wait, so, real quick, the, that, code…
That code was causing it to load dynamically, but also a problem that you found because of that.

Jason Tucker:
[17:46] It was doing, it was doing more misses than hits. Wow.


[17:49] Is what was happening. Had you noticed the speed of the site?
And that’s why you were saying something. I mean, cause you know, when we’re talking about performance, we’re talking about, you know, fractions of a second and that matters for Google, but in terms of like human experience, you know, you could look away and then the page is loaded and Google thinks it’s slow and you were just like, Oh, there’s a bird. Yeah.

Jason Tucker:
[18:10] What was weird for me is I pulled out a, use my iPhone and was trying to go to the website and it wouldn’t load. Oh, like the browser would time out.
It was just like, I, I, I’m just not going to load. And I’m like, what is going on here?


[18:25] And that’s when I started digging further into it. Yeah. Yeah.
So that server time load, that first, Yeah, at one point, yeah, that was right after I moved it.

Jason Tucker:
[18:38] So that’s why I was like, okay, I got to figure out what’s going on here.
I mean, I’m going to circle back around to the whole cloud flare, you know, meta or, um, you know, cloud flare Fediverse, all that kind of stuff thing to kind of get it to work, right.
There’s a bunch of engine X stuff. I got to change whatever to get to work.
Right. But yeah, it’s just one of those things where it’s like, there’s, there’s something funky there.
And so, yeah, that’s, that’s kind of where I’m at. Yeah. just one of those things where it’s like, there’s, there’s something funky there.
And so yeah, trying to, trying to go through that.
You also did something else cost per year where you started going through and looking at the database and the way in which the, like the indexes were set up and you started throwing like all these different plugins at me that you were using to kind of set these things up.
And I’m like, dude, where, where have these been? Like, I know you’re holding out. Like what’s going on here?

Jason Cosper:
[19:21] Yeah. over here.

Jason Tucker:
[19:25] So it’s like pulling out albums that had just like, just like a, just like a one color background with like the band’s name on the front of it.
And you’re just like, Oh, no one would ever look at that.

Jason Cosper:
[19:35] That’s what I was like.

Jason Tucker:
[19:36] I was just like, what is this? Yeah.

Jason Cosper:
[19:38] So there were, there were a few plugins that I had pulled out.
One that people will very likely…
Be familiar with, which is Query Monitor by John Blackburn.
If you’ve done some site troubleshooting, digging in, Query Monitor is fantastic for kind of seeing not only the queries that are being used, like sometimes, like if there are repeated queries, if there are slow queries, you know, like kind of that general like MySQL thing, Also, it will help you pick out what and how a page gets generated, like the timings for how the page is generated as well.
This is all very helpful for drilling into these issues.
This is how I found that slow post to sending analytics to WP Rocket.

[20:49] Also, I it called out a slow query, or not a slow query, a slow request to font awesome, which, like Tucker says, he puts plugins and he moves hosting around on the site, just because he’s like, Okay, this is a live site, like I’m going to play around with it, I’m going to give this plug in a throw.

Jason Tucker:
[21:16] No one’s going to Jason Tucker blog. Right.


[21:20] Unless I tell them to very dedicated audience that is upset with you for taking that site down for five minutes.

Jason Tucker:
[21:26] Sorry, mom.


[21:29] Wait, I just went real quick. I want to say something about query monitor.
If you were going to move on, I don’t know if you’re going to move on yet or not. I used Query Monitor once.

[21:38] When I was using BuddyBoss, so BuddyBoss is like a kind of a fork essentially of BuddyPress.
It’s more like a commercial, you know, BuddyPress is very DIY and kind of, you know, I don’t know what the right word is, bare bones, I suppose maybe, like a little like, you know, build your own kind of.
So anyway, they forked it and they’ve made this like kind of mobile app, you know, you can you can add your mobile app and stuff.
And they say that it’s supposed to work really well with, I’m just gonna call it LearnWP, but that’s not what it’s called. One of the LMSs, LearnDash, there it is.
Or really probably any of them, but they have a specific module and whatnot.
And when I would have just a few people logging in in that community, logging in to their account, which, by the way, pretty basic to have people log in to their accounts for a community.
Like, that’s the whole thing around it.

[22:41] The query monitor just went nuts. Like, I have never seen so much activity in my life. And I’m like, what is this? Turns out it’s actually a problem between, it’s mostly LearnDash’s problem.
So not actually BuddyBoss’s problem, but that, you know, it’s LearnDash doesn’t, You don’t always have multiple people, I mean, you might, but you don’t always have it right at that same moment, like when a class is starting or something.
So everyone comes on and floods the site. So Query Monitor was very helpful for figuring out that.

[23:12] It doesn’t give you solutions, it just shows you… It’s like your JavaScript console.
It just shows you what’s up. It does not tell you how to fix it. So I think that is.
Well, I guess that’s GPT’s job now.

[23:31] But that is what I was like for, that was the only thing that I felt was like, not that they had to fix all my problems, but I had this information, and they didn’t know what to do with that information to solve the problem.
So that was kind of the problem. I’m like, great, I have this thing, and I see there’s too many queries out there.
So how do I fix that? without that my hacking learn dash now, like, so that’s something that I think, you know, you really, obviously, this is your bread and butter.
So you have an advantage there, you know, oh, these things are here, I need to change these things. So if you at some point want to touch on how we can solve our problems that we find that would be good to later on.

Jason Cosper:
[24:16] This is this is only a 30 minute show. But yes, I’m happy to And I talked about all of it.


[24:21] Jesus. Okay. Anyway, go on.

Jason Cosper:
[24:26] So also another, and something that Tucker touched on a little bit is the index WP MySQL for speed plugin, right?

Jason Tucker:
[24:36] It’s such a, such a basic name makes it like, So it’s so CEO, no, just kidding.


[24:43] It’s very SEO-y.

Jason Cosper:
[24:44] Sure.


[24:47] Index WP MySQL for speed. Okay.

Jason Cosper:
[24:51] Yeah.


[24:51] I mean, it’s doing.

Jason Cosper:
[24:53] Yeah, it is. It does exactly what it says on the community plugin.


[24:58] Look at that. It’s got a community plugin designation.
Still not totally clear on what that means, but it does have one.
So it’s not a commercial plugin. There you go. That’s what you know.

Jason Cosper:
[25:10] Yeah. So one of the things, and there has been discussion in the performance team about adding some of the indexes that are used here to help speed things up.
But it adds indexes to your post, to your post meta, a few other things that make your overall queries to the WordPress database that are done by very like default and standard practices things so much faster.


[25:44] It’s basically the users table.

Jason Cosper:
[25:47] I don’t know that they have a users table. Here we go. Yes, users and user meta.


[25:54] That because I mean, you know, I’ve been on the user. I’ve been talking about users a lot lately.
But like, that is, you know, there are a lot of solutions for posts and things like that.
But when you have a giant site with a lot of users on it, a community of whatnot, like queries of searching your user database can just shut everything down because there’s so many users.
So that’s something that.
I mean, so just to clarify, also, the indexing means essentially, it takes batches and like, can refer to it like, sort of like a, an address, like, it’s like, Oh, look here for that, right.

Jason Cosper:
[26:32] So it like makes a little what makes an index, I guess, another index, sort of, yeah, it’s, it’s, it’s the, it’s the Dewey decimal system, the table of contents, the appendix for your, your database.
It is a so it can say and make like it can make specific indexes that say like everything that matches this post ID but also you know these particular bits of post meta so that way when you’re querying for a post ID it returns everything with the post ID.
But it like it kind of adds some additional refinements, sort of sort of like how facet WP like faceting for WP these these additional things.


[27:28] Indexing so that actually makes sense because they index the the you know, the custom post types of taxonomies or whatever it is that you’re searching.
They must do super similar things in terms of like, basically, they’re saying, query, you don’t have to go look through the whole thing.
You just write the this this list here, and it tells you where to look, right? That’s basic. So it doesn’t it doesn’t cycle through the whole database.

Jason Tucker:
[27:53] Yeah, right.


[27:55] Is that that accurate?

Jason Cosper:
[27:57] Yeah, basically. So it basically gives your database a way to make the lookups and the things that it is looking for. easier.


[28:08] It’s something you can just load, like literally like it’s a performance plugin on any site and just have it operate like it doesn’t need to.
Like, is it just kind of set it and forget it and it just indexes as you go?

Jason Cosper:
[28:21] It, it, it, you activate it, you tell it to, you know, create the indexes for you.
And then after that, yes. Like, you, you basically it’s, it’s all good.
And it’s all set, as indexes get added to WordPress core. So if they do bring in indexes from this plugin or, you know, created by the community.
There should be a way to transition there. Like I said, it’s been a minute since I’ve actually been in a performance meeting and checked in on what’s going on with these indexes specifically.
But it is definitely something that they have talked about bringing into core. So, hopefully…


[29:10] We only have a second, but I want to ask one quick question.
If you had indexing set up with Facet WP, for example, which is doing its own indexing, or maybe another plugin that does a similar thing, and then you also did this, is that like having two security plugins?
Or is it like having two slider plugins or something? Is that a negative?
Or is this something that can really just be additional, like an add-on, even if you have other stuff going on?

Jason Cosper:
[29:36] That’s a great question. So very, very, very simply, when the plugin loads, it looks for your existing indexes.
And if your indexes match its indexes, it doesn’t.
Create the index for like that it is doing.


[29:58] Also, or take precedence over like facet WP indexes, right?

Jason Cosper:
[30:02] It doesn’t it doesn’t go X to the Z and go, yo, dog, I heard you like indexes.
So I put an index in your index.


[30:14] That’s exactly what I was asking. Does it put an index in your index?
Or is it just you know, the glossary of your index? It’s a glossary, really.

Jason Cosper:
[30:22] So we’ll if you’re OK with it, Tucker will run just a tiny bit.

Jason Tucker:
[30:28] Sure, go for it.

Jason Cosper:
[30:30] OK, we’ll meet my mom.
So I also did some optimization on the images which I don’t have this pulled up. I could pull it up very quickly, but the EUEWWW image optimizer plugin.
I, people might be familiar with it.


[30:54] It’s got such a weird name. Like, why is it lame to that? Yeah, we muted.

Jason Cosper:
[31:05] So image optimizer, I ended up installing this on the site, not, only to do some lossless optimization on the images, but but also to convert all of the images on Watercooler or make copies of the images as WebP versions of the images.
So if you are browsing the site from a WebP compatible browser, and part of the functionality in the image optimizer plugin is to add images to the actual image and picture tags that show, like, hey, if your browser can support WebP, here’s the WebP copy of it, otherwise, here’s the JPEG, or here’s the PNG, or whatever.
So it’s also like backwards compatible.

Jason Tucker:
[32:00] And I was using a competing product to try to pull this off, and it just wasn’t working right.

Jason Cosper:
[32:06] Well, part of the problem was, is that it was using a PHP script to rewrite to the web P version or to the so basically going like, hey, check this PHP script to see if we have a web P copy of this.
And if so, serve that web P copy up. The problem is, is your it’s not faster.

Jason Tucker:
[32:29] This uses JavaScript, correct?

Jason Cosper:
[32:32] It uses JavaScript or, well, there’s two options, you can use one, both or none.
But effectively, you can use it where it’ll rewrite the image and picture tag.
And then also as a fallback, it’ll use JavaScript rewriting with JavaScript rewriting is nice, because it will also support any images that are in like your CSS or anything like that, will rewrite.
Go No, no, you don’t want the JPEG of this.


[33:05] You want the web PFS here go here like you inside of a server going like stop putting pngs in there.
Stop it. That’s like, whenever I make an image to put on a site now I’m like, Wait, is it supposed to be a JPEG or png?
Which one does Cosper gonna be mad at me if he’s gonna judge me so hard?

Jason Tucker:
[33:28] Oh, I was even, I was asking a mastodon about like, do you, are people uploading web P images just to start, just so you’re not like having to do conversions and all that fun stuff.
I think WordPress is super bloated and in the way in which it manages images.
And so I was just like, can I just get, get there without having to like, do other stuff.


[33:51] But I guess it’s probably better to go about it this way.

Jason Cosper:
[33:54] Is that no? And there was one last… I’m trying to be mindful of the overtime that we’re in.
There was one last plugin that I used, which is not in the repo.
It is on GitHub, even though it says…
A lot of these files say that they were last updated two years ago.
It’s had an update within the past five months. This is a thing called WordPress Server Timing.
And what WordPress Server Timing does, and this is so cool, it adds server timing headers to every one of your requests that is served up by WordPress.
So it will show, say you alluded to the JavaScript and the DevTools console earlier, it will show a breakdown of how long your request took.
So how much of a request to generate a page is the actual like database query?
How much of it is your template, your theme processing and generating all of that?
How much is the plugin contributing to this? Like your various plugins.


[35:13] It’s like a very detailed waterfall.
Like it’s like a waterfall, but well, like specific to your site and what specific queries or what just what specific things are taking up that time in general.

Jason Cosper:
[35:30] What specific things are contributing to the load time of a page when it’s loading.
So it’s really cool. It’s really helpful. I found out about this plugin just earlier this week And immediately I’m like, oh, this is like the best, like I’m going to, you know, in a lot of cases, I will, when I’m seeing a slow site, I’ll install a tool, like an APM, an application performance monitor, like New Relic or whatever, and put that in place.
But when I was working with Tucker on this, at first, he was like, oh, let me get you SSH access to the server.
And I went, no, I’m going going to do this on the browser, I want to like show off as much as possible.
Like, here’s how much I was able to do without needing SSH.
The only thing I actually, the only thing I actually needed SSH access for, and I didn’t even really need it, is I ran the image optimization through for you image optimizer through WP CLI.
So it wouldn’t, like that would be running on the server and it wouldn’t be bogging down the actual, like serving of the pages while I was doing it.
It might take up some memory, but it wouldn’t make things like ultimately slower. Yeah.

Jason Tucker:
[36:57] It’s not having to, it’s not having to spin up like all the workers and whatnot to actually do everything through the web server instead of it just doing it straight from the command line and running the running the code against the files as exist in the file system instead of it going through the web server, doing it all.

Jason Cosper:
[37:17] So, so let’s, let’s take a look now that, you know, I’ve, I’ve used up another seven minutes of your time. Let’s look at the actual results from a little bit later.
We, we went from a time to first byte.
Let’s take a look here of like 1.5 seconds. I think the worst one, it was, yeah, 1.6, 699 seconds to 0.457 seconds.


[37:50] That’s like, I mean, I mean, for me, it doesn’t matter, because I don’t even notice really, but for Google, Google, Google cares a lot.
And, you know, I think where this really can impact client sides and stuff is not maybe even in the, you know, point five seconds, but especially when clients or people who are not, you know, aware of performance or thinking about performance or any of that, they can really bog down a site.
And so usually with client-facing sites, because this is a tech person-led site, right?
So client sites where it’s not all optimized, this could probably save two seconds, actual full seconds, doing this type of these changes, as opposed to 0.5, which is actually really remarkable and commendable anyway.
But I think this type of spring clean routine could really just take client sites to the next level. Absolutely.

Jason Cosper:
[38:57] So if that is your thing, I guess the kind of takeaway from all of this is like, hey, come on, like, go that it’s spring is sprung.
Let’s go in and, and take a look at your most important sites.
You know, especially if you have clients like talk to them about like, hey, you know what, it’s springtime.
Let’s, let’s take a look and try to like, polish up that site, make sure that it’s working as quickly as it can be.


[39:31] And what like an hour to hour, like, what could Could you quote a quote, you’d be like, I’m gonna do this analysis for an hour and then we’ll see what we need to do. Like not the fixes, but just, you know, the analysis to check it out. What would you say? like an hour, two hours total.

Jason Cosper:
[39:46] I, yeah, I would say, um, for me it was about an hour, I’d, I’d say like, dedicate about two hours to this, like dig into it and to solve it or to analyze it or both.
To analyze it, to analyze it. And then I like Tucker, how long would you say I was maybe two and a half, three hours? Like, Yeah.

Jason Tucker:
[40:06] And you probably weren’t a hundred percent just doing that. You were probably doing other things, jumping back and forth and letting things happen over here while I’m doing something over here kind of thing.
Yeah. Right. And you’re, and you’re answering all the questions that I had as you’re going through and doing them. Some of which I’m like, Oh yeah, I’ve heard of that before. And other ones I’m like, Oh, that’s an interesting one. Okay.


[40:27] Okay. We, from my perspective, right?
Cause I’m not operating my own sites. I’m operating or I’m managing or whatever I’m doing, whatever I’m doing to them, the, you know, other people’s sites.
And it can be a complicated on my end when they’re not asking me for something for something or a new feature for me to say, Hey, you know, your site’s working fine.
It’s not broken or anything, but we could make it better.
And it’s going to cost you X amount of dollars because you know, that’s my time.
So like, it’s not like you’re working in an, if you work somewhere and that’s your job, you know, you’re like, I’m just going to block off, you know, two to three hours for this.
But for your clients, you have to make a case, right?
You have to say, sure, this will help you in SEO.
This will help your site load this. And, and that really can help for purchases, especially, you know, if you, the quicker it works, the less, you know, thought time of maybe I don’t buy this happens, where I got this hypertext t shirt, by the way, it took like two seconds to buy it.
But I think that that is, that’s something I struggle with is proactive performance tasks with a client, to be able to explain to them why they need it, or even to say, we’ve got all this other stuff to do, but also I’d like to do this.

[41:45] So I think it’s really important. You obviously think it’s really important.
We know that it’s important from a technical level, but I think it can be difficult from a client level to have them understand the value.
So do you think you could just say, I know we’re way over, but like real quick, besides just, you know, shaving off all this time, whatever, what is the like website owner value?
Of doing your spring cleaning?

Jason Cosper:
[42:17] Yeah, as I mean, as far as that goes, really, the big thing and the easiest way to sell this to folks is if they have some sort of like e commerce component to their site, if they are trying to work, sell a thing, and now my dogs are barking that you’ve asked a question and we’re in overtime.
But if they’re trying to sell something if they’re trying to, you know, make money off of their site, like, there’s that Amazon.
Oh my god, they’re really going off.


[42:50] Are you getting a delivery?

Jason Cosper:
[42:53] It’s no Sarah came home. So they’re excited. Yeah. Yeah, they are.

Jason Tucker:
[43:02] Oh, my.

Jason Cosper:
[43:06] You know what?


[43:08] Yeah. Why don’t we take that? We’re in overtime. Why don’t we take that on to the next show? Here, mute yourself for a second.
We could take that on to the next show and talk about that because that’s maybe that’s even, you know, something we could talk about, like justifying these things that are not so obvious on the front end and the, you know, backend improvements that, you know, matter.

Jason Tucker:
[43:29] Yeah. I mean, it could be, you know, new versions of plugins that come out and the technology changed.


[43:38] Yeah, the technology changing is so real. Like, I, the sites I built three years ago, I’m like, well, we kind of should rebuild this component because it’s totally changed. So anyway, we can talk about that on another show.

Jason Tucker:
[43:51] Perfect.


[43:52] Thanks for your awesome work. And also, just for, you know, explaining it in a way that helps make it make sense and finding all those cool tools.
Alrighty folks, he’s silently saying, Thank you.

Jason Tucker:
[44:09] Let’s see if I can do the outro. Maybe I’ll work.


[44:21] Nope. Nope. If you subscribe, you can receive an Apple podcast, Google podcast, on Stitcher, on Spotify, on Stitcher, on Spotify, on YouTube, on like the make, like somewhere in the metaverse, metaverse, but also join our discord. I love you, bye!

Show More Show Less

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.