<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-7197682597816655605</atom:id><lastBuildDate>Tue, 09 Mar 2010 15:01:32 +0000</lastBuildDate><title>WEBO Site SpeedUp Blog</title><description>Faster than Lightning!</description><link>http://blog.webogroup.com/</link><managingEditor>noreply@blogger.com (Gleb)</managingEditor><generator>Blogger</generator><openSearch:totalResults>40</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/WebOptimizerBlog" /><feedburner:info uri="weboptimizerblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>WebOptimizerBlog</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2648662355493386410</guid><pubDate>Tue, 09 Mar 2010 14:58:00 +0000</pubDate><atom:updated>2010-03-09T18:01:32.103+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">video</category><category domain="http://www.blogger.com/atom/ns#">joomla</category><category domain="http://www.blogger.com/atom/ns#">tutorials</category><title>WEBO Site SpeedUp for Joomla! screencasts</title><description>&lt;p&gt;We are starting with a set of product screencast to help users with product tuning. The most important features will be described in step-by-step manuals.&lt;/p&gt;&lt;p&gt;Here is the first one - JavaScript / CSS files merging tuning.&lt;/p&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5nxXdk-E7gg&amp;hl=ru&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5nxXdk-E7gg&amp;hl=ru&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;All screencasts will be available on our website - &lt;a href="http://www.webogroup.com/home/site-speedup-joomla/video/"&gt;www.webogroup.com/home/site-speedup-joomla/video/&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2648662355493386410?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=1esEgOveQFg:9jP9r_dnxvI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=1esEgOveQFg:9jP9r_dnxvI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=1esEgOveQFg:9jP9r_dnxvI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=1esEgOveQFg:9jP9r_dnxvI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=1esEgOveQFg:9jP9r_dnxvI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/1esEgOveQFg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/1esEgOveQFg/webo-site-speedup-for-joomla.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/03/webo-site-speedup-for-joomla.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-911869229285932104</guid><pubDate>Sun, 07 Mar 2010 17:29:00 +0000</pubDate><atom:updated>2010-03-07T20:50:07.212+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">CSS Sprites</category><category domain="http://www.blogger.com/atom/ns#">configuration</category><category domain="http://www.blogger.com/atom/ns#">error</category><category domain="http://www.blogger.com/atom/ns#">ui</category><category domain="http://www.blogger.com/atom/ns#">welcome</category><title>v1.0.3 released</title><description>&lt;p&gt;A lot of minor usability and accessibility (both in administrative interface and application core logic) is this release. More info:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Added option 'Safe JS combine'&lt;/strong&gt;. It guarantees that in case of broken JavaScript it will be loaded separately and won't harm other scripts. Here is used &lt;code&gt;try-catch&lt;/code&gt; envelope (which reduces a bit performance, so it can be disabled).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added Basic configuration set.&lt;/strong&gt; Basic configuration includes all &lt;a href="http://www.speedingupwebsite.com/2010/01/08/the-right-way-to-speed-up-your-blog/"&gt;first-priority performance actions&lt;/a&gt;, and it is a bit better than Safe one. But it can fail on a few environments.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added welcome screen after installation.&lt;/strong&gt; Major UI improvement - now there is welcome screen with quick actions and new features right after WEBO Site SpeedUp installation.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added Error screen on failed automatic installation.&lt;/strong&gt; With welcome screen also added Error screen to help understand what is worng (very rarely) with WEBO Site SpeedUp installation (and which actions can be applied).&lt;/li&gt;&lt;li&gt;Other UI fixes and improvements.&lt;/li&gt;&lt;li&gt;CSS Sprites logic improvements.&lt;/li&gt;&lt;li&gt;Improved server environment detection.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.webogroup.com/home/download/"&gt;Download the latest WEBO Site SpeedUp&lt;/a&gt; or update from the product.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-911869229285932104?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hL85SiikR_k:RaFrNlbZX4E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hL85SiikR_k:RaFrNlbZX4E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hL85SiikR_k:RaFrNlbZX4E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=hL85SiikR_k:RaFrNlbZX4E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hL85SiikR_k:RaFrNlbZX4E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/hL85SiikR_k" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/hL85SiikR_k/v103-released.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/03/v103-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-3982778631729383692</guid><pubDate>Fri, 26 Feb 2010 19:47:00 +0000</pubDate><atom:updated>2010-02-26T23:17:23.208+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">HTML Sprites</category><category domain="http://www.blogger.com/atom/ns#">data:URI</category><category domain="http://www.blogger.com/atom/ns#">HTTP requests</category><title>HTML Sprites - silver bullet against small images</title><description>&lt;p&gt;Last builds of &lt;a href="http://www.webogroup.com/home/site-speedup/"&gt;WEBO Site SpeedUp&lt;/a&gt; include amazing client side optimization approach - CSS Sprites for HTML images. Let's review underneath logic and all related techniques.&lt;/p&gt;&lt;h3&gt;CSS Sprites - why HTML?&lt;/h3&gt;&lt;p&gt;Actually we are speaking about combining images to a larger one which can be positioned with CSS property &lt;code&gt;background-position&lt;/code&gt;. It's impossible to convert raw HTML images to CSS Sprite (to be correct - it's possible but leads a lot of restrictions and drawbacks, i.e. we will have to drop a huge part of images' functionality and properties).&lt;/p&gt;&lt;p&gt;So before any actual operations with images in HTML code (like &lt;code&gt;&amp;lt;img src="..." /&amp;gt;&lt;/code&gt;) we should prepare them. How? We should convert all images to 'fake' ones - transparent stubs which have initial image as a background, and the same width and height.&lt;/p&gt;&lt;h3&gt;Converting HTML images to CSS images&lt;/h3&gt;&lt;p&gt;Well. To reduce amount of data (we are going to speed up website, not to increase its load speed) we should choose very efficient approaches to insert transparent stubs. And we have 2 choices:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Insert call to 1x1 transparent GIF image (yeah, bad known spacer.gif which was used a lot several years ago to make table layout). Its size is only 43 bytes (but 1 more HTTP request).&lt;/li&gt;&lt;li&gt;For modern browsers we can use 82-bytes data:URI chunk (which represents this image - &lt;code&gt;data:image/gif;base64,R...Ow==&lt;/code&gt;. A bt more data (with gzip usage - about 100 bytes for 1 HTML document, or nothing). But minus 1 HTTP request (cool!).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;To provide the best practices here we can combine both approaches - for IE7 and lower use the first one, for all the other browsers - the second one.&lt;/p&gt;&lt;h3&gt;Playing with HTML Sprites&lt;/h3&gt;&lt;p&gt;It seems now we have all parts for HTML Sprites logic and can reveal it.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;First of all - parse initial HTML code to find all images, get their sizes (and skip some large ones).&lt;/li&gt;&lt;li&gt;Then create an array of CSS rules based on given HTML images - just background image (plus &lt;code&gt;no-repeat&lt;/code&gt; and zero background position), width and height.&lt;/li&gt;&lt;li&gt;Then just combine all images in 1 CSS Sprite (using existent CSS Sprites logic over current set of CSS rules).&lt;/li&gt;&lt;li&gt;Finally (with a number of CSS classes) replace initial HTML images with stubs with calculated styles.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;All this looks very simple. But what are drawbacks?&lt;/p&gt;&lt;h3&gt;Troubles and solutions&lt;/h3&gt;&lt;p&gt;As far as we need to check size for any image (just to get its dimensions an skip it if it's very large) - we will have a lot of I/O requests with any HTML document. So this can significantly increase server side load time. That's bad. But we can cache calculated dimensions for known images (such dimensions are being changed very rarely) - and skip all future recalculations.&lt;/p&gt;&lt;p&gt;But with every HTML document (with cached calculated dimensions) we have one more expensive CPU operation - CSS background positions calculation (even with completed CSS Sprite we need to get actual positions of given images inside it). But good news here is that we can also cache such calculations (to a set of CSS rules for given HTML image).&lt;/p&gt;&lt;p&gt;Also we must have per-page or per-website modes. Just because you can have thousands of small images through the whole website - but you don't want your visitors to download them all at once.&lt;/p&gt;&lt;p&gt;With all such approaches HTML Sprites technique works both on a high-end servers and weak VDS/shared hosting. And reduces by 20-30% number of HTTP requests for every your web page. That's really amazing. And it's ready to use - just &lt;a href="http://www.webogroup.com/home/download/"&gt;download WEBO Site SpeedUp&lt;/a&gt; or update to the latest version.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-3982778631729383692?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=0FUfkVvs9Mc:xGKnIq6VI-c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=0FUfkVvs9Mc:xGKnIq6VI-c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=0FUfkVvs9Mc:xGKnIq6VI-c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=0FUfkVvs9Mc:xGKnIq6VI-c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=0FUfkVvs9Mc:xGKnIq6VI-c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/0FUfkVvs9Mc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/0FUfkVvs9Mc/html-sprites-silver-bullet-against.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/html-sprites-silver-bullet-against.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-3102218434572385506</guid><pubDate>Thu, 25 Feb 2010 10:57:00 +0000</pubDate><atom:updated>2010-02-25T14:02:37.589+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ICO</category><category domain="http://www.blogger.com/atom/ns#">1.0.2</category><category domain="http://www.blogger.com/atom/ns#">HTML Sprites</category><category domain="http://www.blogger.com/atom/ns#">unobtrusive javascript</category><category domain="http://www.blogger.com/atom/ns#">Social Engine</category><category domain="http://www.blogger.com/atom/ns#">cache</category><category domain="http://www.blogger.com/atom/ns#">DLE</category><title>WEBO Site SpeedUp v1.0.2</title><description>&lt;p&gt;New version with HTML Sprites support and more performance.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Added HTML Sprites&lt;/strong&gt;. There are now 3 new options: apply HTML Sprites, dimensions limit for them, and 'per-page' mode (you can combine small images for the whole website, or for the currect page only). HTML Sprites combine small HTML images and replace initial images with transparent one. This can greatly reduce total number of objects on your website.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;CSS Sprites refactored.&lt;/strong&gt; To meet strict resources limit on shared hsoting / VDS core logic for images' placement in CSS Sprites was refactored, and now it consumes much less memory, but a bit more CPU.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option 'Days to store cache files'.&lt;/strong&gt; Now you can restrict number of files in cache with this option (outdated files will be deleted automatically when new ones are being created).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved unobtrusive JavaScript.&lt;/strong&gt; Fixed layout bugs in a few cases and reduced DOM tree size.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added support for ICO files into CSS Sprites.&lt;/strong&gt; Now ICO files (as well as JPEG/PNG/BMP/GIF ones) can be combined both to CSS or HTML Sprites.&lt;/li&gt;&lt;li&gt;Improved JavaScript merging for DLE.&lt;/li&gt;&lt;li&gt;Social Engine (3.19) added to supported systems.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-3102218434572385506?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=OI29dRVjzoU:GwiT77ujDCE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=OI29dRVjzoU:GwiT77ujDCE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=OI29dRVjzoU:GwiT77ujDCE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=OI29dRVjzoU:GwiT77ujDCE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=OI29dRVjzoU:GwiT77ujDCE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/OI29dRVjzoU" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/OI29dRVjzoU/webo-site-speedup-v102.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/webo-site-speedup-v102.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-8611442270384045754</guid><pubDate>Tue, 16 Feb 2010 21:59:00 +0000</pubDate><atom:updated>2010-02-17T01:07:03.347+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">CSS Sprites</category><category domain="http://www.blogger.com/atom/ns#">trial key</category><category domain="http://www.blogger.com/atom/ns#">1.0.1</category><category domain="http://www.blogger.com/atom/ns#">ui</category><category domain="http://www.blogger.com/atom/ns#">memory consumption</category><title>WEBO Site SpeedUp v1.0.1</title><description>&lt;p&gt;We didn't stop with product improvements, and after major 1.0 release continued to make it better. So here is a scheduled 1.0.1 update.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Greatly improved CSS Sprites&lt;/strong&gt;. There were added a few complicated cases to CSS Sprites logic, fixes memory consumption (approximately by 20-50%). Also improved CSS properties in case of complicated selectors restoration.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added automated request for 7-day trial key.&lt;/strong&gt; Now you can test Premium Edition for 7 days (for 1 website) after installation, no performance or feature limits.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Fixed endless redirects on 404 errors.&lt;/strong&gt; In some cases side caching with wo.static.php lead to recursive redirects. Such situations were fixed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added 'Share results on Twitter' buttons.&lt;/strong&gt; Now you can post your optimization results directly to Twitter.&lt;/li&gt;&lt;li&gt;Minor UI fixes.&lt;/li&gt;&lt;li&gt;Improved static resources caching in case of symlinks usage.&lt;/li&gt;&lt;li&gt;Improved external resources fetching (i.e. in case of dynamic background images).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.webogroup.com/home/download/"&gt;Download the latest WEBO Site SpeedUp&lt;/a&gt; or update from the product.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-8611442270384045754?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=HnirQVJ2KDA:u-XvBgNMBaQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=HnirQVJ2KDA:u-XvBgNMBaQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=HnirQVJ2KDA:u-XvBgNMBaQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=HnirQVJ2KDA:u-XvBgNMBaQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=HnirQVJ2KDA:u-XvBgNMBaQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/HnirQVJ2KDA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/HnirQVJ2KDA/webo-site-speedup-v101.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/webo-site-speedup-v101.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-7298262998897709727</guid><pubDate>Wed, 10 Feb 2010 18:53:00 +0000</pubDate><atom:updated>2010-02-10T22:11:49.101+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">version 1.0</category><category domain="http://www.blogger.com/atom/ns#">www.webogroup.com</category><title>WEBO Site SpeedUp 1.0 released!</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/S3MBNHy8d0I/AAAAAAAAAuk/tM3BcArRszE/s1600-h/www.webogroup.com.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 294px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/S3MBNHy8d0I/AAAAAAAAAuk/tM3BcArRszE/s320/www.webogroup.com.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5436690500108973890" /&gt;&lt;/a&gt;&lt;p&gt;After 2 months of creating, tuning, and polishing of the new interface, old and new bugs resolving and general compatibility improving we have released version 1.0 of this outstanding application to speed your website up.&lt;/p&gt;&lt;p&gt;Also we have released our new corporate website (formerly web-optimizer.us) to allow wide range of website acceleration products and services - &lt;a href="http://www.webogroup.com/"&gt;www.webogroup.com&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Here are few words about new features in 1.0 (in comparison to 0.9.7).&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Added option 'Performance -&gt; Restore CSS properties'&lt;/strong&gt;. It is responsible for correct CSS Sprites creation (parsing CSS rules' tree), but it can be CPU expensive, so it's disabled by default.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved Unobtrusive JavaScript&lt;/strong&gt;. Added BlogBang? and eBuzzing added.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved external files fetching&lt;/strong&gt;. There were fixed some bugs with external redirected files (or 404 errors on them).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved paths automatic calculation&lt;/strong&gt;. Added better support for symlinks in directories.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved JavaScript merging behavior&lt;/strong&gt; on HTML/JS/CDATA mess (added more rules for pseudo HTML comments).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved HTML minify&lt;/strong&gt; and fixed its compatibility with System - Cache in Joomla!. Now HTML documents are even less in size!&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved .htaccess rules&lt;/strong&gt; (fixed unstyled websites).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Minor improvements in UI&lt;/strong&gt;. Reduced number of files (with CSS Sprites), fixed minor layout bugs.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.webogroup.com/home/download/"&gt;Get the latest WEBO Site SpeedUp&lt;/a&gt; or update it from internal interface.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-7298262998897709727?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Sg0VSlSIU2Q:tXSWx7hnYgs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Sg0VSlSIU2Q:tXSWx7hnYgs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Sg0VSlSIU2Q:tXSWx7hnYgs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=Sg0VSlSIU2Q:tXSWx7hnYgs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Sg0VSlSIU2Q:tXSWx7hnYgs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/Sg0VSlSIU2Q" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/Sg0VSlSIU2Q/webo-site-speedup-10-released.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_fnXjivAyka0/S3MBNHy8d0I/AAAAAAAAAuk/tM3BcArRszE/s72-c/www.webogroup.com.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/webo-site-speedup-10-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-8885243025397675592</guid><pubDate>Fri, 05 Feb 2010 20:05:00 +0000</pubDate><atom:updated>2010-02-05T23:12:13.257+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">webo site speedup</category><category domain="http://www.blogger.com/atom/ns#">efficiency</category><category domain="http://www.blogger.com/atom/ns#">charity fund</category><title>WEBO Software increases efficiency for the website of charity fund "Happy World"</title><description>&lt;p&gt;&lt;a href="http://www.web-optimizer.us/"&gt;WEBO Site SpeedUp&lt;/a&gt; increased efficiency of Russian charity fund - &lt;a href="http://www.hworld.ru/" rel="nofollow"&gt;"Happy World"&lt;/a&gt;.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;WEBO Site SpeedUp is a wholesome product to speed up a website. There can be not enough time to tune hosting environment, sometimes you need any solution out of the box - that's about us. And it's much easier to have only one module to optimize website performance than apply handy changes to CMS or web server.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;img style="float:right;margin:0 0 10px 10px;width:320px; height:266px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/S2x7Se3-UkI/AAAAAAAAAuc/En3hGNKzDGs/s320/logo.png" alt=""id="BLOGGER_PHOTO_ID_5434854407785042498"/&gt;Children's charity fund &lt;a href="http://www.hworld.ru/" rel="nofollow"&gt;"Happy World"&lt;/a&gt; (&lt;a href="http://www.hworld.ru/" rel="nofollow"&gt;www.hworld.ru&lt;/a&gt;) was created in 2005. The foundation raises funds and provides assistance to children with serious illnesses. Only the last year 199 children received the necessary treatment at $2.6 million. Wards fund are children from poor families. They want to get well and together with their peers go to kindergarten, to school. Strong, reliable adult hand help to cope with the seemingly insurmountable problems, - says about fund activity Olga, its coordinator.&lt;/p&gt;&lt;p&gt;Geography of the project is quite broad - it covers the whole Russia territory. For this reason site of a charity fund for the last few years changed 6 hosting providers, which were periodically unable to bear the load. And now the website uses a distributed hosting from Media Temple (virtual hosting on the "clouds") with Joomla! + Apache + MySQL.&lt;/p&gt;&lt;p&gt;Average load on www.hworld.ru is about 20k unique visitors a month. But during the fund-raising campaigns it can increase several times. Once a campaign to raise funds for the treatment of one of our wards began, - says Michael, a fund technical specialist - and there were more than 8 000 unique visitors per day. It was necessary to accelerate the website load time for visitors and fit a dedicated hoster power. Due to the rapid increase in attendance it urgently needed to optimize Joomla! CMS. There was chosen the product for the universal website acceleration to achieve this goal - WEBO Site SpeedUp.&lt;/p&gt;&lt;p&gt;As Michael says, after the installation WEBO Site SpeedUp reduced consumption of GPU (unit of measurement of power consumption which is used in Media Temple). This allowed to fit the provided power and not to overpay for a non-optimized site. There have been indications that the site was being loaded faster. Both the first and returned visits were speeded up with competent caching. Latter is extremely important for the fund - there are a lot of regular visitors, and it is a huge benefit for them - fast website load speed and website stability.&lt;/p&gt;&lt;p&gt;What is the most important thing - in the most tense moments for the host when a child's life hangs in the balance, and is going active raising for medical treatment, we are confident that the site is working as quickly as possible, saving the lives of children - concludes Michael.&lt;/p&gt;&lt;p&gt;Website load speed is connected not only with the robust website performance, but also with the confidence of visitors to the website information. For charity fund the last fact leads the priorities list. And if there is any possibility to increase confidence of visitors to the charity - you need to do it now, do not fish or cut bait. Because the child's life depends on the decision about donation.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-8885243025397675592?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PyspyweqCZc:fnpccGjJf_c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PyspyweqCZc:fnpccGjJf_c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PyspyweqCZc:fnpccGjJf_c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=PyspyweqCZc:fnpccGjJf_c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PyspyweqCZc:fnpccGjJf_c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/PyspyweqCZc" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/PyspyweqCZc/webo-software-increases-efficiency-for.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_fnXjivAyka0/S2x7Se3-UkI/AAAAAAAAAuc/En3hGNKzDGs/s72-c/logo.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/webo-software-increases-efficiency-for.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2194315377448146764</guid><pubDate>Mon, 01 Feb 2010 22:05:00 +0000</pubDate><atom:updated>2010-02-05T19:06:32.545+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">high perfrmance</category><category domain="http://www.blogger.com/atom/ns#">halfway to concord</category><category domain="http://www.blogger.com/atom/ns#">case study</category><title>High Performance for Contra Costa County</title><description>&lt;a href="http://www.web-optimizer.us/"&gt;WEBO Site SpeedUp&lt;/a&gt; was installed in &lt;a href="http://www.halfwaytoconcord.com/" rel="nofollow"&gt;Halfway to Concord&lt;/a&gt; website and significatnly increased its profitability.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&amp;quot;Traffic is seasonal based on local election cycles and holidays, but we can document a 20 per cent increase in visits since implementing WEBO Site SpeedUp.&amp;quot;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="float:right;margin:0 0 10px 10px;width:320px;height:278px" src="http://3.bp.blogspot.com/_fnXjivAyka0/S2dR-Dt9UDI/AAAAAAAAAuU/OAxqTBw6wQY/s320/logo.png" alt=""id="BLOGGER_PHOTO_ID_5433401602037600306"/&gt;Launched in early 2004, &lt;a href="http://www.halfwaytoconcord.com/" rel="nofollow"&gt;Halfway to Concord&lt;/a&gt; (&lt;a href="http://www.halfwaytoconcord.com/" rel="nofollow"&gt;www.halfwaytoconcord.com&lt;/a&gt;) is a blog covering news, politics, culture, business and various events for Contra Costa County. The site's hyper local focus has helped it become a leading independent online news source for East Bay of Northern California, USA.&lt;br /&gt;&lt;br /&gt;Halfway to Concord has more than 12k unique visitors monthly, most of them return to the website at least once a week. The website core is a WordPress installation on a Bluehost dedicated server. But even this didn't provide sufficient page load time which was more than 5 seconds for every page. And Bill Gram-Reefer, Halfway to Concord founder and editor, decided to improve user experience with speedier loading site to increase readership.&lt;br /&gt;&lt;br /&gt;Because of its hyper local focus and audience, Halfway to Concord cannot currently accelerate with CDN usage or any number of particular WordPress hacks. There must be a solution to provide maximum website performance. "We had slow loading pages", says Gram-Reefer. "Many visitors chose to move on before page load."&lt;br /&gt;&lt;br /&gt;CDN or other network distribution solutions didn't fit because the website is located very closely to the vast majority of its visitors and server response time is not crucial. But a complete set of performance optimization practices - including file compression to multiple host usage and unobtrusive logic implementation - provided by WEBO Site SpeedUp resolved all issues.&lt;br /&gt;&lt;br /&gt;"While experiencing some expected bumps in the road during implementation, WEBO Software tech support was helpful and gracious, eager to help customers instead of berate them for asking questions", Gram-Reefer adds. Through close collaboration, Halfway to Concord was accelerated approximately 2.8 times, especially for return visitors. And they were grateful!&lt;br /&gt;&lt;br /&gt;Finally YSlow was improved from 56 to 90. This brought about 20 per cent increase in visits. With a few simple actions automatically handled with WEBO Site SpeedUp, the website became faster and could handle more advertisement and visitors.&lt;br /&gt;&lt;br /&gt;Only a full range of website load speed optimization methods can help such local websites or small blogs to provide new levels of user experience for their readers. And this can be easily achieved with very little effort.&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2194315377448146764?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=lO2VekJNM7s:h_jM0FIbxoU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=lO2VekJNM7s:h_jM0FIbxoU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=lO2VekJNM7s:h_jM0FIbxoU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=lO2VekJNM7s:h_jM0FIbxoU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=lO2VekJNM7s:h_jM0FIbxoU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/lO2VekJNM7s" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/lO2VekJNM7s/high-performance-for-contra-costra.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_fnXjivAyka0/S2dR-Dt9UDI/AAAAAAAAAuU/OAxqTBw6wQY/s72-c/logo.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/02/high-performance-for-contra-costra.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-13293255145216612</guid><pubDate>Tue, 26 Jan 2010 06:38:00 +0000</pubDate><atom:updated>2010-01-26T09:50:09.084+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">CSS Sprites</category><category domain="http://www.blogger.com/atom/ns#">gzip</category><category domain="http://www.blogger.com/atom/ns#">release</category><category domain="http://www.blogger.com/atom/ns#">smush.it</category><category domain="http://www.blogger.com/atom/ns#">ui</category><category domain="http://www.blogger.com/atom/ns#">0.9.7</category><category domain="http://www.blogger.com/atom/ns#">CSS Tidy</category><title>WEBO Site SpeedUp v0.9.7</title><description>&lt;p&gt;We are moving to completely stable and featured v1.0 and here is one more update on this way. In the version 0.9.7:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Improved UI.&lt;/strong&gt; All icons were recreated and combined to a few of CSS Sprites (via &lt;a href="http://sprites.in/"&gt;Auto Sprites&lt;/a&gt; tool). Now the whole interface loads faster and there are less files in package (update is going also faster).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option to exclude WEBO Site SpeedUp logic.&lt;/strong&gt; You can define in &lt;code&gt;System Status -&amp;gt; Settings&lt;/code&gt; a number of parts of URL to exclude from processing - and they won't be accelerated with WEBO Site SpeedUp. This field has the same syntax as for Server Side Cache exclude option.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved smush.it callbacks.&lt;/strong&gt; Reviwed some more issues with bunch image optimization of a huge amounts of data. Callbacks from smush.it tuned a bit.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved static gzip tool.&lt;/strong&gt; Now it can use &lt;code&gt;gzip&lt;/code&gt; console tool if it's allowed to be executed from PHP.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved CSS Sprites logic.&lt;/strong&gt; Fixed a minor issue with ancesting seletroes lookup and improved CSS Tidy merging qualities.&lt;/li&gt;&lt;li&gt;Improved gzip on CGI enviroments for CSS/JavaScript files.&lt;/li&gt;&lt;li&gt;Fixed minor compatibility issues.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.web-optimizer.us/web-optimizer/download.html"&gt;Download new version from here&lt;/a&gt; or just update it from your product interface.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-13293255145216612?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=GHrNHfgJTac:zXsO5HAsjnU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=GHrNHfgJTac:zXsO5HAsjnU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=GHrNHfgJTac:zXsO5HAsjnU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=GHrNHfgJTac:zXsO5HAsjnU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=GHrNHfgJTac:zXsO5HAsjnU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/GHrNHfgJTac" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/GHrNHfgJTac/webo-site-speedup-v097.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/01/webo-site-speedup-v097.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2973847406721923635</guid><pubDate>Tue, 19 Jan 2010 21:46:00 +0000</pubDate><atom:updated>2010-01-20T00:49:01.984+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">0.9.6</category><category domain="http://www.blogger.com/atom/ns#">rollback</category><category domain="http://www.blogger.com/atom/ns#">release</category><category domain="http://www.blogger.com/atom/ns#">stability</category><title>WEBO Site SpeedUp v0.9.6</title><description>&lt;p&gt;One more intermediate version before stable 1.0 release. We fixed a lor of UI bugs (makeup / client side logic) and improved general stability.&lt;/p&gt;&lt;p&gt;Changes log:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improved general UI stability / fixed minor issues.&lt;/li&gt;&lt;li&gt;Improved Apache modules detection / .htaccess changes.&lt;/li&gt;&lt;li&gt;Added rollback to stable feature.&lt;/li&gt;&lt;li&gt;Fixed issue with rewriting current JavaScript / CSS files with wo.static.php equivalents.&lt;/li&gt;&lt;li&gt;PHP Fusion (7.0.5) added to supported systems.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now there is the complete set of native modules (WordPress / Joomla / Drupal / Bitrix).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.web-optimizer.us/web-optimizer/download.html"&gt;Download the latest WEBO Site SpeedUp&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2973847406721923635?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=K2_Ym3HVQLg:7t4DArKrXlg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=K2_Ym3HVQLg:7t4DArKrXlg:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=K2_Ym3HVQLg:7t4DArKrXlg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=K2_Ym3HVQLg:7t4DArKrXlg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=K2_Ym3HVQLg:7t4DArKrXlg:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/K2_Ym3HVQLg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/K2_Ym3HVQLg/webo-site-speedup-v096.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/01/webo-site-speedup-v096.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2225556079665691112</guid><pubDate>Tue, 12 Jan 2010 02:03:00 +0000</pubDate><atom:updated>2010-02-13T05:10:42.066+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">punypng</category><category domain="http://www.blogger.com/atom/ns#">webo site speedup</category><category domain="http://www.blogger.com/atom/ns#">0.9.5</category><category domain="http://www.blogger.com/atom/ns#">beta</category><category domain="http://www.blogger.com/atom/ns#">ui</category><title>WEBO Site SpeedUp v0.9.5</title><description>&lt;p&gt;Today we have released the first (official) version of new WEBO Site SpeedUp. Its general state is beta (release candidate), but all unstable issues are related to UI only. Main core stability is improved (since version 0.6.7) and some new features were added.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.web-optimizer.us/web-optimizer/download.html"&gt;Get the latest version&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fnXjivAyka0/Szwh3Trf88I/AAAAAAAAAn0/Km-y7mgdBF8/s1600-h/2009-12-31.dashboard.public.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://3.bp.blogspot.com/_fnXjivAyka0/Szwh3Trf88I/AAAAAAAAAn0/Km-y7mgdBF8/s320/2009-12-31.dashboard.public.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5421245285506479042" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Before public 1.0 release we are going to review and improve current user interface (in terms of usability and response times). Also it seems support for punypng optimization will be added to 1.0 (since they have API get up).&lt;/p&gt;&lt;p&gt;Feel free to &lt;a href="http://code.google.com/p/web-optimizator/issues/list"&gt;submit any bugs here&lt;/a&gt;, we appreciate your help in improving this awesome software package.&lt;/p&gt;&lt;p&gt;You can also check public &lt;a href="http://www.web-optimizer.us/web-optimizer/demo.html"&gt;demo of WEBO Site SpeedUp&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2225556079665691112?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hmGWaqZqGGA:kKNU-FntmAc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hmGWaqZqGGA:kKNU-FntmAc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hmGWaqZqGGA:kKNU-FntmAc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=hmGWaqZqGGA:kKNU-FntmAc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=hmGWaqZqGGA:kKNU-FntmAc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/hmGWaqZqGGA" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/hmGWaqZqGGA/webo-site-speedup-v095.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_fnXjivAyka0/Szwh3Trf88I/AAAAAAAAAn0/Km-y7mgdBF8/s72-c/2009-12-31.dashboard.public.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/01/webo-site-speedup-v095.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-857231743394338914</guid><pubDate>Thu, 07 Jan 2010 21:15:00 +0000</pubDate><atom:updated>2010-01-12T05:11:32.710+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">upgrade</category><category domain="http://www.blogger.com/atom/ns#">release</category><category domain="http://www.blogger.com/atom/ns#">update</category><category domain="http://www.blogger.com/atom/ns#">beta</category><category domain="http://www.blogger.com/atom/ns#">known issues</category><title>WEBO Site SpeedUp public beta</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fnXjivAyka0/S0ZPuHlEbDI/AAAAAAAAAtc/vpXPM3gitlo/s1600-h/2010-01-08.dashboard.joomla.png"&gt;&lt;img style="float:left; margin:30px 10px 10px 0;cursor:pointer; cursor:hand;width: 261px; height: 320px;" src="http://1.bp.blogspot.com/_fnXjivAyka0/S0ZPuHlEbDI/AAAAAAAAAtc/vpXPM3gitlo/s320/2010-01-08.dashboard.joomla.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5424110454941445170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Here we are with the hottest performance optimization software. We are still working to pplish it but you can enjoy this stuff under you favorite CMS. Here are WEBO Site SpeedUp 0.9.5b download links:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.5.zip" rel="nofollow"&gt;Standalone package&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.5.joomla15.zip" rel="nofollow"&gt;Joomla! 1.5 installer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.5.wordpress.zip" rel="nofollow"&gt;WordPress installer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.5.drupal6.zip" rel="nofollow"&gt;Drupal installer&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Installation is the same as usual - just copy plugin in WordPress or Drupal to general plugin directory and activate it via administrative interface. Then go to Settings page and play with WEBO Site SpeedUp interface.&lt;/p&gt;&lt;p&gt;For Joomla! 1.5 you just need to install appropriate package (via Extensions installer) and go to the component's page.&lt;/p&gt;&lt;h3&gt;Upgrade procedure&lt;/h3&gt;&lt;p&gt;If you are using old version and want to upgrade to the newest one -- please store file &lt;code&gt;web-optimizer/config.webo.php&lt;/code&gt; somewhere (just as a backup), than upgrade your package to this beta version. Usually you need to update it once more - from WEBO Site SpeedUp interface (Update is located in System Status -&gt; Updates -&gt; Show me beta versions). Then configuration file will be altered to fit new structure. If you have any troubles with upgrading - &lt;a href="http://www.web-optimizer.us/about/contacts.html"&gt;please contact us&lt;/a&gt;. It seems you should have at least backed up configuration file to perform restoration.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Joomla! users please note&lt;/strong&gt; that there is no standard way to upgrade current Web Optimizer plugin to WEBO Site SpeedUp component + plugin. So please somehow save settings from plugin interface / database. You will be able to set them back (WEBO Site SpeedUp by default is in a debug mode, website won't be hurted, cache files will be saved).&lt;/p&gt;&lt;h3&gt;Known issues&lt;/h3&gt;&lt;p&gt;There a few minor bugs we are still working on:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Not all blocks are loaded at once on Control Panel (home) page in IE.&lt;/li&gt;&lt;li&gt;Interface doesn't look perfect under IE6/7.&lt;/li&gt;&lt;li&gt;Optimization results may be counted incorrectly sometimes (just not countered properly).&lt;/li&gt;&lt;li&gt;Some pages / UI elements will be changed a bit to make overall design better.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Complete ist of WEBO Site SpeedUp / Web Optimizer packages also is located here: &lt;a href="http://code.google.com/p/web-optimizator/downloads/list"&gt;http://code.google.com/p/web-optimizator/downloads/list&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-857231743394338914?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=XzGDZv4fJHQ:Yrhzlz3k3A4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=XzGDZv4fJHQ:Yrhzlz3k3A4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=XzGDZv4fJHQ:Yrhzlz3k3A4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=XzGDZv4fJHQ:Yrhzlz3k3A4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=XzGDZv4fJHQ:Yrhzlz3k3A4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/XzGDZv4fJHQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/XzGDZv4fJHQ/webo-site-speedup-public-beta.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_fnXjivAyka0/S0ZPuHlEbDI/AAAAAAAAAtc/vpXPM3gitlo/s72-c/2010-01-08.dashboard.joomla.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/01/webo-site-speedup-public-beta.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-6658617110133086164</guid><pubDate>Wed, 06 Jan 2010 13:37:00 +0000</pubDate><atom:updated>2010-01-06T16:49:02.296+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">performance</category><category domain="http://www.blogger.com/atom/ns#">wordpress</category><category domain="http://www.blogger.com/atom/ns#">measurement</category><category domain="http://www.blogger.com/atom/ns#">speedingupwebsite.com</category><category domain="http://www.blogger.com/atom/ns#">testing</category><title>WordPress Performance: Step-by-Step Every Day</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/S0SUX2UIQ4I/AAAAAAAAAn8/iajPboJTvrs/s1600-h/speedingupwebste.png"&gt;&lt;img style="float:left; margin:40px 10px 20px 0;cursor:pointer; cursor:hand;width: 320px; height: 236px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/S0SUX2UIQ4I/AAAAAAAAAn8/iajPboJTvrs/s320/speedingupwebste.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5423622988698764162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;We are going to completely review all sides of WordPress-based blog performance with a set of articles. For this purpose we created a simple blog on a shared hosting &amp;mdash; &lt;a href="http://www.speedingupwebsite.com/" rel="nofollow"&gt;www.speedingupwebsite.com&lt;/a&gt; &amp;mdash; and every day there will be new articles about WordPress performance (both server and client sides).&lt;/p&gt;&lt;p&gt;We will review all possible plugins variations (on this website) and give you complete information how you can speed up your WordPress blog. No more '10/20/30/40+ tips about WordPress speeding up'. All information in one place. All failures and successes and all detailed manuals right here. And all of them will tested on a real website.&lt;/p&gt;&lt;p&gt;Keep tuned: &lt;a href="http://www.speedingupwebsite.com/"&gt;www.speedingupwebsite.com&lt;/a&gt; or &lt;a href="http://feeds.feedburner.com/SpeedingUpWebsite" rel="nofollow"&gt;via RSS&lt;/a&gt;. If you have any ideas to cover in tests and comparisons - please share them in comments.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-6658617110133086164?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Zr9mZu0muQQ:9-JRvrl7FKU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Zr9mZu0muQQ:9-JRvrl7FKU:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Zr9mZu0muQQ:9-JRvrl7FKU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=Zr9mZu0muQQ:9-JRvrl7FKU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=Zr9mZu0muQQ:9-JRvrl7FKU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/Zr9mZu0muQQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/Zr9mZu0muQQ/wordpress-performance-step-by-step.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_fnXjivAyka0/S0SUX2UIQ4I/AAAAAAAAAn8/iajPboJTvrs/s72-c/speedingupwebste.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2010/01/wordpress-performance-step-by-step.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2541703486219604915</guid><pubDate>Thu, 31 Dec 2009 03:49:00 +0000</pubDate><atom:updated>2009-12-31T07:13:26.468+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">configuration</category><category domain="http://www.blogger.com/atom/ns#">webo site speedup</category><title>WEBO Site SpeedUp - configuration sets &amp; debugging</title><description>&lt;p&gt;In the coming new version of WEBO Site SpeedUp we prepared a lot of technical innovations and UI enhancements. One of them is sets of configuration - now you can simply choose one of the predefined settings' sets, or create your own based on one of them.&lt;/p&gt;&lt;h3&gt;Configuration sets&lt;/h3&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fnXjivAyka0/Szwf9rifK2I/AAAAAAAAAns/e3A4hRRkjVI/s1600-h/2009-12-31.options.public.2.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://4.bp.blogspot.com/_fnXjivAyka0/Szwf9rifK2I/AAAAAAAAAns/e3A4hRRkjVI/s320/2009-12-31.options.public.2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5421243195967089506" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;As you can see from the upper screenshot there can be unlimited sets of configuration with 3 predefined - safe (which is completely safe for all environments, but doesn't provide a lot of acceleration), optimal (balanced one), and extreme (which should be re-configurated before it can be used for a live website).&lt;/p&gt;&lt;h3&gt;Application debugging&lt;/h3&gt;&lt;p&gt;We new concept of debug / live mode for WEBO Site SpeedUp application you can simply tune / debug current configuration set and save it. There a lot of options to configure, so basic process can be a bit hard for newbies.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fnXjivAyka0/SzwfxiJ-aGI/AAAAAAAAAnk/ieR3s7To-oA/s1600-h/2009-12-31.options.public.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 304px; height: 320px;" src="http://3.bp.blogspot.com/_fnXjivAyka0/SzwfxiJ-aGI/AAAAAAAAAnk/ieR3s7To-oA/s320/2009-12-31.options.public.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5421242987289929826" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;But we prepared a lot of hints through the user interface - they should help you to speedup your website with WEBO Site SpeedUp.&lt;/p&gt;&lt;h3&gt;Configuration export / import&lt;/h3&gt;&lt;p&gt;After basic configuration is ready you can prepare one-two more configuration sets (if you have time, or just on a test website). And copy them to the live website. After this you can apply any of available sets 'on fly' painless (also in debug mode to be re-sure that all is OK with your website).&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fnXjivAyka0/Szwh3Trf88I/AAAAAAAAAn0/Km-y7mgdBF8/s1600-h/2009-12-31.dashboard.public.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 258px;" src="http://3.bp.blogspot.com/_fnXjivAyka0/Szwh3Trf88I/AAAAAAAAAn0/Km-y7mgdBF8/s320/2009-12-31.dashboard.public.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5421245285506479042" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;With new dashboard cache refresh and debugging application is much easier. Your just need to press 'Enable' or 'Refresh cache' - all the other actions wll be performed automatically.&lt;/p&gt;&lt;h3&gt;Get WEBO Site SpeedUp&lt;/h3&gt;&lt;p&gt;All these options are avilable in the latest alpha version - &lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip" rel="nofollow"&gt;http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip&lt;/a&gt;. It already has update-to-beta procedure (you just need to go to "System Status -&gt; Updates" and check 'Show information about beta versions'. After this just press 'Install' (below current beta version change log) - all files will be downloaded from beta repository and applied automatically.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2541703486219604915?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=jecSGlhMGGM:OKBsduvtz0k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=jecSGlhMGGM:OKBsduvtz0k:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=jecSGlhMGGM:OKBsduvtz0k:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=jecSGlhMGGM:OKBsduvtz0k:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=jecSGlhMGGM:OKBsduvtz0k:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/jecSGlhMGGM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/jecSGlhMGGM/webo-site-speedup-configuration-sets.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fnXjivAyka0/Szwf9rifK2I/AAAAAAAAAns/e3A4hRRkjVI/s72-c/2009-12-31.options.public.2.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/webo-site-speedup-configuration-sets.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-5624664547779588106</guid><pubDate>Wed, 23 Dec 2009 12:11:00 +0000</pubDate><atom:updated>2009-12-30T01:07:16.887+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">xmas</category><category domain="http://www.blogger.com/atom/ns#">webo site speedup</category><category domain="http://www.blogger.com/atom/ns#">alpha version</category><title>WEBO Site SpeedUp alpha version</title><description>&lt;p&gt;Actually in Xmas eve we prepared alpha preview of WEBO Site SpeedUp (formerly Web Optimizer). You can get it from official repository here (link updated to alpha2): &lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip" rel="nofollow"&gt;http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip&lt;/a&gt;. Main feature is new interface and a few more tools + improved overall stability. Some screenshots:&lt;/p&gt;&lt;h3&gt;Control Panel&lt;/h3&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/SzIJm2heZ_I/AAAAAAAAAmw/1_pXMcnhDiQ/s1600-h/2009-12-23.01.en.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/SzIJm2heZ_I/AAAAAAAAAmw/1_pXMcnhDiQ/s320/2009-12-23.01.en.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418403864755726322" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here are all important blocks which should help you to increase load speed of your website - Settings overview, System status, Cache, Load speed, optimization tools, Updates, News, etc.&lt;/p&gt;&lt;h3&gt;Cache&lt;/h3&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/SzIKOkoXdCI/AAAAAAAAAnA/6Spgn6ZjnZY/s1600-h/2009-12-23.02.en.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/SzIKOkoXdCI/AAAAAAAAAnA/6Spgn6ZjnZY/s320/2009-12-23.02.en.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418404547147559970" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;On cache screen you can refresh overall cache and get all information about actual files.&lt;/p&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/SzIKkulXteI/AAAAAAAAAnI/HJos7qWmGaA/s1600-h/2009-12-23.03.en.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://2.bp.blogspot.com/_fnXjivAyka0/SzIKkulXteI/AAAAAAAAAnI/HJos7qWmGaA/s320/2009-12-23.03.en.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418404927776470498" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;On cache reload you see all performed actions.&lt;/p&gt;&lt;h3&gt;System status&lt;/h3&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fnXjivAyka0/SzIKy_i5z3I/AAAAAAAAAnQ/Bqw3LbPs-2Y/s1600-h/2009-12-23.04.en.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 112px;" src="http://1.bp.blogspot.com/_fnXjivAyka0/SzIKy_i5z3I/AAAAAAAAAnQ/Bqw3LbPs-2Y/s320/2009-12-23.04.en.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418405172847693682" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Here are listed all warnings / troubles with server environment, also some useful information about application.&lt;/p&gt;&lt;h3&gt;Optimization tools&lt;/h3&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fnXjivAyka0/SzILBsHdf_I/AAAAAAAAAnY/JxBE0hnz3EU/s1600-h/2009-12-23.05.en.png"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 198px;" src="http://4.bp.blogspot.com/_fnXjivAyka0/SzILBsHdf_I/AAAAAAAAAnY/JxBE0hnz3EU/s320/2009-12-23.05.en.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5418405425330356210" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Optimization tools (static gzip and image optimization) allow you to compress your files in interactive mode. Image optimization will be performed via smush.it / punypng.com services (in alpha only former is available).&lt;/p&gt;&lt;p&gt;Get alpha2 version &lt;a href="http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip" rel="nofollow"&gt;http://code.google.com/p/web-optimizator/downloads/detail?name=webo.site.speedup.v0.9.1b.zip&lt;/a&gt; and leave your feedback.&lt;/p&gt;&lt;p&gt;Any issues can be also submitted to &lt;a href="http://code.google.com/p/web-optimizator/issues/list" rel="nofollow"&gt;issue tracker&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-5624664547779588106?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9s13aMxjNzo:qSgBMO_-2jQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9s13aMxjNzo:qSgBMO_-2jQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9s13aMxjNzo:qSgBMO_-2jQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=9s13aMxjNzo:qSgBMO_-2jQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9s13aMxjNzo:qSgBMO_-2jQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/9s13aMxjNzo" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/9s13aMxjNzo/webo-site-speedup-alpha-version.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_fnXjivAyka0/SzIJm2heZ_I/AAAAAAAAAmw/1_pXMcnhDiQ/s72-c/2009-12-23.01.en.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/webo-site-speedup-alpha-version.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-8018697493397493858</guid><pubDate>Wed, 16 Dec 2009 01:51:00 +0000</pubDate><atom:updated>2009-12-16T05:40:23.719+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">multiple hosts</category><category domain="http://www.blogger.com/atom/ns#">cdn</category><category domain="http://www.blogger.com/atom/ns#">maxcdn</category><title>Web Optimizer for CDN</title><description>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fnXjivAyka0/SyhIJsDbHHI/AAAAAAAAAmo/k-hr6QSS_bI/s1600-h/cdn.png"&gt;&lt;img style="float:right;margin:0 0 10px 10px;cursor:pointer;cursor:hand;width:320px;height:160px;border:0" src="http://4.bp.blogspot.com/_fnXjivAyka0/SyhIJsDbHHI/AAAAAAAAAmo/k-hr6QSS_bI/s320/cdn.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5415657883194563698" /&gt;&lt;/a&gt;After a couple of questions (how Web Optimizer can be used to move all assets to CDN) we prepared a quick quide to let you use Web Optimizer with your CDN easily.&lt;/p&gt;&lt;p&gt;So step-by-step&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First you need to have CDN host setuped as a mirror for your website. I.e. if you have an image &lt;code&gt;www.site.com/img/image.png&lt;/code&gt; you must have &lt;code&gt;cdn.site.com/img/image.png&lt;/code&gt; (right now Web Optimizer correctly supports only 1 subdomain for CDN - cdn.yourwebsite.com).&lt;/li&gt;&lt;li&gt;After this initial CDN setup you new to set only 2 options in Web Optimizer configuration. First if 'host' (the very first screen of settings, near license key field). Set it to &lt;code&gt;cdn.site.com&lt;/code&gt;. This turns on CDN usage for CSS / JS merged assets.&lt;/li&gt;&lt;li&gt;Then you should enable multiple hosts. For this purpose in the group "Multiple hosts" just enable their usage + disable option "Check hosts' availability automatically" (this seems don't work properly in case of CDN). And enter 'cdn' (without quotes) to the field "Allowed hosts, i.e. img i1 i2".&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;That's all! So you will have the following options:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;Website host (to include before static resources), i.e. site.com -&amp;gt;&lt;br /&gt;    cdn.yoursite.com&lt;br /&gt;Enable multiple hosts -&amp;gt; Yes&lt;br /&gt;Check hosts' availability automatically -&amp;gt; No&lt;br /&gt;Allowed hosts, i.e. img i1 i2 -&amp;gt; cdn&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;So this will turn on CDN usage for your website fast and easily.&lt;/p&gt;&lt;p&gt;A good example of CDN mplementation is &lt;a href="http://www.maxcdn.com/" rel="nofollow"&gt;www.maxcdn.com&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-8018697493397493858?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9gOK7cX3rqg:CTMqwcZEh4E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9gOK7cX3rqg:CTMqwcZEh4E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9gOK7cX3rqg:CTMqwcZEh4E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=9gOK7cX3rqg:CTMqwcZEh4E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=9gOK7cX3rqg:CTMqwcZEh4E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/9gOK7cX3rqg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/9gOK7cX3rqg/web-optimizer-for-cdn.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fnXjivAyka0/SyhIJsDbHHI/AAAAAAAAAmo/k-hr6QSS_bI/s72-c/cdn.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/web-optimizer-for-cdn.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-3627017211800064713</guid><pubDate>Fri, 11 Dec 2009 09:12:00 +0000</pubDate><atom:updated>2009-12-11T12:20:06.499+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">plugins</category><category domain="http://www.blogger.com/atom/ns#">bitrix</category><title>Web Optimizer in Bitrix</title><description>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_fnXjivAyka0/SyINnd3I61I/AAAAAAAAAmI/UaIponn7cKU/s1600-h/webo.optimizer.bitrix.en.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer;cursor:hand;width:268px;height:320px;border:0" src="http://2.bp.blogspot.com/_fnXjivAyka0/SyINnd3I61I/AAAAAAAAAmI/UaIponn7cKU/s320/webo.optimizer.bitrix.en.png" border="0" alt="Web Optimizer in Bitrix" title="Web Optimizer in Bitrix" id="BLOGGER_PHOTO_ID_5413904673734716242" /&gt;&lt;/a&gt;This night Web Optimizer has been added to official Bitrix repository (&lt;a href="http://www.bitrixsoft.com/"&gt;Bitrix&lt;/a&gt; provides large varierty of solutions to create corporate websites / intranet systems / e-stores). It seems now you can install for any Bitrix product (with the same license policy as for the other plugins / standalone Web Optimizer version - Community, Lite, and Premium Editions).&lt;/p&gt;&lt;p&gt;Also Web Optimizer is listed on &lt;a href="wordpress.org/extend/plugins/web-optimizer/" rel="nofollow"&gt;Wordpress&lt;/a&gt; and &lt;a href="http://extensions.joomla.org/extensions/site-management/cache/10152" rel="nofollow"&gt;Joomla! Extensions Directory&lt;/a&gt;. Feel free to leave your comment / vote for us there.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-3627017211800064713?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=u-ps8EEJqAE:8DCDz_waSvI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=u-ps8EEJqAE:8DCDz_waSvI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=u-ps8EEJqAE:8DCDz_waSvI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=u-ps8EEJqAE:8DCDz_waSvI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=u-ps8EEJqAE:8DCDz_waSvI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/u-ps8EEJqAE" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/u-ps8EEJqAE/web-optimizer-in-bitrix.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_fnXjivAyka0/SyINnd3I61I/AAAAAAAAAmI/UaIponn7cKU/s72-c/webo.optimizer.bitrix.en.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/web-optimizer-in-bitrix.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-3794289567651111280</guid><pubDate>Wed, 09 Dec 2009 20:30:00 +0000</pubDate><atom:updated>2009-12-09T23:36:05.855+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">discount</category><category domain="http://www.blogger.com/atom/ns#">xmas</category><title>Rocket Boost your site</title><description>&lt;p&gt;&lt;a href="http://www.web-optimizer.us/web-optimizer/buy-now.html"&gt;&lt;img src="http://web-optimizator.googlecode.com/svn/i/boxes/wwo.xmas.en.jpg" alt="Web Optimizer Premium Edition" align="left" style="border:0;margin:0 10px 10px 0"/&gt;&lt;/a&gt;To make your website ready for Xmas shopping season we offer 20% discount for all editions of Web Optimizer.&lt;/p&gt;&lt;p&gt;Simply use promotional code &lt;strong&gt;webo_nwy20092010&lt;/strong&gt; and get 20% off. Site optimization was never that easy!&lt;/p&gt;&lt;p&gt;Also you can order basic or advanced installation &amp;mdash; our engineers will help to make your website the fastest one.&lt;/p&gt;&lt;p&gt;Promotion will end at December 31, 2009.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-3794289567651111280?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=NNkDfie7ivQ:cf6f9q-WdPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=NNkDfie7ivQ:cf6f9q-WdPY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=NNkDfie7ivQ:cf6f9q-WdPY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=NNkDfie7ivQ:cf6f9q-WdPY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=NNkDfie7ivQ:cf6f9q-WdPY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/NNkDfie7ivQ" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/NNkDfie7ivQ/rocket-boost-your-site.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/rocket-boost-your-site.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-391357120212977634</guid><pubDate>Thu, 03 Dec 2009 15:26:00 +0000</pubDate><atom:updated>2009-12-03T20:19:32.957+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">etag</category><category domain="http://www.blogger.com/atom/ns#">conditional caching</category><category domain="http://www.blogger.com/atom/ns#">last-modified</category><category domain="http://www.blogger.com/atom/ns#">cache</category><title>Conditional caching: several approaches</title><description>&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_fnXjivAyka0/SxfyiolkJqI/AAAAAAAAAlc/TYfVe9Lepj8/s1600-h/cache.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width:320px;height:192px;border:0" src="http://4.bp.blogspot.com/_fnXjivAyka0/SxfyiolkJqI/AAAAAAAAAlc/TYfVe9Lepj8/s320/cache.png" title="Cache integrity" alt="Cache integrity" id="BLOGGER_PHOTO_ID_5411060154133391010" /&gt;&lt;/a&gt;Last month we talked about various &lt;a href="/2009/11/several-layers-of-caching.html"&gt;caching layers last month&lt;/a&gt;. The latest 'line of defense' is conditional caching.&lt;/p&gt;&lt;h3&gt;What is Conditional Caching?&lt;/h3&gt;&lt;p&gt;Browser usually has a lot of resources in its local cache. Some of them can be expired but browser can check if they can be used once more. So there is a way (frankly speaking two different ways) to check if a resource can be used once more.&lt;/p&gt;&lt;p&gt;First we can use &lt;code&gt;Last-Modified&lt;/code&gt; (specified in HTTP/1.0) and its pair &amp;mdash; &lt;code&gt;If-Modified-Since&lt;/code&gt;. Server sends header &lt;code&gt;Last-Modified&lt;/code&gt; with the resource modification date. Browser can request if resource was changed since the last request and send this date back with &lt;code&gt;If-Modified-Since&lt;/code&gt; header. If there were no modifications server responses with 304-answer.&lt;/p&gt;&lt;p&gt;There is almost the same situation with &lt;code&gt;ETag&lt;/code&gt; and &lt;code&gt;If-None-Match&lt;/code&gt; (or &lt;code&gt;If-Match&lt;/code&gt;) headers. Expect the only thing that Entity Tag can be any string (date, set of numbers, file name, etc). So this allows you to define it any way. But &lt;code&gt;ETag&lt;/code&gt; belongs to HTTP/1.1 specification.&lt;/p&gt;&lt;h3&gt;Benefits&lt;/h3&gt;&lt;p&gt;With 304-answers server actually doesn't send any content to browser so you save transfer time for these resources.&lt;/p&gt;&lt;p&gt;If can be also useful for a kind of dynamic content which can't be cached for a long time but can't be changed often. So browser re-requests such content (if cache is expired) but receives answer 'Not modified'.&lt;/p&gt;&lt;p&gt;Also if helps with pages' reload - when visitor presses &lt;code&gt;Ctrl+R&lt;/code&gt; in his/her browser the latter must request from the server all resources. So such kind of refresh can be made faster with conditional caching.&lt;/p&gt;&lt;h3&gt;Practical examples&lt;/h3&gt;&lt;p&gt;Apache server usually sends &lt;code&gt;ETag&lt;/code&gt; among &lt;code&gt;Last-Modified&lt;/code&gt;. There is &lt;code&gt;mod_headers&lt;/code&gt; that is responsible for such behavior (and it seems for 304-answers). You can add &lt;code&gt;ETag&lt;/code&gt; header (which indicates file modification time only) this way:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;FileETag MTime&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;You can also unset each of these headers:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;Header unset Last-Modified&lt;br /&gt;Header unset ETag&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;With PHP you can send the equivalent of these headers by:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;@date_default_timezone_set(@date_default_timezone_get());&lt;br /&gt;header("Last-Modified: " . gmdate("D, d M Y H:i:s", $time));&lt;br /&gt;header("ETag: \"" . md5(gmdate("D, d M Y H:i:s", $time)) . "\"");&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;If you want to emulate 'classic' ETag which Apache server sends by default you need to use:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;header("ETag: \"" . dec2hex(@fileinode($filename)) . '-' .&lt;br /&gt;    dec2hex(@filesize($filename)) . '-' . dec2hex($mtime) . "\"");&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;where &lt;code&gt;dec2hec&lt;/code&gt; is a helper to convert numbers for correct conversion numbers from decimal to heximal.&lt;/p&gt;&lt;h3&gt;Issues&lt;/h3&gt;&lt;p&gt;First of all you need to send different conditional headers with compressed and not compressed content. Generic approach here is to add '-gzip' to the end of the &lt;code&gt;ETag&lt;/code&gt; (there is nothing to do with &lt;code&gt;Last-Modified&lt;/code&gt; so it's a bit less usable).&lt;/p&gt;&lt;p&gt;Then you need to make such headers equal through all servers you use to server content. Because common ETag header in Apache includes information about inode (server-related, but not actually file-related), so it must be eliminated or replaced.&lt;/p&gt;&lt;p&gt;Then there is information (not approved yet) about &lt;a href="http://www.askapache.com/htaccess/apache-speed-last-modified.html" rel="nofollow"&gt;excessive requests from browsers&lt;/a&gt; with conditional headers. Please be careful with this.&lt;/p&gt;&lt;p&gt;For static resources &lt;a href="http://www.web-optimizer.us/"&gt;Web Optimizer&lt;/a&gt; unsets &lt;code&gt;Last-Modified&lt;/code&gt; header for all static resources and sets &lt;code&gt;ETag&lt;/code&gt; based on modification time. For dynamic ones it (if HTML documents are cached) sets ETag based on content hash and Last-Modified with &lt;a href="/2009/10/php-proxy-for-static-assets.html"&gt;static PHP proxy&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-391357120212977634?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=ioZjir4rdb0:PnlwVuyekYs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=ioZjir4rdb0:PnlwVuyekYs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=ioZjir4rdb0:PnlwVuyekYs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=ioZjir4rdb0:PnlwVuyekYs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=ioZjir4rdb0:PnlwVuyekYs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/ioZjir4rdb0" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/ioZjir4rdb0/conditional-caching-several-approaches.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_fnXjivAyka0/SxfyiolkJqI/AAAAAAAAAlc/TYfVe9Lepj8/s72-c/cache.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/conditional-caching-several-approaches.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-5770511626164400651</guid><pubDate>Mon, 30 Nov 2009 23:06:00 +0000</pubDate><atom:updated>2009-12-01T02:16:48.185+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">stable</category><category domain="http://www.blogger.com/atom/ns#">drupal</category><category domain="http://www.blogger.com/atom/ns#">release</category><category domain="http://www.blogger.com/atom/ns#">bitrix</category><category domain="http://www.blogger.com/atom/ns#">beta</category><title>Web Optimizer 0.6.7 released</title><description>&lt;p&gt;Last 0.xx version before major 1.0 release has been published today - 0.6.7 aka 'frost'. We tuned a lot of minor stuff and improved a number of parts of application.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Added delayed load for iframes.&lt;/strong&gt; Now you can exclude iframes (i.e. ads) from general waterfall of website load (to prevent their blocking nature) &amp;mdash; the same way as for Unobtrusive logic.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved behavior for 'Uniform cache files' option.&lt;/strong&gt; Now conditional comments are striped for all browsrs except IE and HTML cache files relate to current set of options.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Enabled optimization for cached content in Drupal.&lt;/strong&gt; There was a bug in Drupal native module with not optimized content on caching. Now Web Optimizer works in any case, it doesn't matter have you cached your website on server side or not.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Separated Upgrade / Install to stable / beta branches.&lt;/strong&gt; One more big change before 1.0 release &amp;mdash; now you can upgrade either to the latest stable branch, or to the latest beta (the most featured) version on the product. And switch between them.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added Web Optimizer module for Bitrix.&lt;/strong&gt; &lt;a href="http://www.bitrixsoft.com/" rel="nofollow"&gt;Bitrix&lt;/a&gt; is the most known CMS for corporate websites, and now Web Optimizer supports it in native mode.&lt;/li&gt;&lt;li&gt;Improved unobtrusive logic (added some ads).&lt;/li&gt;&lt;li&gt;Improved files combine (added exclusions, general logic).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Download the &lt;a href="http://www.web-optimizer.us/web-optimizer/download.html"&gt;latest version of Web Optimizer&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-5770511626164400651?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=sVFmXojn56E:MkFYH457DPY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=sVFmXojn56E:MkFYH457DPY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=sVFmXojn56E:MkFYH457DPY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=sVFmXojn56E:MkFYH457DPY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=sVFmXojn56E:MkFYH457DPY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/sVFmXojn56E" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/sVFmXojn56E/web-optimizer-067-released.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/12/web-optimizer-067-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-1447203056940619335</guid><pubDate>Thu, 26 Nov 2009 18:01:00 +0000</pubDate><atom:updated>2010-01-10T01:33:35.147+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">mod_rewrite</category><category domain="http://www.blogger.com/atom/ns#">gzip</category><category domain="http://www.blogger.com/atom/ns#">cache</category><category domain="http://www.blogger.com/atom/ns#">static gzip</category><category domain="http://www.blogger.com/atom/ns#">apache</category><title>Static gzip is your best friend</title><description>&lt;p&gt;After we touched &lt;a href="/2009/11/several-layers-of-caching.html"&gt;several aspects of caching&lt;/a&gt; let's return to gzip and review very simple and powerful technique 'Static gzip'.&lt;/p&gt;&lt;h3&gt;What is Static Gzip?&lt;/h3&gt;&lt;p&gt;Static Gzip is a way to serve compressed content w/o its actual compression 'on fly' (here is a &lt;a href="/2009/10/gzip-challenges-browser-compatibility.html"&gt;blog post about gzip&lt;/a&gt;). Very roughly we have gzipped files and serve them instead of common ones. How can we do this?&lt;/p&gt;&lt;h3&gt;General algorithm&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;First of all we need to have gzipped versions of initial files. Usually they are named with a postfix &lt;code&gt;.gz&lt;/code&gt;, i.e. &lt;code&gt;main.css.gz&lt;/code&gt;. As far as these files are static we can have them compressed at maximum. With Linux you can do the following&lt;blockquote&gt;&lt;pre&gt;gzip -c -n -9 main.css &gt; main.css.gz&lt;/pre&gt;&lt;/blockquote&gt;to get the smallest compressed file from the initial one.&lt;/li&gt;&lt;li&gt;Secondly we must have any way to route HTTP requests to take compressed version of the file. Via Apache and &lt;code&gt;mod_rewrite&lt;/code&gt; we can add the following rules to &lt;code&gt;.htaccess&lt;/code&gt; file or Apache configuration.&lt;blockquote&gt;&lt;pre&gt;&amp;lt;IfModule mod_rewrite.c&amp;gt;&lt;br /&gt; RewriteEngine On&lt;br /&gt; RewriteCond %{HTTP:Accept-encoding} gzip&lt;br /&gt; RewriteCond %{HTTP_USER_AGENT} !Konqueror&lt;br /&gt; RewriteCond %{REQUEST_FILENAME}.gz -f&lt;br /&gt; RewriteRule ^(.*)\.css$ $1.css.gz [QSA,L]&lt;br /&gt; &amp;lt;FilesMatch \.css\.gz$&amp;gt;&lt;br /&gt;  ForceType text/css&lt;br /&gt; &amp;lt;/FilesMatch&amp;gt;&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;br /&gt;&amp;lt;IfModule mod_mime.c&amp;gt;&lt;br /&gt; AddEncoding gzip .gz&lt;br /&gt;&amp;lt;/IfModule&amp;gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Rip off the veil of the mystery&lt;/h3&gt;&lt;p&gt;What does this set of rules actually do?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;First of all we enable RewriteEngine (it may have been already enabled in your configuration).&lt;/li&gt;&lt;li&gt;Then &lt;blockquote&gt;&lt;pre&gt;RewriteCond %{HTTP:Accept-encoding} gzip&lt;/pre&gt;&lt;/blockquote&gt; rule selects all HTTP requests with &lt;blockquote&gt;&lt;pre&gt;Accept-Encoding: gzip&lt;/pre&gt;&lt;/blockquote&gt; header and allows Apache to perform other rules.&lt;/li&gt;&lt;li&gt;Then we skip Konqueror browser&lt;blockquote&gt;&lt;pre&gt;RewriteCond %{HTTP_USER_AGENT} !Konqueror&lt;/pre&gt;&lt;/blockquote&gt;because it seems it doesn't understand compressed content for CSS / JavaScript files.&lt;/li&gt;&lt;li&gt;Then we check if there is physical file with postfix &lt;code&gt;.gz&lt;/code&gt;&lt;blockquote&gt;&lt;pre&gt;RewriteCond %{REQUEST_FILENAME}.gz -f&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;And only after all these checks we perform actual internal rewrite rule.&lt;blockquote&gt;&lt;pre&gt;RewriteRule ^(.*)\.css$ $1.css.gz [QSA,L]&lt;/pre&gt;&lt;/blockquote&gt;We redirect all requests to &lt;code&gt;.css&lt;/code&gt; files to &lt;code&gt;.css.gz&lt;/code&gt; files.&lt;/li&gt;&lt;li&gt;After this redirect (which is the last one &amp;mdash; modificator &lt;code&gt;[L]&lt;/code&gt;) we force &lt;code&gt;Content-Type&lt;/code&gt; of such files to be &lt;code&gt;text/css&lt;/code&gt;. Most servers send &lt;code&gt;.gz&lt;/code&gt; with default archive encoding, and browsers can't properly detect this content.&lt;/li&gt;&lt;li&gt;Finally with &lt;code&gt;AddEncoding gzip .gz&lt;/code&gt; rule sets proper &lt;code&gt;Content-Encoding&lt;/code&gt; header for compressed content.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Of course this logic can be applied not only to CSS files but to all files which can be efficiently compressed &amp;mdash; JavaScript, fonts, favicon.ico, etc.&lt;/p&gt;&lt;p&gt;That's all?&lt;/p&gt;&lt;h3&gt;Graceful Degradation&lt;/h3&gt;&lt;p&gt;What if Apache doesn't have &lt;code&gt;mod_rewrite&lt;/code&gt; module? Or we need to serve CSS content via PHP? Or there is environment which doesn't support such logic (CGI / IIS)?&lt;/p&gt;&lt;p&gt;Well we can perform the whole algorithm actually via PHP too. All what we need here is the following.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Form compressed file name (usually just with a postfix &lt;code&gt;.gz&lt;/code&gt;). And check for this file's existence.&lt;/li&gt;&lt;li&gt;If no such file exists, create compressed version of the file (i.e. via &lt;code&gt;gzcompress&lt;/code&gt; function).&lt;/li&gt;&lt;li&gt;Then write this compressed content to a new file (with already defined 'gzipped' file name).&lt;/li&gt;&lt;li&gt;And set for this file time of change (mtime) to the value equals to initial (non-compressed) one. Why it's required? Because we can with check for existence also check if gzipped version of the current file has the same mtime and skip its re-creation in case of equivalence. If the current file and its compressed version have different time of change &amp;mdash; it seems we need to re-create latter.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So with this logic we just check for file's existence and perform 2 checks for mtime (all such checks can be cached on file system level, or cache folder can be mapped to shared memory) and serve gzipped version. CPU is saved (with 80-85% of transferred content size)!&lt;/p&gt;&lt;p&gt;So &lt;a href="http://www.web-optimizer.us/"&gt;Web Optimizer&lt;/a&gt; has all such approaches integrated and with version 0.6.7+ allows you to create &lt;code&gt;.gz&lt;/code&gt; versions of CSS / JS files within any folder on your website.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-1447203056940619335?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=oWFgQGUCQqM:7euMhSApfWY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=oWFgQGUCQqM:7euMhSApfWY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=oWFgQGUCQqM:7euMhSApfWY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=oWFgQGUCQqM:7euMhSApfWY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=oWFgQGUCQqM:7euMhSApfWY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/oWFgQGUCQqM" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/oWFgQGUCQqM/static-gzip-is-your-best-friend.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/11/static-gzip-is-your-best-friend.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-4486936538603875622</guid><pubDate>Fri, 20 Nov 2009 08:29:00 +0000</pubDate><atom:updated>2009-11-20T11:33:38.468+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">facebook</category><category domain="http://www.blogger.com/atom/ns#">twitter</category><category domain="http://www.blogger.com/atom/ns#">social networks</category><title>Web Optimizer on Facebook</title><description>&lt;p&gt;Yeah, now you can join us on Facebook:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.facebook.com/pages/Web-Optimizer/183974322020" rel="nofollow"&gt;http://www.facebook.com/pages/Web-Optimizer/183974322020&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Also there is a &lt;a href="http://twitter.com/wboptimizer" rel="nofollow"&gt;Twitter account&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-4486936538603875622?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=IO0GkrKLMpg:KATqb8_-i9Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=IO0GkrKLMpg:KATqb8_-i9Y:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=IO0GkrKLMpg:KATqb8_-i9Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=IO0GkrKLMpg:KATqb8_-i9Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=IO0GkrKLMpg:KATqb8_-i9Y:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/IO0GkrKLMpg" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/IO0GkrKLMpg/web-optimizer-on-facebook.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/11/web-optimizer-on-facebook.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-8341984625305226406</guid><pubDate>Thu, 19 Nov 2009 13:53:00 +0000</pubDate><atom:updated>2009-12-03T18:26:32.505+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">cache</category><category domain="http://www.blogger.com/atom/ns#">cache integrity</category><category domain="http://www.blogger.com/atom/ns#">cache-control</category><title>Several layers of caching</title><description>&lt;p&gt;The last &lt;a href="/2009/11/caching-proxy-servers-and-forced-reload.html"&gt;two&lt;/a&gt; &lt;a href="/2009/11/client-side-caching-basics-automation.html"&gt;topics&lt;/a&gt; were about various aspects of client side caching. Also there was a topic about &lt;a href="/2009/10/cache-integrity-vs-website-speed.html"&gt;cache integrity check&lt;/a&gt;. For now let's review possible overall caching schema:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Web Optimizer can get optimized HTML code from its own cache. And output it to the browser. It's the first layer of caching &amp;mdash; on the server side.&lt;/li&gt;&lt;li&gt;Otherwise Web Optimizer gets raw results from CMS engine (HTML code). But they can be already cached (in CMS). Web Optimizer doesn't touch internal CMS caching logic, only uses it if it's available. So here can be the second layer of caching logic &amp;mdash; also on the server side.&lt;/li&gt;&lt;li&gt;During client side optimization performance Web Optimizer usually checks (&lt;a href="/2009/10/cache-integrity-vs-website-speed.html"&gt;view a complete description of this logic&lt;/a&gt;) if there are any files ready to be served (merged and combined ones). If yes -- all is OK here, Web Optimizer uses them. It's a one more server side caching layer here.&lt;/li&gt;&lt;li&gt;Also on serving files Web Optimizer (but usually Apache web server) checks if there are gzipped versions of files &amp;mdash; .gz ones &amp;mdash; and uses them (&lt;a href="/2009/11/static-gzip-is-your-best-friend.html"&gt;via &lt;code&gt;mod_rewrite&lt;/code&gt; or static gzip&lt;/a&gt;) rather than 'gzip on fly'. The fourth level of server side caching. And overall website configuration can have 1-2 more levels (i.e. on frontend proxy, nginx or squid, or on shared memory virtual disk).&lt;/li&gt;&lt;li&gt;But before files are served browser receives ready HTML code with assets' URLs. And tries to fetch them in its own cache &amp;mdash; browser's one. If yes (Web Optimizer sets &lt;a href="/2009/11/client-side-caching-basics-automation.html"&gt;strong caching headers&lt;/a&gt;) - such files aren't requested from server. It's a client side caching layer.&lt;/li&gt;&lt;li&gt;If there are no such files in local cache browser requests files but local (or not very local but intermediate) proxy server can have them cached (read more about &lt;a href="/2009/11/caching-proxy-servers-and-forced-reload.html"&gt;caching on proxies&lt;/a&gt;). So proxy server gives such files faster than initial website (and request doesn't reach the website at all). Actually client side caching layer.&lt;/li&gt;&lt;li&gt;If request reaches initial server but has conditional caching headers (&lt;code&gt;ETag&lt;/code&gt; or &lt;code&gt;Last-Modified&lt;/code&gt;) server can response with 304-answer (and don't send content). So it's client side caching layer too &amp;mdash; all content is taken from client side.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Wow! It seems that there is all. As you can see there is about 7-9 different caching layers somehow smudged between end client and end server (various chain links of requests' way from your browser to the website and back to you).&lt;/p&gt;&lt;p&gt;If the next posts we will try to light some of these layers in details.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-8341984625305226406?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=CqByoM4uG8E:xVI1qCSglv8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=CqByoM4uG8E:xVI1qCSglv8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=CqByoM4uG8E:xVI1qCSglv8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=CqByoM4uG8E:xVI1qCSglv8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=CqByoM4uG8E:xVI1qCSglv8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/CqByoM4uG8E" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/CqByoM4uG8E/several-layers-of-caching.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/11/several-layers-of-caching.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2592314804649951600</guid><pubDate>Mon, 16 Nov 2009 17:41:00 +0000</pubDate><atom:updated>2009-11-21T02:09:16.914+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AJAX</category><category domain="http://www.blogger.com/atom/ns#">Lite Edition</category><category domain="http://www.blogger.com/atom/ns#">data:URI</category><category domain="http://www.blogger.com/atom/ns#">Community Edition</category><category domain="http://www.blogger.com/atom/ns#">web optimizer</category><category domain="http://www.blogger.com/atom/ns#">release</category><category domain="http://www.blogger.com/atom/ns#">Premium Edition</category><category domain="http://www.blogger.com/atom/ns#">cache</category><title>Web Optimizer 0.6.6 released</title><description>&lt;p&gt;A lot of new features and bug fixes in new version.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Added separation for Community / Lite / Premium Editions.&lt;/strong&gt; Now free version of Web Optimizer becomes Community Edition and it's prohibited to be used on commercial websites. For this purpose you can also buy Web Optimizer Lite Edition (&lt;a href="http://www.web-optimizer.us/web-optimizer/buy-now.html"&gt;data:URI + performance included, $19.99&lt;/a&gt;). &lt;a href="http://www.web-optimizer.us/web-optimizer/comparison.html"&gt;Version comparison&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option to move all scripts (w/o merging) to &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt;.&lt;/strong&gt; If you choose to move all scripts to &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; but &lt;strong&gt;Minify JavaScript&lt;/strong&gt; option is disabled &amp;mdash; all scripts will be just moved one-by-one to the end of the document. Very useful.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option 'Uniform cache files for all browsers'.&lt;/strong&gt; In some cases (i.e. if you use different from Web Optimizer caching engine) it's incorrect to differ HTML code through browsers (yes, this disables data:URI group of options but allows you to cache any page for any browser only once).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option 'Cache external files'.&lt;/strong&gt; Now &lt;a href="/2009/10/php-proxy-for-static-assets.html"&gt;light PHP proxy&lt;/a&gt; can be applied to external files too. They can be downloaded, gzipped, and cached &amp;mdash; to improve your own website load speed.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added option 'Enable chained optimization'.&lt;/strong&gt; There are a few issues with chained optimization algorithm (due to buggy server side environments or mix of rights). So it can be disabled to prevent any Web Optimizer tries to pre-optimize your pages. With this option disabled all website pages will be optimized by first visit only.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Added events onBeforeOptimization, onAfterOptimization, onCache to plugins API.&lt;/strong&gt; These events can be used for standalone version to add any dynamic code to PHP, apply any  internal logic, or add any dynamic pieces to cached HTML documents.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved behavior (content skipping).&lt;/strong&gt; For content different from (X)HTML and for Ajax requests it's very tricky to append and optimization techniques (in most of cases such content  has been already optimized, so it's just skipped).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Improved general logic in case of &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; absence.&lt;/strong&gt; Sometimes HTML document has no &lt;code&gt;&amp;lt;/body&amp;gt;&lt;/code&gt; tag (yes, that's true). So we need to apply all logic in such cases too.&lt;/li&gt;&lt;li&gt;Improved multiple hosts behavior (especially for dynamic images).&lt;/li&gt;&lt;li&gt;Improved unobtrusive logic (minor fixes, added counters).&lt;/li&gt;&lt;li&gt;Improved Apache modules detection on CGI environments (especially &lt;code&gt;mod_rewrite&lt;/code&gt;).&lt;/li&gt;&lt;li&gt;Fixed several tiny bugs in files fetching (after dozens of unit tests integrated).&lt;/li&gt;&lt;li&gt;VaM Shop and Gekklog added to supported systems.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.web-optimizer.us/web-optimizer/download.html"&gt;Download the latest Web Optimizer&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2592314804649951600?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=dycwE3lmNiY:JjKIEtW27Is:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=dycwE3lmNiY:JjKIEtW27Is:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=dycwE3lmNiY:JjKIEtW27Is:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=dycwE3lmNiY:JjKIEtW27Is:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=dycwE3lmNiY:JjKIEtW27Is:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/dycwE3lmNiY" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/dycwE3lmNiY/web-optimizer-066-released.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/11/web-optimizer-066-released.html</feedburner:origLink></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-7197682597816655605.post-2395764878516681139</guid><pubDate>Sat, 14 Nov 2009 11:38:00 +0000</pubDate><atom:updated>2009-11-15T13:40:05.879+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">caching</category><category domain="http://www.blogger.com/atom/ns#">reload</category><category domain="http://www.blogger.com/atom/ns#">cache</category><category domain="http://www.blogger.com/atom/ns#">proxy</category><category domain="http://www.blogger.com/atom/ns#">cache-control</category><title>Client Side Caching: proxy servers and forced reload</title><description>&lt;p&gt;In the previous blog post we have talked about &lt;a href="/2009/11/client-side-caching-basics-automation.html"&gt;caching basics&lt;/a&gt;. Let's review now how proxies actually work and how can we force cache reload.&lt;/p&gt;&lt;h2&gt;Cache reload&lt;/h2&gt;&lt;p&gt;The main issue with far future expires headers is that browser doesn't re-request resource but takes it from local cache. So if you have made any changes on your website they won't be visible for all 'old' users (with cached styles and scripts, HTML documents usually aren't cached so aggressively).&lt;/p&gt;&lt;p&gt;So what can we do with this trouble? How can we tell browsers to re-request such resources?&lt;/p&gt;&lt;h2&gt;Main cache reload patterns&lt;/h2&gt;&lt;p&gt;There are two main patterns to force browsers (user agents) to request the current asset once more.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Add to the file name any GET parameter (which should indicate new state of this asset). For example&lt;blockquote&gt;&lt;pre&gt;styles.css -&amp;gt; styles.css?20091114&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Change "physical" file name. For example&lt;blockquote&gt;&lt;pre&gt;styles.css -&amp;gt; styles.v20091114.css&lt;/pre&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Both approaches change URL of the asset and force browser to re-request it.&lt;/p&gt;&lt;h2&gt;Cache reload and proxy servers&lt;/h2&gt;&lt;p&gt;As you can see the first approach is simpler than the second. But there a few possible issues with it. First of all some proxy servers doesn't cache URL with GET parameter (i.e. our &lt;code&gt;styles.css?20091114&lt;/code&gt;). So if you have a lot of visitors from a network behind one firewall we will serve this asset to each visitor separately, without its caching of a proxy server. This will slow down overall website speed and sometimes this can be critical.&lt;/p&gt;&lt;p&gt;But how can we apply new file name without actual changes on file system? Is there any way to perform this with only change in HTML code? Yes!&lt;/p&gt;&lt;h2&gt;Apache rewrite rules&lt;/h2&gt;&lt;p&gt;Apache web server has a powerful tool to perform 'hidden' redirects for local file (this is called 'internal redirects'). We can manage the first way with just one predefined rule for all files (in our case it's a set of numbers after &lt;code&gt;.v&lt;/code&gt;):&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;RewriteEngine On&lt;br /&gt;RewriteRule ^(.*)\.v[0-9]+\.css$ $1.css&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;So all such files will be redirected to their physical equivalents but you can change a part of URL with &lt;code&gt;.v&lt;/code&gt; at any time &amp;mdash; and browsers will request this asset once more.&lt;/p&gt;&lt;h2&gt;Automated cache reload&lt;/h2&gt;&lt;p&gt;There are several ways to automate cache reload process for all changed files. As far as &lt;a href="http://www.web-optimizer.us/"&gt;Web Optimizer&lt;/a&gt; combines all resources into 1 file, it's required to re-check file mtime (time of change) for all files and re-combine all resources.&lt;/p&gt;&lt;p&gt;Issues with &lt;a href="/2009/10/cache-integrity-vs-website-speed.html"&gt;re-checking all combined files&lt;/a&gt; have been already described last month, so it's not generally good to check them all with every web page visit. We can cache all previous checks into 1 file and check only its mtime. So it's done by default. By default we can check time of change of the only file (CSS or JS one) and add as a GET parameter or as a part of file name.&lt;/p&gt;&lt;p&gt;So this is applied for all such files (that should be cached on a client side) and results in the following:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;/cache/website.css?1257927769&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;or&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;/cache/website.wo1257927769.css&lt;/pre&gt;&lt;/blockquote&gt;&lt;p&gt;As you can see there are two timestamps in these CSS files, one goes as a GET parameter, the other &amp;mdash; as a part of URL (and with Apache &lt;code&gt;mod_rewrite&lt;/code&gt; rule is transformed to &lt;code&gt;/cache/website.css&lt;/code&gt;).&lt;/p&gt;&lt;h2&gt;Overall schema&lt;/h2&gt;&lt;p&gt;So what is overall caching algorithm for the website?&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Check if we have combined file. If no &amp;mdash; create it.&lt;/li&gt;&lt;li&gt;Check mtime of the combined file. If it's required add mtime to URL (using one of the described ways).&lt;/li&gt;&lt;li&gt;Browser receives HTML code with the URL of combined file.&lt;/li&gt;&lt;li&gt;Browser checks if it has this URL cached. If yes, all finished here.&lt;/li&gt;&lt;li&gt;If not browser requests cached file (which is already prepared on the server or is cached on the proxy).&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;hr/&gt;&lt;p&gt;Make your website faster than lightning, &lt;a href="http://www.web-optimizer.us/"&gt;try WEBO Site SpeedUp&lt;/a&gt; (free download or live demo).&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7197682597816655605-2395764878516681139?l=blog.webogroup.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PDp6g3R4Psk:8JPVCZd4ehY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PDp6g3R4Psk:8JPVCZd4ehY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PDp6g3R4Psk:8JPVCZd4ehY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?i=PDp6g3R4Psk:8JPVCZd4ehY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/WebOptimizerBlog?a=PDp6g3R4Psk:8JPVCZd4ehY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/WebOptimizerBlog?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WebOptimizerBlog/~4/PDp6g3R4Psk" height="1" width="1"/&gt;</description><link>http://feedproxy.google.com/~r/WebOptimizerBlog/~3/PDp6g3R4Psk/caching-proxy-servers-and-forced-reload.html</link><author>noreply@blogger.com (Nikolay Matsievsky)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://blog.webogroup.com/2009/11/caching-proxy-servers-and-forced-reload.html</feedburner:origLink></item></channel></rss>
