Back on October 12th I posted Yet Another Site Update Notice about how I planned to go in search of a new caching engine. Well, I found one and over the past week I have been getting it setup and tested, a process that has not been without challenges. This new caching engine has a lot more buttons and dials than the one we have been using (which pretty much just had an on/off switch). From where I’m sitting, this new engine is doing a MUCH BETTER job of caching and as a result, speeding up the site. I’d be very interested in YOUR user experience!
In the process of getting this new caching engine up and running, I’ve also learned quite a bit about optimizing site performance in general (something I never really paid much attention to before) and I have implemented numerous changes that have helped speed things up including:
- Setting image expiration to far in the future (365 days to be exact). This means that when you visit the site, before downloading an image your browser will check its cache to see if it is already in the browser cache and if it is, it won’t download a new one unless its copy has “expired.” Since most images associated with posts don’t change this means that if you visit the site more or less regularly, you won’t be downloading the same images over and over. Prior to a few days ago, none of the images on our site had expiration dates set which means your browser was downloading the same images over and over…
- On the subject of images, for the most part they have all been reduced in size, in some cases by as much as 75% to 80% with no noticeable loss of quality. Just as with file compression, reducing the size of images saves bandwidth by reducing the amount of data that needs to be downloaded to render a page. Those of you with slower internet connections will especially appreciate this.
- Files (including CSS and JS) are now compressed before they’re sent to your browser. This cuts down on the total amount of data that needs to be sent to render a page, reducing bandwidth.
- I’ve set up a separate host to serve up static content. This doesn’t save a lot of anything but it does eliminate cookies which WordPress insists on setting for ALL requests to www.clarylake.org like it’s going out of style. This saves bandwidth. Not a lot, but some.
- I’ve eliminated a few so-called “features” of the site, one being allowing people to leave comments using their Google+ or Facebook accounts. You can still leave comments, but the (considerable!) overhead associated with being able to click one of those buttons is gone. I decided to keep the “Related Posts” function because I like it, even though it adds some milliseconds to each page load…
- I’ve generally cleaned up the sidebar, which was getting pretty busy and I’ll probably make some more changes going forward. Gone is the Instagram widget. There was a lot of overhead associated with it including DNS lookups and the time to grab images off Instagram and scale them to fit in the sidebar widget, and there was no real evidence that anyone was using it. We still have an Instagram page and I’ll put a link to it in the sidebar. I’ve also turned off some back end services that really have done nothing to enhance the site while still adding load and overhead to it.
I’ve done considerable testing and benchmarking, and page load speeds and performance is considerably improved. This site now typically ranks 70 to 80 out of 100 making it better than 70% to 80% of the sites out there. Pretty good really. There are some major areas for improvement, but the use of a number of 3rd party plugins for functionality pretty much precludes making those changes. The News page is a bit heavy and is usually on the low end, whereas individual news posts and most other pages rank much higher when they’ve been cached.
Of course, as soon as I published this post, something broke! Working on it.
So there has been a plugin conflict plaguing me ever since I started work on this caching engine problem. It would crop up almost (but not quite) randomly and I’ve been unable to determine what was conflicting with what. Until now. I do believe I’ve figured it out.
I’ve said it once, I’ll say it again: it’s not a job, it’s an adventure!
A definite improvement on my slow windows 8 tablet. I noticed that the images for the webcams are 3 days old. Having the reply info pre-loaded is a nice touch!
Glad you approve David. I’ve sure noticed a speed improvement! I found I had to refresh the webcam page to get the current images to show up. Looking for how to exclude the campics from the far-in-the-future expiration.
OK, I’ve set the expiration for all images named “campic.jpg” to “now” plus 2 minutes. This should resolve the problem of people’s browsers caching the campics. Let me know if you still see a problem.
I’ve also gotten rid of the sharing buttons on the News page, they now only show up when viewing individual posts. This has raised the News page score to a B 🙂
I’m pretty psyched. The Yslow Benchmark results:
Grade B Overall performance score 86 Ruleset applied: Small Site or Blog