After someone presented me GTMetrix, a performance evaluation web site, I immediately tested it against my Blog…
Result was not too bad, but could be greatly improved.
I read many pages on the web, about WordPress optimization. And I could not figure out which one to choose… so I tested several, and I’m proposing to share my results with you here….
For your information, according to GtMetrix, my initial and final performance values are:
|Page speed grade||90%||99%||+9%|
|Page load time||2.51s||1.63s||-35%|
|Total page size||357KB||269KB||-25%|
Note: I did this testing again after a fresh migration to WordPress 3.2
The good point with GtMetrix is that you can have explanations/advises on your issues.
Let’s look at it at the start:
Results are already not too bad (also because I paid attention to the size of the pictures and their compression, but that’s another story…)
Nevertheless, my goal was to improve this. So I looked at the recommendations.
Page speed recommendations:
So I first installed wp minify
Its configuration is very simple (available from the Settings menus on the left).
Performance impact: I re-run the analysis
I then checked the YSlow page to identify next major improvements.
I need now to work on headers, ETags,…
This made me turn to a plugin that could manipulate HTML headers and provide additional caching mechanism: W3 Total Cache
W3 Total Cache
This is a quite big plugin. A lot of documentation/explanations are available.
Just two things to notice on my installation:
- need to setup WM_CACHE command in wp-config.php (see documentation)
- as I have already installed WP Minify (and I read minification in W3 Total Cache was less efficient), I simply deactivate the minify module of W3 Total Cache
Plugin installation create a full “Performance” section in your admin left bar, with several underlying menus.
Once installed, the performance tests are the following:
Less than 2 seconds to download the page, that’s really great…
Total page size could be improved, but this is also very dependant on the pictures available on my blog. I worked on their size, making sure they were properly compressed and cropped to the target size display (to minimize the need to transfer useless bytes). I could not go lower than 200k-230k, out of the 339k downloaded in the performance test…
What could I also improve now ?
Page speed recommendations:
It’s a question of structuring your CSS file.
As I’m using the “out of the box” theme (Twenty Ten), so I don’t want to play with this now…
What about YSlow ?
Some documents (especially pictures, media,…) are requested by the client browser when composing the page. As they are located on my WordPress site, in the WordPress hierarchy, the client browser automatically provides the authentification cookie when requesting the page. This cookie is useless (and ignored). A good practice is to store those media on a separate web site (at least a separate hierarchy) that do not require cookies…
Unfortunately, that’s not the way the WordPress composing interface behaves (when you click on “upload media”, the files are stored within WordPress hierarchy), and I don’t want to change that…
“Use a Content delivery Network (CDN)”…
Yes, of course, that would be nice to share the load using reverse proxies… But my blog is hosted, and I don’t have control on any CDN (and I don’t want to pay for that…)
Conclusion: I’m done for now !
Remark : I also noticed an extension (Really Static) that transforms your dynamic pages into static HTML pages. If your blog is not changing a lot (which is my case), that will save you the time to compose your pages on your server. That’s great.
I tested it in my previous WordPress version (3.1.x), and I didn’t see any significant change (mostly because my hosting server is probably not loaded at all). So I removed it.
But if you are using an heavily loaded server, this extension is definitively useful…