How I made WordPress Zing: Fast or Furious?
“There is more to WordPress than simply increasing its speed,” Mahatma Ghandi might have said. Little did he know that such pithy wisdom also applies to WordPress, too! For WordPress can simply host a page with practically nothing on it, and you will get a super fast download. But what is your viewer going to be looking at?
I read a fine introduction at WPTheme Detector which took a similar approach, and it challenged me to give speeding up WordPress a go. The art of speeding up WordPress can be summed up as balancing what your server can provide and what your viewer will tolerate. Between these two extremes lies the promise of WordPress for Photography. I’ve been playing around with LookThroughTheLens.com for a while now, attempting to get the best out of its performance and this is what I’ve got right now.
The hosting of LTTL is quite modest. A simple shared-host on Dreamhost. There is a private DB server that powers the database, running on MYSQL, but that is shared with all my other sites. This helps to boost DB access.
I have also got several sites hosted on a VPS, also through Dreamhost. Whilst I could have added LTTL to the VPS, I wanted to do a comparison with those sites to see how far I could push the standard hosting experience.
The only real change that I’ve made was to upgrade the PHP from 5.6.x to 7.0.x which has improved the site responsive by a factor. There was one casualty: one plugin immediately threw an error, and required removal via the back door. The error reported is: “Parse error: syntax error, unexpected ‘new’ (T_NEW)”.
Goodbye, DB Cache Reloaded Fix… nice knowing you! So I removed it. I hope that I can use it again, but right now it’s borked. I guess it won’t be fixed until many sites are using PHP7.0.x; and it’s not actively maintained at the moment.
The WordPress is the most recent version, with no changes; except the addition of plugins for caching and themes. It used to be the case that unused themes & plugins would slow WordPress down; it doesn’t any more, but I keep the number of plugins/themes down to as small a number as possible.
WordPress’s own Jetpack has social links, but I turned them off. If there’s a way to add a resource-light version, I’d add it. The real reason I use Jetpack is its ability to create nice galleries and portfolios. It also posts to your social profiles. There are light versions of Jetpack, too.
I was wondering if removing WordPress own Smushing capabilities would slow down my site, if I switched to a light version… let’s try…
So that’s installed. It has a limited number of options, so it’s quick to install and set up. It doesn’t integrate with WordPress.com services, so there’s no additional smushing, or tiled galleries (pity). However, the displayed image has a better final quality than the smushed version. Layering the caching is more effective; but layering the smushing just degrades the final experience. Also, it allows the use of tiled galleries, a feature I like, and use in my gallery and other places.
WordPress SuperSonic with CloudFlare
The one plugin that seems to have made a difference is WordPress Supersonic, with CloudFlare integration. Because of the weird restriction that URLs without ‘www’ cannot integrate with CF at a server level on Dreamhost, I had to accept that using CF was unlikely, until I found the Supersonic plugin. It seems to have made a difference in the speed. I didn’t use any more than the plain vanilla settings, out of the box.
Comet Cache Pro
This is one of the staples of my sites, because it’s quite capable and efficient. There is a free version available in the WordPress Repository. Try it first.
The set up is a little more troublesome than the previous plugin. There are so many options to choose from. The basics I use:
- GZip Compression
- Browser Caching
- Double-Caching In The Client-Side Browser
- Auto-caching system via the sitemap xml file
I don’t use HTML compression for several reasons via this plugin, though I would like to. I’ve experimented with numerous options for HTML/CSS/JS compression, but I can’t quite get it right. That’s why I need…
This is what seems to work best, despite the caching plugin have the same types of resources. I have fewer problems with Autoptimize, esp. with buggy CSS and JS. I really like my caching program, even paid for it, but it doesn’t do everything well.
Remove Query Strings From Static Resources
The last is a superficial tool that removes ‘?’ query strings from as many places as it can. I don’t really know if it makes a big difference on loading times, but it does improve the ‘appearance of speed’.
I do have other plugins installed that do essential tasks, like DB back ups, Galleries, SiteOrigin, … but there’s only about a baker’s dozen.
The theme I use for this site is Themonic, which is already a fairly light theme in terms of resources. It has been pared back to remove the social links that festoon many other sites. Since this site is my personal notebook, I don’t see a need to have social links everywhere; moreover, turning them off reduced the number of calls by more than 60%.
Flies in this Ointment!
We’re all being encouraged to make our websites faster, but there isn’t a broad agreement on principles or practices even between Faceook, Google, Twitter, etc. none of whom seem to be bothered by the elements Tools.Pingdom highlights. Who knows why? Sample below…
Remove the following redirect chain if possible:
Where does that leave LTTL?
Simply put, I’ve saved up a budget of time. As long as loading times are faster, like 2 seconds +/- per page, I’m going to use the budget to improve the quality of photographs displayed. I don’t see any point in showing off quick and ugly pages, after all this is supposed to be my best images!
Once I’ve decided how to spend my ‘budget’ I’ll let you guys know!