In the last weeks there has been a lot of talking around YSlow, the tool that the Yahoo! Developer Network released to check sites against their 13 rules of High Performance Web Sites.
Last week I used it against various blogs and I found out that my blog is rated only 36/100. So, also after the challenge started by Mads, I decided to try and improve my score.
The final score is a weighted average between the scores for each of the 13 rules. This means that some rules are more important than others and to increase the score of a site is better to have an higher rating in the rules that are weighted the most.
The weight of each rule can be found in the about:config page of Firefox, with the name: extensions.firebug.yslow.*
Here is the list of rules ordered by their weight:
- Rule 4 - GZip Components - 11
Rule 13 - Configure ETags - 11
Rule 3 - Add an Expires Header - 11 - Rule 10 - Minify JavaScript - 10
Rule 5 - Put CSS at the Top - 10
Rule 2 - Use a Content Delivery Network - 10
Rule 11 - Avoid Redirects - 10 - Rule 9 - Reduce DNS Lookups - 5
Rule 6 - Move Scripts to the Bottom - 5
Rule 12 - Remove Duplicate Scripts - 5 - Rule 1 - Make Fewer HTTP Requests (CSS) - 4
Rule 1 - Make Fewer HTTP Requests (JS) - 4 - Rule 1 - Make Fewer HTTP Requests (CSS Background images) - 3
- Rule 7 - Avoid CSS Expressions - 2
This means that gzipping your CSS and script files, configuring an Expires Header for scripts and images and removing ETags gives you double the points than combining all your CSS and scripts into one file or 3 times the points compared to using CSS Sprites to combine all the CSS background images into one.
The top 3 rules can be easily fulfilled configuring the web server but unfortunately people on shared hosting cannot change the configuration of the server, so the only way to achieve the same result is extending the scope of CMS used and to let it handles also CSS and JS files.
Since Mads challenged me to beat his score, and since I'm on WebhostForLife and I don't have access to the server configuration, I've to figure out a way to implement gzipping and Expires headers in static files served by Subtext. Wish me luck