Performance review of 10 popular WordPress themes
December 2nd, 2013
After reading Chris Lema’s post on Comparing Premium Sliders for WordPress by Performance, I was inspired to review some of my own. I took 9 of the most popular WordPress templates from ThemeForest, plus the default WordPress template “Twenty Thirteen”, and decided to compare their load times.
To normalize things, I made sure all themes were from the same category, and configured to display posts in “Blog” mode, with featured images enabled. Otherwise, all settings were left on their defaults.
Methodology (a la high-school science report):
- Each template was installed on a Digital Ocean VPS located in New York, running a LAMP stack
- I loaded each WordPress install with identical pseudo data and images to emulate a real website
- Tests were run from Dulles, Virginia using the great WebPageTest service
At first I used a vanilla WordPress setup, without any plugins or server-side tweaks. This would get the baseline performance of an everyday website without any optimizations, which is (unfortunately) common for most blogs.
Next, I measured performance with a properly configured W3 Total Cache with server-side APC caching installed:
- APC (Alternative PHP Cache)
- Page Cache
- Minify inline HTML+CSS
- Database Cache
- Object Cache
- Browser Cache
- Expires + Cache Control Headers
- Disable cookies for static files
And lastly, I enabled MaxCDN for all static sites in the Control Panel (which adds compression and ignores cookies):
The results speak for themselves: every site was sped up by at least 15%, with several by 50-80%.
The first round of caching, with just W3TC enabled, led to a giant improvement in load times. And what’s next? Even more caching. You can never have enough.
By using W3TC in combination with our CDN, we squeezed out an even bigger speed up. With HTTP Caching on the edge, we can offload static content from your server, reducing load and letting it server even more concurrent users.
Here’s a detailed breakdown of the results:
|Name||Requests||Total Size (KB)||PLT*||Requests w/ W3TC*||PLT w/ W3TC||PLT w/ W3TC + MaxCDN|
* PLT = Page Load Time
* W3TC = W3 Total Cache
Summary Of Results
BigFeature was the fastest, with Sahifa a close second. The default Twenty Thirteen skin put in a solid showing for 3rd place.
Even a slow theme like Goodnews, with over 100 resources, becomes relatively fast compared to the unoptimized themes when you enable caching and compression. There’s really no reason not to.
An interesting note: although SwagMag and ExtraNews are almost identical in size, SwagMag is faster despite having 24 more requests. It seemed strange, so I repeated the tests, and the findings are correct.
Apparently, the difference in speed is due to the time to first byte. Apache takes longer to process ExtraNews because of its complex (bloated?) PHP. There’s a pretty UX in the dashboard, but it may not be worth the performance hit: