-
Notifications
You must be signed in to change notification settings - Fork 86
FAQ: General
Anyone that wants to provide an optimal user experience to their readers.
We needed an elegant remedy to common performance issues we spent countless hours addressing on various blogs we work with. They all suffered from similar issues and we found that same remedies would sort all of them. Issues like HTTP transaction reduction, object size reduction and blocking objects are performance killers and have been remedied with this plugin. Rather than release our various plugins individually (and support them independently) we saw an opportunity to demonstrate how all of this functionality is intertwined and combines to realize far more than the sum of its parts.
One of the WordPress community's strengths is also its weakness; we found that numerous plugins are very handy and save some development time in a pinch, but the maintenance and performance penalties blogs suffer from as a result contribute to a poor user experience, which is never acceptable.
Experience has shown that fast loading web sites have (at least) the following characteristics:
- Reduced attrition
- Higher conversion rates for e-commerce / affiliate etc sites
- Increased time on site / more page views per visitor
In fact, if wordpress.com (for example) applied some of the techniques used in this plugin, we imagine they'd realize ~10% performance improvement on the CSS, JS and HTML (respectively) on the millions of blogs they host.
As a practical matter, Akamai and JupiterResearch did a study on acceptable wait time for retail web sites to load back in late 2006 concluding that users may leave after 4 seconds of waiting. That was several years ago now, even before 3G was available for mobile devices, what do you think web users expect today? According to Marissa Mayer of Google, as she stated the same year as Akamai, improving the speed of sites/applications reduces the learning curve for applications and contributes to higher use. It's time to bring the performance major corporations enjoy to the blogosphere.
As an aside, don't you think your site's KPI would be more meaningful if you could be confident that all users were having the exact same performance experience with your site? It's too early to say for sure, but we feel that the statistics and metrics we all use to track our progress and results will be more realistic when W3 Total Cache is actively removing bottlenecks from our blogs.
Please let us know what kind of mileage you have.
W3 Total Cache is a suite of functionality designed to optimize the performance of all WordPress blogs. Features and benefits include:
- Improved progressive render (non-blocking CSS and JS embedding)
- Reduced HTTP Transactions, DNS lookups, reduced document load time
- Transparent content delivery network (CDN) support with automated media library import
- Bandwidth savings via HTTP compression (gzip) for HTML, CSS and JS
- Minification (concatenation, white space removal) of inline, external or 3rd party JS and CSS with scheduled updates
- Optional embedding of JS just above </body>
- Support for caching pages, posts, feeds, database objects, CSS, JS in memory with an opcode cache or memcached or both
- Caching of feeds (comments, page and site), URLs with query string variables (like search result pages), Database queries, Pages, Posts, CSS and JS
- Complete header management including ETags
- Increased web server concurrency and reduced resource consumption, increased scale
In essence, anything that can be automated to squeeze out every bit of server performance and minimize bandwidth utilization has been done, leaving your readers with an optimized user experience.
Yes! Please reach out to us and we'll get you acclimated so you can "set it and forget it."
I've never heard of any of this stuff. My blog is fine, no one complains about the speed. Why should I install this?
Rarely do readers take the time to complain. They typically just stop browsing earlier than you'd prefer and may not return altogether. It's in every web site owner's best interest is to make sure that the performance of your blog is not hindering its success.
You're right, Matt did say that. However, this plugin provides more than just "caching". Because he is correct, the web is dynamic and must remain so. But as we explain throughout this FAQ, our goal is to improve the performance of any blog. Furthermore, some techniques we use are well documented from past WordCamp presentations; we combined them in a way that we have found stands up to the highest traffic spikes.
That's right; a youngster in junior high school can get started with this plugin. Seriously, if you did your own WordPress install or have ever installed a plugin before you're in good shape. If you need help, let us know or perhaps we'll make some videos or the like.
Thanks for asking. We just decided not try to use the typical WordPress hooks and methodologies to implement our features, instead we take the normal output and perform optimizations to it before we send it to the user agent using a method they support and then cache the result afterwards. This concept is applied to objects you decide to cache.
So let me get this straight; you're telling me this plugin is designed to improve performance of any WordPress blog?
Precisely, that is unless you don't write any posts in your blog nor have any readers. If you're someone that's always into the latest web development technique or plugin, now you can "have it all" without making your readers suffer.
You will be able to see it instantly on each page load, but for tangible metrics, consider the following tools:
We'll just quote the fine folks at yahoo on this one:
"Minification is the practice of removing unnecessary characters from code to reduce its size thereby improving load times. When code is minified all comments are removed, as well as unneeded white space characters (space, newline, and tab). In the case of JavaScript, this improves response time performance because the size of the downloaded file is reduced. Two popular tools for minifying JavaScript code are JSMin and YUI Compressor. The YUI compressor can also minify CSS.
Obfuscation is an alternative optimization that can be applied to source code. It's more complex than minification and thus more likely to generate bugs as a result of the obfuscation step itself. In a survey of ten top U.S. web sites, minification achieved a 21% size reduction versus 25% for obfuscation. Although obfuscation has a higher size reduction, minifying JavaScript is less risky. In addition to minifying external scripts and styles, inline <script> and <style> blocks can and should also be minified. Even if you gzip your scripts and styles, minifying them will still reduce the size by 5% or more. As the use and size of JavaScript and CSS increases so will the savings gained by minifying your code." developer.yahoo.com
We use: minify but may support various engines in the future. Based on John Resig's suggestion we're currently looking at YUI Compressor and Google Closure Compiler (for JavaScript) also.
Yes, indirectly — if you have a lot of bloggers working with you, you will find that it feels like you have a server dedicated only to WP Admin once this plugin is enabled; the result, increased productivity.
No. No theme changes, special files, WordPress core file modifications or special permissions need to be set.
Well, no there isn't. Installing the server side software might be challenging for some, but we can assist with that if you ask. Other than that, unless you enjoy frequently upgrading your server plan or buying more servers and paying for bandwidth overages or wincing every time you add another "must have" plugin to your blog, we cannot find any reason to deter you from the use of this one.
Who benefits? Everyone. Of the numerous, here are the three the most important reasons we share with the WordPress community:
- WordPress is free and high quality, plugins should be too.
- There's no reason your blog shouldn't be able to perform as well as well as any major corporation's web site/application.
- Google and Yahoo offer quite a bit, but they did not offer a WordPress solution yet. This is our contribution to speeding up the web (starting with the blogosphere).
Yes, especially if you have a cluster and many WordPress installations or a WordPress MU installation, then plugin is for you. It will allow you to move easily from multiple installations to WordPress MU and continue to use multiple HTTP, Database, Network Attached Storage etc servers in any configuration you wish. You can also specify as many memcached servers as you wish, although you cannot yet delegate a memcached server to a specific type of caching, i.e. there's no pool management yet.
So you appear to know what you're talking about, will there be any negative effect on my SEO rankings?
To answer, first we must assume that you're using all of the options we offer: HTTP compression, minify etc. Having said that, we are only sending compressed data to user agents that support it; even most search engine crawlers do. As for minified HTML, this is essentially how crawlers see your page anyway when they download it. So no, there's no penalty or compromise.
Fact of the matter, there was a time when the semantics and size of your HTML file (code-to-content ratio), was a factor in a more favorable ranking. POSH HTML has always been preferred by search engines. In some markets this may still be true, so give the search engines what they want.
What about my robots.txt, sitemap.xml and all my site verification files etc, what happens with those?
If you're concerned about what happens with these when the CDN functionality is active, nothing does. You do not want or need these files moved from their original locations and HTTP compression (or minification for that matter) is of no consequence in most cases.
Do you have any tricks for "post-loading", "lazy-loading" and other render optimizations in this plugin?
Yes we do, we're currently evaluating if they are best introduced into this plugin or as standalones. Feel free to chime in.
No the plugin will not do that and it's unlikely that we'll support that.
Not yet, we are considering support for add-ons. Meanwhile, please reach out to us and let us know what you think would benefit the community.
It's quite difficult to recall all of the innovators that have shared their thoughts, code and experiences in the blogosphere over the years, but here are some names to get you started:
- Steve Souders
- Steve Clay
- Ryan Grove
- Nicholas Zakas
- Ryan Dean
- Andrei Zmievski
- George Schlossnagle
- Daniel Cowgill
- Rasmus Lerdorf
- Gopal Vijayaraghavan
- Bart Vanbraban
- mOo
Please reach out to all of these people and support their projects if you're so inclined.
PRO features available:
- Fragment Cache Extension
- Genesis Extension
- WPML Extension
- Full Site Delivery (FSD)
- Cache Statistics
- Database cluster
- Amazon SNS
How do I enable Pro mode on a site that is not registered, i.e a site that was not used for purchase such as local development site?
Add define('W3TC_PRO_DEV_MODE', true)
to wp-config.php and resave the license key.
It should be used when you use load balancing with multiple servers. Using Amazon SNS will make sure that the W3 Total Cache caches for each server is purged when required.