Best return on time investment?

Hi folks,

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 :slight_smile:

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?

Thanks in advance!
Alastair.

For the benefit of others who might look to help, here is one of your test runs on WebPagetest: http://www.webpagetest.org/result/110922_Y2_1P2ZZ/

My recommendations:

  • Fix the 404

  • Change the +1 button to use the async code snippet: http://googlewebmastercentral.blogspot.com/2011/07/1-button-now-faster.html

  • Install W3 Total Cache and configure it to combine your js/css (and see if you can move the js to load later)

  • Use a CDN for images.selfassemblysites.com instead of serving them directly

  • Move the social networking icons at the bottom of the page into a sprite (they are being served individually right now)

  • See if there is ANYTHING you can do to make the images smaller (png 8 if they are 24, try jpeg, etc).

Thanks,

-Pat

Thanks Pat - I didn’t realise it was saving the URLs, dead handy.

[quote=“pmeenan, post:2, topic:1513”]
My recommendations:

  • Fix the 404[/quote]

Done.

[quote=“pmeenan, post:2, topic:1513”]

Done.

[quote=“pmeenan, post:2, topic:1513”]

  • Install W3 Total Cache and configure it to combine your js/css (and see if you can move the js to load later)[/quote]

Done.

[quote=“pmeenan, post:2, topic:1513”]

Won’t do this yet but on the cards for later.

[quote=“pmeenan, post:2, topic:1513”]

  • Move the social networking icons at the bottom of the page into a sprite (they are being served individually right now)[/quote]

To do.

Did a round of optimisation on these a while back - will look at them again.

Thank you! Great suggestions, have implemented all the easy picking and the rest are on my todo list - cheers!

I’ve re-run the test with the changes above made - here’s the link:
http://www.webpagetest.org/result/110924_HN_1PVH9/

  • Alastair.

W3TC backed out until I can do further testing on it - bunch of 404s occurring.

My antivirus program found this file located in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Se… Center->AntivirusDisableNotify:0 and ->FirewallDisableNotify:0 ->UpdatesDisableNotify:0 How do I delete/remedy this and reinstall my audio driver so that I can have sound? more details here: http://answers.yahoo.com/question/index;…
Can You Unlock iPhone
Unlock iPhone 3GS
Unlock iPhone 3G
Unlock iphone
iPhone Unlock
How To Unlock iPhone