Speeding up your WordPress site can be done in several ways. ZippyKid (now Pressable) managed hosting offers only WP, and claims to make your site ‘3 times FASTER’. It includes a CDN in its monthly fee of $25 for its base plan.
My site was hosted in Sydney. I’m in Sydney. It was taking about 8-12s to load completely. In particular the ‘Time To First Byte’ (TTFB) was from 1.5-3s. Contrast that to google.com, which loads completely in 300ms or so!
I was using a default WP setup with photon CDN. I was testing using webpagetest.org.
From what I understand, the important things for viewer experience are in order of importance:
- TTFB – your browser tells you the server has replied – ie the host isn’t dead
- Start Render – your browser starts showing stuff
- Document Complete – the page looks complete and usable (but some dynamic stuff may still be loading – this shouldn’t affect the usability of the page)
Here is a particularly bad test result and here is a more typical result from my old host. Document Complete is about 8s. As you can see, the score boxes are mostly red. All this info can be distilled into a number called the ‘Speed Index’, which the lower the better.
Enter ZippyKid (now Pressable)
The benefits claimed are many. Optimized, WP experts, big name customers, CDN. Sounds great! ZippyKid lives in the same space as WPEngine, Pagely, and some others, but is the cheapest of the lot when you factor in the included CDN which is an extra cost in the others.
Don’t want to read, what’s the quick answer?
Just moving the site to ZippyKid gave little real improvement. A lot of the boxes turned green, but TTFB was still high. The images loaded faster due to the CDN, but the page time was mainly unchanged. The Speed Index was sometimes higher, sometimes lower. I had more to do if I wanted a fast site.
Moving to ZippyKid (now Pressable)
Moving WP sites isn’t easy, but I had done it before. There are many free sites you can setup and play with importing WP, so there’s no reason to pay them $250 to migrate your site. Especially when you need to use the WP importer, which does not work properly unless you split your export file to small sizes. If you really want, pay me and I’ll do it for you! I have a WP export splitter which doesn’t break attachment links, but you have to have well named posts and attachments to use as keywords to split with.
ZippyKid has free accounts you can use. I had to use the WP importer as I was moving from multisite to single. I split my export into 800kb sizes, and there were 5 files in total. It still timed out many times (which means broken attachment links). Eventually I settled for 1 import a day, and got it all installed. All in all, it took about a week.
The problem is that ZippyKid doesn’t allow you to alter php memory/timeout settings, which you can in a normal host. These help a lot when importing sites with images.
ZippyKid free accounts do not include CDN or server optimisations. I could only assume it gets faster once you pay. I fixed a few broken links, verified it was no slower than my Sydney host, and paid for a full account.
As I mentioned I couldn’t get it much faster than before.
What was missing?
Originally I had expected a few things from reading ZippyKid’s site and blog. These didn’t turn out so well:
Seen on their main site, makes images faster. Perfect for a photo blog right?
Unfortunately it’s not available. From their support:
Image Smusher: Again, we’ve never offered this. We did develop some software, but we’ve never put it in to production due to some larger issues, and the cleaner implementation of Pagespeed.
My theme has lots of CSS/JS files. I guess this is the case for any highly customisable theme. Minify is a great way to cut the number of connections required from almost 90 to about 40. It is mentioned in a few places, particularly this blog post.
Again it’s not available. From their support:
Minify Engine: We’ve never offered a “minify engine” as part of our services. We have been trialing and testing Google’s Pagespeed service as a partner with Google, but it’s not ready to be rolled out.
What’s more, minify plugins are not supported. Any minify plugin, even if all the settings are turned off, will mess up their server settings, and disable the CDN, not only the CSS/JS, but images too. So it’s not an option at all.
I guess in the US they have different truth in advertising standards to Australia. 2 months after I told them of these things they didn’t update their site.
ZippyKid (now Pressable) Support
ZippyKid Support may all be WP experts, but they kept suggesting I employ a WP developer to optimise my site and leading me to believe that my theme was horribly slow. Unfortunately they were reluctant to do anything else.
They explained the TTFB was due to the server compression. They made the example of
- server A serving uncompressed html can start immediately
- server B compresses content before sending, so TTFB is larger, but completes the page before server A does
This seemed to make sense, the compression score was green, and their main site loads in 2s. Maybe they know what they’re doing.
I didn’t want to change too much in the theme, because I would have to reapply the changes for each update in the future. I changed the front page so it had fewer images. Document Complete was down to 7s, and later with even fewer images it was down to 6.
At least 2nd load was down to 5s, this was the best I could do with ZippyKid. I even had a page with just one image and a few paragraphs, and it took 7s, so that was that. At this point support was a bit sick of my questions.
It turns out one of my issues was their CDN.
I’m in Sydney. They come with NetDNA, whose closest point is Singapore. Edgecast is available in Sydney, but costs an extra $30/mth. The free Jetpack photon CDN is based on Edgecast, which is why I wasn’t seeing much improvement after moving to ZippyKid. Any server optimisations was lost on their slow (in Sydney) CDN.
Now I could go back to Jetpack photon CDN for my images, the problem is that Jetpack photon CDN cannot refresh images which is an issue for a photo blog.
I didn’t believe this was the best I could do. After all, Google PageSpeed Insights says TTFB could/should be better. Even if ZippyKid was spending its 1.5s compressing, surely it only needs to do it once, and can cache the compressed content for the next test?
Back to generic
I went back to a generic host in Sydney. I committed to do the things myself that ZippyKid promised to take off my mind.
First thing I did was cache. I couldn’t get W3TC to work, so I ended up with WP Super Cache. I saw an immediate improvement. It took me a while to get the preloading working so that all users would only see cached pages.
I still didn’t want to use Jetpack photon CDN. I signed up for CloudFlare free version. CloudFlare actually has an edge point in Sydney, so it had potential to be faster than NetDNA. The other great thing is that it has a minify function, so I didn’t need to add another plugin to WP.
Also CloudFlare allows you to specify how long things live in the users’ browser cache. If you set to a few days, then every visit during those days will be at the speed of the ‘Repeat View’ row of the speed test.
With CloudFlare Rocket Loader I got a TTFB of 127ms, Document Complete at 1.7s and Speed Index of 1320. However the fully loaded time was slower at 4.4s and there were issues in IE.
I settled with it off, and scoring a TTFB of 136ms, Document Complete at 2.6s and Speed Index of 1161.
By simply using a combination of WP Super Cache and CloudFlare, My site now loads in an average of 3s. Basically running the exact same code and data, I can choose to have ZippyKid manage it for me and score a pagespeed of 4159:
Or manage it myself and score a pagespeed of 1161:
To me it’s a bit of a no-brainer. For just a little time spent setting up caching, the first time a visitor hits my site they will be served over twice as fast as ZippyKid. For any repeat visits the whole page will finish loading before ZippyKid even starts sending any data. Don’t forget Google uses pagespeed to rank your site!
To me it seems a bit strange that a company full of WP experts with optimised nginx setup, optimised html and optimised database caching would actually be slower than a standard apache setup run with some free plugins. Obviously if you take what I did, put it on an optimised nginx setup and used Edgecast, it would be even faster. I guess the moral of the story is that no matter what someone claims, if their goals aren’t aligned with yours, you will not get a good result.