This document summarizes Steve Souders' presentation on web performance optimization (WPO). It discusses how speed is the most important website feature and outlines techniques to improve performance like optimizing assets, reducing page weight, and addressing third-party content. It also previews upcoming developments in WPO like browser tools, standards, and the growing focus on mobile and ensuring speed remains a key differentiator.
10. Site speed in search rankScreen shot of blog post…we've decided to take site speed into account in our search rankings.googlewebmastercentral.blogspot.com/2010/04/using-site-speed-in-web-search-ranking.html
52. top 10 WPO predictions10. fast-by-default9. visibility into the browser8. consolidation7. TCP, HTTP6. standards5. industry organizations4. data3. green2. mobile1. speed’s a differentiatorflickr.com/photos/eole/380316678/
53. P3PCPerformance of 3rd Party ContentAdsWidgetsAnalyticsflickr.com/photos/ntr23/729463293/
57. if (q.insertBefore) {var s = _get(q.insertBefore, id); if (s) {s.parentNode.insertBefore(n, s); }} else {h.appendChild(n);}- YUI Loader 2.6.0 (2008)flickr.com/photos/amodiovalerioverde/425333516/appendChild or insertBefore?
58. b = this.getHardpoint(); f = document.createElement('script');f.src = g;f.type = 'text/javascript';f.async = true;b.appendChild(f);getHardpoint: function() {var c, b = document.getElementsByTagName('head'); if (b.length) { c = b[0]; } else c = document.body;this._hardpoint = c;}- Facebook (April 18, 2010)flickr.com/photos/amodiovalerioverde/425333516/appendChild or insertBefore?
59. head = document.getElementsByTagName ("head")[0] || document.documentElement;// Use insertBefore instead of appendChild to circumvent an IE6 bug.// This arises when a base node is used (#2709 and #4378).head.insertBefore(script, head.firstChild);- jQueryflickr.com/photos/amodiovalerioverde/425333516/appendChild or insertBefore?
60. var f=document.getElementsByTagName("script");var b=f[f.length-1]; // b is last script tagif(b==null){ return; }vari=document.createElement("script");i.language="javascript"; // i is a script elementi.setAttribute("type","text/javascript");var j=""; // j is a stringj+="document.write('<scr'+'ipt language=quot;javascriptquot; src=quot;"+c+"quot;></scr'+'ipt>');";var g=document.createTextNode(j); // not usedb.parentNode.insertBefore(i,b);appendChild(i,j);function appendChild(a,b){ if(null==a.canHaveChildren||a.canHaveChildren){a.appendChild(document.createTextNode(b)); } else{ a.text=b;}}- Collective Mediaflickr.com/photos/amodiovalerioverde/425333516/appendChild or insertBefore?
61. “Frag Tag”Alex Russellsnippet<FRAG><script src=“snippet.js”></script></FRAG>doesn’t block renderingasyncdocument.writeJavaScript sandboxingjust a twinkle in my eyefrag tagflickr.com/photos/bestrated1/2141687384/
76. Bothcombine scriptscombine stylesheetsadd an Expires headergzip responsesput stylesheets at the topput scripts at the bottomavoid CSS expressionsmake JS and CSS externalreduce DNS lookupsminify JS and CSSavoid redirectsremove duplicate scriptsmake Ajax cacheablereduce cookie sizeuse cookie-free domainsdon't scale imagesYSlowuse CSS spritesuse a CDNconfigure ETagsuse GET for Ajax requestsreduce # of DOM elementsno 404savoid image filtersoptimize faviconPage Speeddefer loading JSremove unused CSSuse efficient CSS selectorsoptimize imagesoptimize order of CSS & JSshard domainsleverage proxy caching
79. speed mattersa lot is coming in WPOguard against 3rd party contentstevesouders.com/cache.phptakeawaysflickr.com/photos/34771728@N00/361526991/
Fred Wilson is Managing Partner of two venture capital firms, Flatiron Partners (Yoyodyne, Geocities) and Union Square Ventures (Twitter, delicious,Etsy, Feedburner).SpeedInstant utilitySoftware is mediaLess is moreMake it programmableMake it personalRESTfulDiscoverabilityCleanPlayful
“if we’re able to achieve a similar performance boost across ourothertoplanding pages, we’ll drive in excess of 60 million yearly Firefox downloads.”
This was a ~5 second speed up.
Time measurements from real users.
coops – similar to anti-spam coop, imagine Google Ajax Libraries API also supported on AWS,