Web performance optimization (WPO)

18,284 views

Published on

A presentation from SEO Campixx Barcamp 2011 in Berlin. Web Performance Optimization is about making websites faster. Here i discussed different measures and show the impact on competitive advantage and possibly rankings on Google. Undeniably you can say that better performance leads to more sales and better usability in terms of bouncing rates. View image slides here: http://b0i.de/wpopresentation

Published in: Technology, Design
4 Comments
24 Likes
Statistics
Notes
  • Experiential failures and learning have enabled our core team to establish site performance best practices. The best practices are grouped into categories that cover different aspects of page load optimization / site performance optimization:
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Good slide! Thanks Unfortunately, there isn’t free Content Delivery Network (CDN), just great companies like Google, Facebook which can pay for it
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Nice deck.

    If anyone is using .net, check out http://www.RequestReduce.com. A great resource for web performance optimization that merges and minifies CSS as well as automatically sprites its background images. It not only creates the sprite file automatically, but it does it on the fly through an HttpModule along with merging and minifying all CSS. It lso optimizes the sprite image using quantization and lossless compression and it handles the serving of the generated files using ETags and Expires headers to ensure optimal browser caching. The setup is trivial involving just a simple web.config change. See this blog post about its adoption by the Microsoft Visual Studio and MSDN Samples gallery:
    http://www.mattwrock.com/post/2011/09/10/Adopt-RequestReduce-and-see-immediate-Yslow-and-Google-Page-Speed-score-improvements-not-to-mention-a-faster-site!.aspx
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • In this optimizing performance it is very true that the aim is to satisfied the customer needs.
    such an incredible ideas
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
18,284
On SlideShare
0
From Embeds
0
Number of Embeds
1,217
Actions
Shares
0
Downloads
375
Comments
4
Likes
24
Embeds 0
No embeds

No notes for slide

Web performance optimization (WPO)

  1. Website Performance Optimization<br />Mariusz Kaczmarek<br />
  2. “If it is fast and ugly, they will use it and curse you; if it is slow, they will not use it.”<br />David Cheriton<br />Source: http://blogs.msdn.com/b/edglas/archive/2009/01/02/make-your-performance-work-count-the-20-rule.aspx<br />https://secure.wikimedia.org/wikipedia/en/wiki/David_Cheriton<br />2<br />
  3. Categorization<br />3<br />
  4. Optimize performance?<br /> More sales <br /> Less bandwidth & server peaks <br /> Customer satisfaction <br /> Might influence rankings <br />Competitive advantage<br />Source: http://googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html<br />4<br />
  5. “…optimize front-end performance first, that's where 80% or more of the end-user response time is spent” <br />Prof. Steve Souders<br />Source: http://developer.yahoo.com/blogs/ydn/posts/2007/03/high_performanc/<br />http://www.flickr.com/photos/seanosh/2782339349/<br />5<br />
  6. Effective measures?<br /> Website performance optimization should be aligned with the <br /> service / website / target audience you work with.<br /> Focus areas could be:<br /> Image optimization & compression<br /> JS performance (asynchronous, cached)<br /> Reduction of DOM elements <br /> Teaching customers and employees!<br />6<br />
  7. Combined Scripts<br />  Server-sided combination<br />  Avoid @import for combining<br />  JS tool: HEADjshttp://headjs.com/<br />7<br />
  8. CSS Performance<br />  Reuse of round corners and <br /> shadow classes  font-faces instead of pictures<br />  CSS-Sprites<br /> Universal > tags > classes > IDs<br />Source: http://www.alsacreations.com/xmedia/doc/full/sprites-big-sites.png<br />https://developer.mozilla.org/en/Writing_Efficient_CSS<br />8<br />
  9. Postponed Loading<br /> Use of GET with AJAX<br /> Google Instant takessnapshots 5-10s after onLoadevent? http://b0i.de/seomofo<br />Tools: <br />ContolJShttp://stevesouders.com/controljs/<br />ImageLoaderhttp://developer.yahoo.com/yui/imageloader/<br />LazyLoadhttp://plugins.jquery.com/project/lazyload/<br />Source: http://developer.yahoo.com/performance/rules.html<br />9<br />
  10. Event handlers, components,XHRs<br />User interaction, XHRs<br />backend<br />components<br />request<br />Site loaded<br />HTML sent<br />request<br />onload<br />5-10s<br />Google Instant Snapshot<br />Modifiedimage from High Performance Web Pages | Stoyan Stefanov | Yahoo! Exceptional Performance | PHP Quebec, March 13, 2008<br />Source: http://b0i.de/seomofo<br />10<br />
  11. DNS Lookups & Redirections<br /> Avoid 301 redirections (e.g. in HTML)<br /> http://www.bonoseo.com/ != http://www.bonoseo.com<br /> usage of not morethan2-5 different<br />domains on average<br /> better: domain-aliases for parallel downloadshttp://images.bonoseo.com || http://www.bonoseo.com<br /> cookielessdomainsforstaticcontent<br />Source: http://yuiblog.com/blog/2007/04/11/performance-research-part-4/<br />11<br />
  12. Content Delivery Network<br />Geographical distribution<br /> Minimizes DNS-Lookups <br /> Optimized caching und uptime<br /> (by dynamic DNS resolving)<br />Source: http://www.flickr.com/photos/andybeatty/5247263940/<br />12<br />
  13. Image Compression<br /> UseSmush.it<br /> Progressive JPEG<br />baseline<br /> progressive<br />Source: http://www.yuiblog.com/blog/2008/12/05/imageopt-4/<br />13<br />
  14. Vector Graphics<br /> Canvas Elemente with HTML5<br />Ai->Canvashttp://visitmix.com/labs/ai2canvas/<br />Progressive JPEG 13,3 kB -> HTML5 2,38 kB<br />Saved: 82%<br />14<br />
  15. Shape the DOM Tree<br /> <h1><em>Heading</em></h1> - useCSS‘sitalicsinstead<br />  Tool: DOM-Monsterhttp://mir.aculo.us/dom-monster/<br />  Avoid iFrames<br />15<br />
  16. Chunking<br /> flushfunction<br />Source: http://www.phpied.com/progressive-rendering-via-multiple-flushes/<br />http://stevesouders.com/docs/velocity-20090622.ppt<br />16<br />
  17. Performance Test Tools<br />Loads.inwww.loads.in<br />Slow Copwww.slowcop.com<br />Show Slowwww.showslow.com<br />Webpagetest www.webpagetest.org<br /> Browser based<br />Speedtracerhttp://b0i.de/speedtracer<br />YslowFireBughttp://b0i.de/yslow<br />More tools: http://code.google.com/speed/tools.html<br />17<br />
  18. Competition Analysis<br /> Possible performance profiles (by Souders & students)<br />http://b0i.de/profile<br /> Simple linear regression analysis<br />Wolfram Alpha: linear fit {1, 87},{2, 77},{3, 95},{4, 68}<br />http://b0i.de/wolfreg<br />18<br />
  19. Pareto Rule 80/20<br />Optimizationneeds time!<br />Lessons learned: Concentrate on biggestchunks<br />Source: JavaScript: The Good Parts - Part Six: Ajax Performance | Douglas Crockford<br />19<br />
  20. Questions? Discuss!<br />Let’s be friends <br />Twitter: BONOSEO<br />Facebook: kaczmarek.mariusz<br />Ssssshh… SouderSlides from Stanford: http://b0i.de/souderslides<br />20<br />
  21. Statistics 2010<br />Additional<br /> Average website size: 320 kB<br /> Compression is possible for 2/3 of overall data<br /> 80% of content is loaded from one host<br />Source: Statisticnumbers from 4.2 billionsiteshttp://code.google.com/speed/articles/web-metrics.html<br />21<br />
  22. Inline Images<br /> Base 64 encoding<br /> Great forsmallstaticimages<br />Additional<br />Works until IE7<br /> Browser switch!<br />22<br />Source: http://9gag.com/gag/76585<br />
  23. JavaScript Performance<br />Additional<br /> Tools: <br />http://dean.edwards.name/packer/<br />http://developer.yahoo.com/yui/compressor/<br /> DRY and OO approach<br />Seconds per 10 million operations<br />Source: Besser PHP Programmieren – Professionelle PHP-Techniken | Carsten Möhrke<br />23<br />

×