I finally decided to change (again) the hosting service I was using for my blog. I noticed that my website was really too slow and even for development purposes I wasn’t able to test and refresh quickly enough to not lose patience. So my roommate and I decided to try Media Temple and their VPS (Dedicated Virtual) with the cheapest plan which is 50$/month for 512MB Ram, 30GB HDD, and 1TB /month bandwidth.
The transition has been made smoothly and it is a real pleasure to enjoy Admin and Plesk panels from Media Temple. Everything is designed so well, simple enough for entry level developers to make their way in and advanced enough to be able to install all sorts of applications and to have (of course) root access on your machine.
So, after moving my domains and all files/databases to my new VPS, I just felt like my website was responding lightning fast. I enabled all the caching and optimization I previously had set up on my wordpress and I reach a 85/100 Page Speed result.
I’m planning to reach the 95/100 in the next few days while I’ll optimize all the CSS/JavaScript contained in my website.
All the measures can be done with Google Page Speed. (avaible for Chrome and Firefox through FireBug)
The key points here are :
- Cleaning and removing all unused plugins/extensions
- Cleaning CSS and removing all unused declarations
- Optimization and Compression : CSS/Java/HTML
- Browser Caching : Everything can be setup in the .htaccess file
- Avoiding usage of cookies or storing them in internal sessions.
- Server-side caching. Can be done with W3 Total Cache if you’re using WordPress or like this in PHP.
- Rarefying the usage of images, actually I only display my logo.
- Ideally, store static data in a cookieless domain, like storing images on images.yourdomain.com and so on.
- W3 Validate the website.
Server-side caching frequent troubles :
Server-side caching is basically like taking a picture of a page and serving it each time a client comes up. It is much faster to display an html file than to process a php file with all the mysql queries it implies. The problem with this is that you lose all the dynamic side of the website. Per example, if you display dynamic content like a simple the result will the stay the time the page was cached, so basically the first execution. Per example, the menus shouldn’t be cached because of the simple reason that you can display some menus to registered users, some others to admins, etc…