<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>W3 EDGE &#187; web site optimization</title>
	<atom:link href="http://www.w3-edge.com/weblog/tag/web-site-optimization/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.w3-edge.com</link>
	<description>Innovation Redefined</description>
	<lastBuildDate>Sun, 06 May 2012 18:13:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/><xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>The Quest for Speed</title>
		<link>http://www.w3-edge.com/weblog/2009/12/the-quest-for-speed/</link>
		<comments>http://www.w3-edge.com/weblog/2009/12/the-quest-for-speed/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 10:52:40 +0000</pubDate>
		<dc:creator>Frederick Townes</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[User Interface / Experience]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[google ranking]]></category>
		<category><![CDATA[http transactions]]></category>
		<category><![CDATA[progressive render]]></category>
		<category><![CDATA[sprites]]></category>
		<category><![CDATA[steve souders]]></category>
		<category><![CDATA[web site optimization]]></category>
		<category><![CDATA[wordpress performance]]></category>

		<guid isPermaLink="false">http://www.w3-edge.com/weblog/2009/12/622/</guid>
		<description><![CDATA[More than a trend, web application performance, user experience and performance optimization are finally being recognized as the building blocks of successful sites. Google is taking a leading role today in increasing awareness about the role of speed in improving user experience and driving revenue.]]></description>
			<content:encoded><![CDATA[<p><img src="http://w3e.fredericktest.netdna-cdn.com/wp-content/uploads/2009/12/iStock_000003253552Large.jpg?7983b6" alt="iStock_000003253552Large" title="iStock_000003253552Large" width="400" height="266" class="alignright size-full wp-image-629" />For web applications today speed is not just about bragging rights, instead speed is a deciding factor in: reducing the learning curve of applications for end users, increasing the adoption rate, improving conversion rates, growing time on site and numerous other metrics for web sites.</p>
<p>Historically, search engine companies (Google, Yahoo!, Bing etc) are among the original innovating web application developers and their success has afforded them with the resources to learn how to scale applications. In particular, Google has been <a href="http://code.google.com/speed/articles/" rel="external">working diligently</a> (as does <a href="http://developer.yahoo.com/performance/rules.html" rel="external">Yahoo</a>) to contribute to the web developer community, increasing awareness and providing research about creating good experiences with web content. Today they&#8217;ve even released their solution to the performance issues surround Domain Name Service (DNS) and with their <a href="http://googleblog.blogspot.com/2009/12/introducing-google-public-dns.html" rel="external">Google Public DNS</a> project. DNS is the process by which your browser determines which server to query for the pages you request.</p>
<p>It has probably always played a role in the background in some way, but is now a talking point &mdash; the speed of a web site is instrumental in how Google determines the rank of your site in search engine result pages. While there may be <a href="http://mashable.com/2009/11/15/google-ranking-speed/" rel="external">numerous opinions</a> on the topic, the fact remains that speed is vital to a positive user experience and a healthy eco-system, so those facts make any opinions quite moot. You can now find Google&#8217;s opinion on the speed of your web site in Webmaster Tools, in <a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&#038;answer=158541" rel="external">the site performance</a> section (currently still a labs feature). Take a look and see how your site compares to the rest of the web.</p>
<p>WordPress is an extremely popular open source content management system and publishing tool. I contribute to the performance of WordPress via <a href="http://wordpress.org/extend/plugins/w3-total-cache/" rel="external">W3 Total Cache</a>, which (from a bird&#8217;s eye view) accomplishes a number of goals:</p>
<ul>
<li>Make servers more green by reducing the resource demands in delivering dynamic content</li>
<li>Reduce load time of sites, thereby providing the benefits stated above</li>
<li>Allow bloggers and other WordPress plugin developers to continue to focus on producing content and easy-to-deploy functionality for WordPress without having to worry about performance penalties / implementation issues or keep an eye on their WordPress installation.</li>
</ul>
<p>The action items to implement the largest performance wins for web applications traditionally include the following:</p>
<ul>
<li><strong>Progressive render: </strong>It&#8217;s imperative that CSS and JavaScript are properly embedded into web pages to ensure that the user begins to see content displaying as quickly as possible. The term progressive render literally implies that the web site loads instantly with a water fall effect rather than showing users a white page for several seconds and drawing the entire page at once. Proper use of this technique is realized through careful placement and embedding of CSS and JavaScript in the head of the page. As well as loading JavaScript near the end of the page in addition to using pipelining techniques to overcome download limitations in some browsers.</li>
<li><strong>Reduce HTTP Transactions:</strong> This technique takes shape in 3 ways:
<p>    HTTP Compression: the smaller the file, the faster it can be generated, sent and rendered or executed. Gzip or deflate compression is supported by modern browsers and is one of the most fundamental performance wins in web development.</p>
<p>    Minification: the staple technique of Yahoo.com, Google.com and Bing.com for years and instrumental in the &#8220;1 second page loads&#8221; they appear to have. Combining CSS and JavaScripts respectively, removing white space, comments, line breaks and even inserting CSS and JavaScript inline in the document, (if also compressed) ensures that the least amount of data is sent to the browser.</p>
<p>    <a href="http://spriteme.org/" rel="external">Image Sprites</a>: combining multiple images into a single file and using CSS to manipulate them on the page. Since your browser will download a larger image faster (in practice) than numerous <a href="http://www.gracepointafterfive.com/punypng" rel="external">smaller images</a>, this is a real performance win when coupled with browser-side caching.</p>
<p>    These methods make sure that there are fewer &#8220;calls&#8221; to a web server to deliver a page. When it comes to performance, less is more.</li>
<li><strong>Caching:</strong> Cache everything and cache often! Words to that effect are the mantra of hard core web developers. This technique includes setting expiration time for CSS, JavaScript, and images etc that are downloaded from your site. It also includes, caching pages, database queries, RSS feeds and so forth so that your web server spends time sending content instead of generating it. Don&#8217;t forget that Content Delivery Networks are also a very important type of cache that significantly reduce the latency of content intended for a global audience.</li>
</ul>
<p>Will it ever be enough? Doubtful. And there&#8217;s much more to it than the few items I listed. Google is already more than kicking tires on their new take on <a href="http://blog.chromium.org/2009/11/2x-faster-web.html" rel="external">how web enabled devices should communicate</a>. A very ambitious endeavor, but for Google who is bold enough to deploy HTML5 on their main property (Google.com), I&#8217;d have to say that they&#8217;ve got the resources to see it through. And as always it&#8217;s easy to see the wake of <a href="http://stevesouders.com/" rel="external">Steve Souders&#8217;</a> contributions to web application performance – no doubt a vital contributor at Google (the <a href="http://code.google.com/speed/page-speed/download.html" rel="external">page speed Firefox plugin</a>?), formerly of Yahoo fame.</p>
<p>The takeaway is this, on the horizon, there will be more talk about the performance of your site and that in turn will raise the bar and awareness in the open source community about how to make high performance applications, the reasons to do it and with which tools to measure those results.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.w3-edge.com/weblog/2009/12/the-quest-for-speed/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>Yoast Launched!</title>
		<link>http://www.w3-edge.com/weblog/2009/03/yoast-launched/</link>
		<comments>http://www.w3-edge.com/weblog/2009/03/yoast-launched/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 17:34:47 +0000</pubDate>
		<dc:creator>Frederick Townes</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[re-design]]></category>
		<category><![CDATA[web site optimization]]></category>

		<guid isPermaLink="false">http://www.w3-edge.com/?p=291</guid>
		<description><![CDATA[One of the harbingers of progress in the WordPress community allowed us to contribute a custom redesign including the latest in social media elements and custom illustrations.]]></description>
			<content:encoded><![CDATA[<p>Tweaking Web Sites is what <a href="/work/yoast-com">Yoast.com</a> is all about. Joost de Valk has been a prolific WordPress plugin developer for some time now and among our goals for the project was to call out featured plugins, featured posts and make sure that the site was engaging from a social media standpoint.</p>
<p>Above and beyond the design we also worked to optimize the site’s load and render performance as well as making the server stand up the traffic demands that yoast.com generates.</p>
<p>Hand drawn illustrations, advanced CSS and completely unique styling make this re-design project one we’re very proud of.</p>
<p>This project has been showcased quite a bit on the various design galleries and received numerous mentions from around the blogosphere including:</p>
<ul>
<li><a href="http://www.smashingmagazine.com/2009/04/02/10-impressive-simple-design-techniques/" rel="external nofollow">10 Simple and Impressive Design Techniques</a></li>
<li><a href="http://www.webdesignerdepot.com/2009/10/blog-headers-20-great-examples-and-best-practices/" rel="external nofollow">Blog Headers: 20 Great Examples and Best Practices</a></li>
<li><a href="http://www.webmaster-source.com/2009/04/10/design-spotlight-yoast/" rel="external nofollow">Design Spotlight: Yoast</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.w3-edge.com/weblog/2009/03/yoast-launched/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>K.I.S.S. Your Way to an Optimized Site</title>
		<link>http://www.w3-edge.com/weblog/2007/06/web-site-optimization/</link>
		<comments>http://www.w3-edge.com/weblog/2007/06/web-site-optimization/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 23:45:30 +0000</pubDate>
		<dc:creator>Frederick Townes</dc:creator>
				<category><![CDATA[Accessibility]]></category>
		<category><![CDATA[conversion rate optimization]]></category>
		<category><![CDATA[CSS / Markup / Code]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[web site optimization]]></category>

		<guid isPermaLink="false">http://www.w3-edge.com/weblog/web-site-optimization/</guid>
		<description><![CDATA[A &#8220;valid&#8221; site is not always the best site for users that visit it. Even amongst the savviest of coders and developers there has always been a common misconception about the value of web standards themselves. The idea of &#8220;keeping it super simple&#8221; (or other popular variations), when it came to the world of markup [...]]]></description>
			<content:encoded><![CDATA[<p>A &#8220;valid&#8221; site is not always the best site for users that visit it. Even amongst the savviest of coders and developers there has always been a common misconception about the value of web standards themselves. The idea of &#8220;keeping it super simple&#8221; (or other popular variations), when it came to the world of markup once revolved around spacer images and table-based presentation oriented markup. It seems that either as a beginner or a seasoned web professional the role of standards themselves became overrated, since even the less markup of yesteryear still validated. The balance of the confusion over the value of standards begins with the fact that web standards are not consistently supported amongst popular user agents, why should we bother working with them &mdash; why all the fuss? Regardless, the true value of web standards is as a stepping stone and the leverage it contributes to a well-conceived web site inside and out.</p>
<p><strong>Think Outside the Design</strong><br />
The value of web standards really amounts to recommended use of markup to semantically describe content. Once mastered, the web developer is able to make intelligent and <a href="http://www.mikeindustries.com/blog/archive/2004/06/march-to-your-own-standard" rel="external">conscious decisions</a> on the &#8220;right&#8221; compromises to be made for a given project. We are constantly working towards <a href="http://microformats.org/" rel="external">standardization</a> and have had dialogs about the <a href="http://www.simplebits.com/bits/simplequiz/" rel="external">best practices for markup</a> in various situations, it&#8217;s the World Wide Web Consortium&#8217;s role to define the purpose of markup; the platform for web site optimization. Web site optimization has little to do with search engine optimization or any of the W3C&#8217;s <a href="http://www.w3.org/QA/Tools/" rel="external">validation tools</a>. Instead web site optimization deals with steps taken to improve user experience by:</p>
<ul>
<li>reducing page weight</li>
<li>re-factoring of markup, CSS and/or Client Side Scripting</li>
<li>making content accessible</li>
<li>making content semantic</li>
<li>reusing imagery</li>
<li>optimizing the weight of imagery</li>
<li>caching and deferred loading</li>
<li>reducing latency to reduce download or render time</li>
</ul>
<p>In short, the goal is to use the minimum code to achieve the desired result. Unfortunately, clients may not always afford us the proper time or resources required to give the most polished result possible.</p>
<p><strong>Think it Through</strong><br />
Web standards in and of itself does not necessarily contribute to reduced file sizes, however what it does do is endorse healthy use of semantic markup that does give way to reduced page weight through table-less markup and a focus on cascading styles sheets for presentational material. By using document object model scripting, procedural code no longer needs to live inline in the html document itself. Take advantage of your page&#8217;s semantic structure to use the DOM to the fullest.</p>
<p>Code becomes art when we take our code to the next level by re-factoring it to maximize it accessibility, by reducing our dependency on the markup for presentation and procedural user interface components. What remains to be done when all of the content in a document is rendered as the design calls for, content properly described with your tags, images optimized for reuse and weight? Now,  we consider scale, what happens when this site we&#8217;ve worked so hard to optimize becomes highly trafficked (think: <a href="http://en.wikipedia.org/wiki/Digg_effect" rel="external">Digg Effect</a>) &mdash; or if the site already is, let&#8217;s make sure to optimize the server&#8217;s role in the user experience.</p>
<p>Caching is one of the chief techniques to be leveraged to improve user experience both on the client-side and the server-side. Making objects like cascading style sheets and JavaScript files external can also benefit from the technique of combining files to reduce latency. It&#8217;s much less &#8220;work&#8221; to download a larger file once than it is to download (or check for freshness of) several files. Unfortunately, many of the most visited sites could benefit greatly from even a dash of web site optimization. Issues like multiple CSS file or JavaScript files demonstrate little regard for the benefit they could provide their visitors as well as their own bottom line.</p>
<p>Move on to compression; consider pre-compressing your CSS and combined JavaScript files to reduce server load for high traffic sites. Go a step further and create a proxy that makes sure to return the &#8220;not modified&#8221; codes to user-agents checking for freshness of objects in your site after first download.</p>
<p>Without getting into code for each portion, let&#8217;s consider the typical components of a &#8220;well-designed&#8221; HTML document:</p>
<ol>
<li>masthead</li>
<li>navigation</li>
<li>breadcrumbs</li>
<li>body</li>
<li>sidebar</li>
<li>footer</li>
</ol>
<p>Within each there are a myriad of possible methods to semantically describe the content of the components. Let&#8217;s have a look at a few basic cases:</p>
<ul>
<li>Unordered Lists for navigation, breadcrumbs and copy in list items.</li>
<li>Non-tabular layout for forms and use of labels and access keys for accessibility</li>
<li>Use of &lt;p&gt;, &lt;em&gt;, &lt;strong&gt;,  &lt;dl&gt;, &lt;h*&gt;, &lt;table&gt; tags for content</li>
</ul>
<p>Diving into a single common challenge can show how understanding of web standards cascades into an optimized user experience, let&#8217;s look at a technique that combines several techniques by several authors, each of which contributing to many fundamental factors of web site optimization; specifically: image reuse, semantics,  presentational separation, caching, latency reduction, image optimization, and accessibility/platform independence. Anyway, on to the challenge &mdash; image based main navigation with hover effects. Without being distracted with pseudo-code let&#8217;s have a look at how using what we know about web standards leads naturally to web site optimization and a very desirable result for the user:</p>
<ol>
<li>Start with an unordered list, in the case of drop down menus, let&#8217;s make that a nested unordered list</li>
<li>The unordered list is styled as required using CSS such that any copy is moved out of view by hiding overflow and indenting the copy out of view of user agents that support CSS, but still leaving it accessible to screen readers etc</li>
<li>Now imagery is added for each of the tabs for the various states (hover, visited, active etc) as necessary</li>
</ol>
<p>Normally this is where things would end. At this point we have the desired result, but it&#8217;s not an optimal experience for the user. Again to the credit of numerous designers and developers turned authors out there additional techniques can be applied to optimize the menu quite a bit:</p>
<ol>
<li>Combine all of the images for each button in the navigation into a single file</li>
<li>Combine all of the image states the navigation into a single file and use CSS to shift the desired portion of the image into view when required</li>
<li>Put any JavaScript required for desired effects; e.g. transparency, sliding effects support for browsers that don&#8217;t support standards as we would like etc an external file</li>
</ol>
<p>In the previous three steps, we&#8217;ve:</p>
<ol>
<li>Reduced the latency required to load the main navigation imagery and the overall render time for a given page</li>
<li>&#8220;Pre-Loaded&#8221; and cached the other anchor states for the navigation without using any client side scripting</li>
<li>Cached the JavaScript for the navigation by making it external (the same is obviously true for the CSS), improving the render time for subsequent page views</li>
</ol>
<p>Now apply a few more techniques to the site as a whole:</p>
<ol>
<li>Take advantage of the compression support of popular browsers and compress JavaScript and CSS so that it can be sent instead of the larger uncompressed versions</li>
<li>Combine our CSS files and JavaScript files respectively, similar to the combining technique for the navigation imagery to reduce latency<br />
    Cache these compressed versions of the combined files on the server so that </li>
<li>Cache these compressed versions of the combined files on the server so that every page view requested doesn&#8217;t require the web server to have to prepare the same files over-and-over on-the-fly. Instead the server can send static files immediately (which it can do with tremendous ease).</li>
</ol>
<p>With the various techniques we all apply to our projects just adding a few more steps of optimization greatly improves the user experience.</p>
<p><strong>Make it Your Own</strong><br />
Standards simply help us agree on what markup is intended to do and how it&#8217;s elements work together for describing content, web site optimization picks up where web standards leaves off. The W3C encourages us to use markup to describe the content and separate the presentation and functionality from markup as much as possible. Once we get used to the idea our time is best spent optimizing our code to work in the real world. I&#8217;ve intentionally left out the &#8220;how&#8221; because that&#8217;s an ongoing debate whose conclusions are at best situational. There are quite a few frameworks out there that help developers apply many of these principles to their projects right out-of-the-box, but it&#8217;s not too difficult to build your own framework for your own style of work.</p>
<p>So what&#8217;s the final word? Well, similar to the stance that Ethan Marcotte put forward I suggest that web standards be the baseline that we use to optimize sites to perform for the targeted user agents. One day it may be easier to leverage standards to achieve a predictable user-experience across all user-agents, but for now it&#8217;s best to have more skills and mastery than are required to render a job well done.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.w3-edge.com/weblog/2007/06/web-site-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 6/11 queries in 0.022 seconds using apc
Object Caching 710/715 objects using apc
Content Delivery Network via w3e.fredericktest.netdna-cdn.com

Served from: www.w3-edge.com @ 2012-05-16 08:12:15 -->
