Some seriously impressive stuff in here - I particularly love the laptopgpsworld vs google video - awesome, and Patrick’s code to inline CSS for first time visitors.
I’m in a different league - a lower one! My main concern is not being optimised to the extent that some of you guys are - for me it’s about getting the best bang for my buck of time investment. I’m looking for any low hanging fruit that I’ve missed out on. This post is pretty long because I want to provide as much info as possible to make it easier for you folks to help me
I have a sales page that is quite long, and has a lot of images. I’ve done a bunch of stuff to improve load time - CSS sprites, minifying CSS and JS (within reason - I regularly need to edit the CSS so not going overboard). I’ve moved to Litespeed hosting - very happy with new hosts actually.
My question for you is assuming that you can’t remove any of the content, what further optimisations would you implement on this page?
I’m getting a “Grade C - Overall performance score 71” from YSlow v2 ruleset. In reverse order, here’s what it recommends addressing:
I’ll ignore the A’s and B’s. Here’s what’s left & my comments:
Here’s what my .htaccess looks like on my images subdomain:
# GZIP content.
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
# Netscape 4.x has some problems...
BrowserMatch ^Mozilla/4 no-gzip
</ifModule>
#Expire Header
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 259200 seconds"
ExpiresByType image/ico "access plus 259200 seconds"
ExpiresByType image/jpeg "access plus 259200 seconds"
ExpiresByType image/png "access plus 259200 seconds"
ExpiresByType text/css "access plus 259200 seconds"
ExpiresByType text/javascript "access plus 259200 seconds"
ExpiresByType application/x-javascript "access plus 259200 seconds"
</ifModule>
#CacheControl
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=516000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=216000, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
#Turn off ETags
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
My question for you is assuming that you can’t remove any of the content, what further optimisations would you implement on this page? Is there any low-hanging fruit left here?