Setting Up and Optimizing W3 Total Cache (Up to v0.9.2.4)

Iron Man is a complete fighting machine!

[This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series.]

***Updated – I’ve updated all screens up to version 0.9.2.4 which was released on August 26st, 2011. Please let me know if you see anything missing!***

We just finished up going through a setup and optimization guide of WP Super Cache and now it’s time to take a look at W3 Total Cache which is another very good plugin. In fact, I trust my blogs to it every single day!

Essentially what I do is that I move my blogs from WP Super Cache once they get to a certain point in terms of traffic and resource requirements to a much more custom and robust solution in W3 Total Cache. A few other blogs that trust W3TC with their needs:

Think you’re at that point (or want to try it anyway)? Check out this overview and setup tutorial:

A Few Things to Note about W3TC:

Every hero has his weakness...

One of the most important things that you must know about W3 Total Cache is that for you to get everything that you can possibly get out of it you’ll need some advanced server-side scripting and hosting configurations.

Thus most bloggers do not have the expertise or experience to know how to do the aforementioned things and so most people won’t find the result as beneficial as some of the other caching plugins available.

Unfortunately, as a result, W3TC gets a “bad rap” for not being a very good solution when it’s actually the limited knowledge of the end-user that’s creating the roadblock to success.

In fact, it can get worse! Without the right settings many bloggers will find their blog loading more slowly than before! This is very typical in cases on shared-hosting solutions in tandem with a “disk (basic)” and even the “disk (enhanced)” setup in W3TC as it will end up taxing the server even more in some cases. Again, this is why you’ll find a lot of bloggers crying “foul” about W3TC “blowing up” their blog as a result of a poor installation and setup.

So, what is it going to take? You see, 99% (or more) of self-hosted WordPress blogs run on an Apache + PHP-based web server configuration. I believe that to completely tweak-out a WordPress blog with W3TC you need either a NGINX + FastCGI configuration or a custom Litespeed + Op-Code in production (I personally run this setup with APC – Alternative PHP Cache). If you have no idea what I’m talking about then I think it’s only fair that one shouldn’t expect to get max and/or superior results unless they have one of those configurations or if you’re a kick butt at engineering an Apache-based environment.

This doesn’t even factor in one of the biggest contributing factors to this plugins’ success which is your blog’s hosting provider! A shared environment will always produce lower results than a virtual, semi-virtual, or dedicated system. In many circumstances you won’t be able to max this plugin out on a shared environment due to the host’s software installation and configuration constraints!

Finally, there are many other options within the plugin like using a Content Delivery Network (CDN) that further enhance the value of W3TC, even though adding a CDN is not a unique value proposition (WP Super Cache has this too). Some of these options, like a CDN, require not only additional technical ability but also money which most bloggers, especially new ones, simply can’t afford. This puts the optimal usage of W3TC even further away from the average blogger.

Of course, you could say the same thing about most of the caching plugins out there that “max” results require server-side engineering and scripting to pump out the best results!

In any case I typically recommend that most bloggers head back over to WP Super Cache as their caching plugin of choice since most server and hosting providers can natively provide an optimal return on a very simple installation.

Setting Up W3 Total Cache:

So you’re set on trying it out? Great! Here’s how to go about doing it. Of course, if you have any questions please feel free to ask me via the comments!

1. Download It

Naturally the first thing you’ll want to do is download it directly via your WordPress plugin interface or via the WordPress.org repository and then upload it via FTP:

Just put in "W3 Total Cache" and it should find it.

Then, install it:

Go for it...!

Or if you have to upload manually make sure to put it in your wp-content/plugins folder:

I like to do things manually - I'm more in control.

One you’ve uploaded it it’s time to get into setting it up!

2. Activate It

Once you activate it you may run into a number of issues right out of the gate, just like WP Super Cache. For starters you might have to chmod 777 again because of this “fatal error”:

Fatal error? Sad! CHMOD 777!

You’ll have to change the permissions on your wp-content folder to 777 to get it installed. To do that just jump into your FTP app and change the permissions or use your hosting provider’s web-based interface:

Set it to 777!

Here’s what it might look like in a web-based interface:

Not too pretty but gets the job done!

After you change the settings you should be good to go – go ahead and try activating it again.

You should just see this:

Weeeeeeeeeeeeeeeeeeeeeeee!

Great! Next step…

3. Customizing the Setup

The next step is to head over to the management section of the plugin itself and begin to turn things on and off for your blog.

This will be the largest portion of your time spent and you may want to dedicate some time to configuring this plugin (and understanding it) before actually deploying it.

The menu item will be near the bottom of your WordPress dashboard on the left:

Lots of menu items in there...!

Go ahead and hit General Settings to get started. You might see some warnings at the top like these:

Warning messages at the top of W3 Total Cache.

One of them will mention how your wp-content folder is “writeable” and needs to be chmod’d back to 755. That’s easy enough. The second will mention how you’re in “Preview Mode” and none of your settings or changes will become active until you either “Deploy” the system or disable the preview mode. Good enough as you won’t want to deploy anything quite yet!

Some of you might see some .htaccess issues with the same permission challenges:

You’ll have to chmod either your parent directly or the .htaccess file directly. Go ahead and try clicking the “try again” button and see if it clears after you’ve made the right adjustments.

Finally, don’t forget to get your permalink structure updated to something better than just the post id values. Check this post for more information.

The first section you’ll see is General Settings and here you’ll be able to turn on and off the many features of W3TC.

Page Cache

Reduce response time and increase your blog's scalability!

I’ve already covered page caching in this post here so go ahead and read some of the obvious benefits of using this option.

This simply makes those “dynamic” pages more “static” so that your site loads faster as it doesn’t require the user to request information from the database again and again.

For most people on shared blog hosting solutions you won’t have many options other than “Disk (basic)” and “Disk (advanced)” as seen below:

Disk (enhanced) or Disk (basic)?

At this point if this is all you see then I immediately recommend most bloggers to un-install this plugin and go install and use WP Super Cache instead since you won’t see very much difference between the two as a result.

I firmly believe that the value of this plugin lies in your ability to choose the specific Opcode features that match the custom configurations of your server. If you do not have APC, eAccelerator, XCache, or Memcached as options this plugin won’t really provide the “punch” that you were looking for.

Some would argue otherwise but I generally suggest that you can stop here and safely use WP Super Cache as a healthy alternative.

For those interested in continuing I have found great results with both Memcache and APC and have experimented heavily with both:

Memcache and APC are activated via my server environment.

If I were to choose one I’d say that APC is far and away better than Memcache but that’s only because I’m using a heavily customized non-Apache-based system and instead opted for Litespeed which is an additional IT cost.

If you head deeper into the settings you’ll find more specific options. Here’s what I have:

Turn them on!

And then at the end I’ve preloaded the system using my XML sitemap:

Make sure you have one!

A few of you might have the technical chops to add a Varnish system to your server and if you do then awesome! Just make sure that you get rid of cookies via your system since there won’t be any point of having Varnish with cookies enabled.

What’s been proven a couple of times though is that Apache + Varnish caching is actually slower than a simple Litespeed caching solution. Thus, I don’t actually need Varnish. Some have eeked out some crazy results with heavy customization with NGINX + Varnish less the database caching options but now you might simply be confused.

Finally, I use the default settings from for the Purge Policy:

Yum.

Alright? Let’s jump in farther!

Minify Settings

Minify!

Note, the above screenshot was the older view. New screenshot below with updated notes:

Delicious.

Essentially what “minifying” does to the files on your site is combine them into one file and then strip out all the unnecessary code that increases the weight of the overall file.

You should do your research on each HTML/JS/CSS minifier and find out which one works the best considering your unique hosting setup.

Again, I’m personally using Opcode: Alternative PHP Cache (APC) in my configurations and if all you have is “Disk” option available then I’d probably consider using another plugin.

Too bad...!

Of course, it’s up to you!

If you jump into some of the advanced settings you’ll find a bit more options for your minified files. Here is a look at my settings:

General

Make sure to check what your users see!

Make sure that you test what your end-users see so as to not miss out on an error!

Below is the “old” version of this screen so if you have an older version you’ll see this:

General settings

I like getting both admin and email notifications if something breaks.

HTML

HTML settings

I have found that minifying the feeds can cause instabilities for some RSS readers so I choose not to minify them.

JavaScript

This is a newer panel that you might see.

I’ve opted not to do line break removals since the variety of my JS calls.

This screen below is an older version of the plugin’s look:

JavaScript settings

You can choose to combine only after a certain area on your theme’s code but typically you’ll want to capture all of them so just leave those un-checked.

CSS

Newer admin look here.

I do, in fact, combine my CSS into one file via the CDN.

This is an older screen for those still using older versions.

CSS settings

By enabling all these you streamline your CSS files to the max! This always looks so neat.

Please note that minification is one of the areas that you may spend a lot of time on because, depending on your setup, you might have to play around with some of the files and settings to get your blog to show properly.

There are some features and scripts that simply do not function as they were intended in a minified-state. Also, your WordPress Theme will interpret some of these requests in different ways so you might end up with a fully functional look with one theme while another one might completely break in style and form.

Of course, don’t forget the nice Help Wizard that’s available to you to find those files (although it’s not always comprehensive, so you may have to add files manually):

Give it a go!

This will give you an overlay screen to choose the right files to minify:

Look at all those files!

Then save and then refresh the cache and you should be set.

Database and Object Cache

Database caching for the win.

Both the Database Cache settings and Object Cache settings (above and below) are pretty straight-forward. Both of them essentially speed up the creation and distribution of data to and from your blog to your readers.

Object caching

You can simply enable both of these and then use the default settings for both:

Database general settings

Object caching general settings

That should be good enough.

Browser Cache Settings

Browser cache settings

I talked already about the basics of browser caching so you should already been aware of the benefits. Enable this and then head over into the advanced settings.

I pretty much have all of the settings checked:

General settings

CSS and JavaScript settings

HTML settings

Media and Other files

That should do it.

Content Delivery Network

Content Delivery Network settings

Your CDN or Content Delivery Network settings are very important, especially if you want to provide as fast as an experience as possible for your readers.

Make sure you choose the right “pull” or “push” depending on the CDN system that you’re using.

Types of CDN pull and push.

Head over to the advanced tab to customize it further as well as to add your selected CDN config:

CDN general settings

You’ll notice that I don’t have the last box checked and that’s because I try my best to never use a piece of content (images especially) that is not directly hosted and/or saved onto my own domain. This is to provide the most consistent and sustainable user experience!

If you need to you can import the attachments and files by using the buttons above but after that I’d refrain from adding more!

Finally, the actual settings for your CDN should be inputed:

CDN hostname

As you can see I’m using cdn.tentblogger.com as my hostname. There are some things that you’ll have to do on your web hosting provider to enable this feature (like creating a new CNAME record in your DNS) but that shouldn’t be too hard to figure out, right?

In fact, I’ve created a tutorial specifically outlining how to get a CDN up and running on your WordPress blog using W3 Total Cache! Check it out here!

Great! You’ve pretty much tweaked and modified your W3TC settings for optimal usage! All you have to do now is turn the system on by heading back to the General Settings tab and choosing the top option!

Turn it on!

Of course the next things you need to immediately do is test it on different browsers to see if it’s actually working.

If it is then you should see a considerable increase of speed as well as a little notice on the bottom of your pages like this when you do “View Source”:

Yup.

Awesome!

A Few Final Options

Finally there are a few options and features in this robust plugin that’s worth noting, the first being the Debug mode that can help you figure out what’s broken or what’s not working:

Newer version of interface.

If you have an older version you might see this:

Any debugging needs?

This system works really well but you’ll typically want to do any debugging on a low traffic day or in the beginning stages of a new blog so that user experience isn’t being impacted.

The second is some Miscellaneous settings that I typically don’t activate, especially the “Enable file locking” option:

New look with Google Page Speed.

The new Google Page Speed widget for the front dash of your blog is neat. I’ve enabled it. Here’s what it looks like in the dashboard:

I'll make it better soon... I promise!

And then if you see “View All Results” you can see a breakdown of what’s really going on:

Getting an API is quite easy. Just go here and click this box:

Get an API Key!

Then copy and paste the Simple Key that they give you:

That's all you'll need!

If you have an older version you’ll just see this lame looking miscellaneous widget:

Miscellaneous settings

Finally, one of the most useful features is the ability to import and export your settings for other installations and backup. Since I have more than one blog using this heavily customized set of settings it makes it super easy to duplicate my work by exporting a “core” setting and then importing this file into new blogs:

Import and Export settings

Love that!

Whew! And with that we’re about done. This 3,000 word post should help give you at least an idea of what this plugin can not only do but some of the many options available to you.

I’d love to hear from you though! What is your current setup? What’s your server configuration? What have you found that does and does not work? What do you think can be improved?

And of course if you have any questions just shoot them in the comments!

[This post is part of the Ultimate Guide to Launching a WordPress-Powered Blog series.]

  • http://analteredreality.com Kevin

    I’ve used W3TC forever and love it! Thanks for this :) It’ll be useful when I’m being lazy and want something to refer to ;)

    • http://john.do John Saddington

      haha! you’ve got a good config, right?

      • http://analteredreality.com Kevin

        I’m still experimenting to be honest. I’ve been running NGINX with PHP5-FPM (until earlier today when something pooped out), but I’m testing lighttpd with PHP-CGI right now and it’s working out well. The caching uses a balance of APC and Memcached (memcached balanced on 2 EC2 servers). I’m using S3 for static content right now, but I’m considering moving to CloudFront since it supports origin pull now. :)

        • http://analteredreality.com Kevin

          All of that said…here’s my most recent Pingdom Tools test http://bit.ly/gvrava :D

          • http://john.do John Saddington

            awesome!

        • http://john.do John Saddington

          how did you manage amazon’s outtage? also, where are you hosting?

          • http://analteredreality.com Kevin

            I prayed hard and got lucky. My instances weren’t affected by the outage despite the fact that all of them were in the same region (and zone!). Since then, I created standby instances in the Northern California region just in case. I’m working on getting then ready.

            Hosting…I have a hosting account with DreamHost, but right now everything is running off of EC2, S3, Route 53, and CloudFront.

  • Joe Chavez

    John, thanks for this. I NOW know and understand the differences been WP Super and W3 Total Cache. Now I understand why you asked me the other day why I was using W3 Total Cache. So glad I got rid of it–for now–and went with WP Super. I’m saving this post for the day I need to move to W3. Thanks for all the work that went into creating this post. You are a rockstar!

    • http://john.do John Saddington

      sure thing joe! glad it could help!

  • http://www.geekforhim.com Geek for Him

    No need on posting up part 2 now! Thanks man

    So when you say this “For those interested in continuing I have found great results with both Memcache and APC and have experimented heavily with both:”

    Are you going to post up for those of us who want to do this a tutorial on how to get started?

    Off to hack my DV 4 server now at Media Temple!

    • http://john.do John Saddington

      do you think i should go into that great a detail?

      • http://www.geekforhim.com Geek for Him

        I honestly think you have folks, myself included, that visit your site that could benefit from a tutorial or guidance on how to add that extra punch is all.

        • http://john.do John Saddington

          perhaps we can tag team it… you could present the MT side of it and I could work on another box/server?

          btw, i didn’t mean to stop you from completing your series. i think you should still do it.

          • http://www.geekforhim.com Geek for Him

            I would love to help out anyway I can brother.

            As for the series, I will post it up and link to this for sure.

            Thanks man.

            • http://john.do John Saddington

              cool. let me work through some posts i’ve already got in the hopper and we can revisit this…..

  • Brandon

    Awesome! This will help when I switch to self-hosted!

    Btw- I am running a free ad contest to anyone who is interested: http://bigb94.wordpress.com/2011/04/25/wanna-win-a-free-ad/

  • Thomas Griffin

    Man this is a beast of a post! My setup is -exactly- the same minus the fact that I use MaxCDN for my CDN provider. I’ve also got a super tricked out Apache VPS from HostGator that does a phenomenal job on serving the content. And, like you said, it is wonderful to be able to port the options from one setup to another because I do it all the time.

    This is by far the best and most detailed post on W3TC I have seen!

    Thomas

    • http://john.do John Saddington

      thomas,

      good to see you! and thanks for the encouragement. i actually use maxcdn as well. post coming tomorrow that will provide that detail!

  • http://www.chriswiegman.com Chris Wiegman

    Excellent tutorial John!

    I do think you discredit the power of features other than page-cache as they can do as much, if not more, to improve performance for many than page-caching, however with the added cost of a CDN and the added expertise required to get other areas such as minify working for many you are spot on in the the knowledge overhead is just too high.

    For help with the minify feature I wrote a post a couple of weeks ago (http://www.chriswiegman.com/2011/04/prepare-your-wordpress-theme-to-be-minified/) that can help prepare some cheaper themes to take advantage of minify, however this also requires some pretty heavy pre-requisite knowledge that might not be worth it for some.

    One thing I’m curious of is where you’re hosting tentblogger. I’m happy with my shared host, but am already thinking beyond as my own traffic continues to grow.

    Thanks, again,
    Chris

    • http://www.geekforhim.com Matthew Snider

      40 dollars for a full year of a CDN or pay as you go with S3 is a very easy and necessary pill to swallow honestly.

      • http://john.do John Saddington

        that’s if you’ve got some small traffic blogs…! I spend a lot more than that…!

        • http://www.geekforhim.com Matthew Snider

          Correct but you are a PIMP we are just Pimps in Training!

    • http://john.do John Saddington

      chris,

      fair assessment! there’s a lot required knowledge-wise for these things to be in place. i guess where I stand often is I’d rather have my clients and those I coach not use something they don’t fully understand… i think that’s dangerous.

      but, you can get away with it for sure!

      finally, i’ve got a post coming that shares some more info on my hosting solution, etc. i’m waiting to iron some things out before i share it publicly… but i’ve got an idea to help share the custom build by offering perhaps a solution for people.

      not sure yet… but excited!

      • http://www.chriswiegman.com Chris Wiegman

        I look forward to your post!

        As for the other, I think my bias comes from it being so long since I took a client who’s site I’m not still maintaining. I stepped out of freelance work over a year ago and am just starting to think about getting my feet wet again. Over that time the sites I’ve done have all included w3tc and I’ve continued to maintain them after initial publication.

        By the way, you have anything in the works on WP security? I find this to be one of the most overlooked areas, even in small blogs. Unfortunately I’ve seen more than one small site succumb to bad passwords or other taboo practices.

        • http://john.do John Saddington

          i have this post…

          http://john.do/installing-wordpress/

          and, i also have a few more about security here…

          http://john.do/salt-keys/

          i have some more security posts queued up though.

          • http://www.chriswiegman.com Chris Wiegman

            Cool, I’ll take a look.

          • Rob Still

            Hey John – about posts on security – (I’m totally non-geek) I followed salt-keys when I set-up my blog.

            But when I set-up WP on Dreamhost I used the 1-click to install WordPress.

            I am concerned about security and would love to see advice on how to improve security for that scenario. Hope that makes sense. THANKS!

            • http://john.do John Saddington

              rob, got a mini series that i want to do. can you wait until then? if not, google should prove to be helpful!

              • Rob Still

                O yea, I just figured the input might influence your series. You’re much better than google. Thanks for the response.

  • http://www.justcris.com Cristiane Ferreira

    Wow, I’ve got a lot to play with on the weekend ;-)
    BTW, John, I’ve been using the site GTMetrix to get some speed metrics of my blog. I thought I could use it to test the results after I setup caching. Do you suggest any other tool/site for this?
    Thank you very much for this awesome series, I’m loving it!

    • http://www.chriswiegman.com Chris Wiegman

      Check out http://www.webpagetest.org/, and Google Page Speed (you can find this under your menu in http://www.google.com/webmasters/. Finally there is YSlow which, along with page speed, can be used as an add-on in Firefox or and extension in Chrome.

      • http://analteredreality.com Kevin

        Pingdom Tools is pretty good too! http://tools.pingdom.com

        • http://john.do John Saddington

          great list! i’ve got 10 tests sites that i’m sharing after a few more posts… thanks for these!

          • http://www.justcris.com Cris Ferreira

            Thank you Chris, Kevin and John. And I’ll be looking forward to your list, John.

  • http://wordsofeternallife.org/ Mike McArthur

    Hi John,
    Ok, you convinced me – I have deactivated WP Total cache and am now using WP Super Cache + WP Minify for my site. Interestingly my YSlow score increased from 73 to 78 by making that change!

    It was your comment “I’d rather have my clients and those I coach not use something they don’t fully understand… i think that’s dangerous.” that helped make up my mind that really Total cache was beyond what I need and am competent to use.

    Thanks for the great info, I’m finding loads of useful advice in from Tentblogger in my feed each day!
    Cheers,
    Mike

    • http://john.do John Saddington

      mike,

      congrats on this! LOVE to hear about successes!!!

  • http://ericdye.it Eric Dye

    EPIC.

    • http://john.do John Saddington

      italy.

  • http://www.quickonlinetips.com/ QOT

    Probably the best article ever written about Total Cache!

    • http://john.do John Saddington

      wow… humbled by this! thanks so much!

  • http://www.wrapyourselfslim.com Ella

    Thanks for the very thorough post. I’ve had this plugin for months, but hadn’t figured out how to optimize the settings until now.

    Cheers!

    • http://john.do John Saddington

      sure thing ella!

  • Ed

    Excellent post John.
    I’m doing some prep research for a new blog post series I’m planning on WordPress performance and I’ve seen a LOT of W3TC posts – yours is without doubt the most comprehensive and balanced guide I’ve come across to date.
    Bravo!

  • http://analteredreality.com Kevin

    Copy, paste #FAILBOT :(

    • http://john.do John Saddington

      ah. sad. delete.

    • http://john.do John Saddington

      i spammed it .nice catch.

  • Bob

    I had read scores of articles on W3 Total Cache versus WP Super Cache and this is by far the most comprehensive in explaining why you should not use W3 Total Cache if you are on a shared hosted server – which, let’s face it, most wordpress bloggers are.

    In fact, this is the ONLY article that I have read which explains why you should not use W3 Total Cache on a shared hosted account – well done. Saved me the grief of uninstalling WP Super Cache.

    All we need now John is an article on how to install CDN with WP Super Cache…

    …and perhaps a small article debating whether to opt for a static ip address or a cdn or both a static ip address and a cdn to speed up sites.

    LOL!

    Well done.

    • http://john.do John Saddington

      bob,

      i’ve got a blog post on cdn installation that should provide everything you need…?

      http://john.do/setup-cdn

      thanks for the encouragement buddy!

    • http://analteredreality.com Kevin

      Web servers should always have a static IP unless you’re hosting at home (then I’d say get one, but don’t expect blazing fast site load times)…if not it’d be a constant hassle to update DNS records and since those take forever to propagate in some cases it’d be a disaster…IP wouldn’t necessarily speed anything up either…TCP/IP is just a protocol, so there’s really no speed there…

      Check John’s guide for a CDN though. It’s epic. :)

      • Bob

        Thanks Kevin,

        I have two basic sites on bluehost – one is on a shared server with about 250 other shared accounts, the second is on one with about 1100 and the second one is noticeably slower even though both are basically the same basic text site.

        I just assumed a static ip address would speed it up. Thanks for the info

        • http://john.do John Saddington

          kevin is awesome.

  • http://www.navymats.org/ the navymats.org

    Thank for sharing this tutorial. But what about the JS code from Google Adsense? I try to enable minify like above, but my ads disappears, so I disable for JS option.

    • http://john.do John Saddington

      that depends on how you’re doing JS and minification.

      • http://www.navymats.org/full-face-transplant-us navymats.org

        So, that is my point…give me any clues. Thanks.

    • Bakugan

      I am having the same issue as thenavymats.org? I added the same settings as you and had some funny stuff happening with my Google Adsense earnings. My pageviews appear to be the same but the CTR went from ~1% to 0.20%. For some visitors they are unable to see any CSS on my site? Even though it appears fine for me?

      I guess my main question is which of the settings above caused this, so that I can play with it some more to see what works best for me?

      • http://john.do John Saddington

        hmm. you’d have to check that the files are being loaded via your host or via the CDN. make sure you’re not seeing unminified pages and your visitors are seeing minified.

  • http://runhundred.com Chris Lawhorn

    This is a great tutorial. So thorough. One question though, that’s got me stumped.

    In the minify CSS section of the plug-in, I’ve added the file URIs for my site:

    Example: http://www.fakesite.com/wp-content/themes/faketheme/superfish.css

    When I test it using the “Verify URI” it pulls up fine. But it doesn’t actually work when minified.

    What’s strange, though, is that I can list an identical file from the CDN:

    Example: http://www.cdn.fakesite.com/wp-content/themes/faketheme/superfish.css

    And this works fine–both when I verify it and when I enable minification.

    Any idea why the CDN version works but the hosted version won’t? Even when the actual file served by both is identical?

    • http://john.do John Saddington

      there have been some challenges with the plugin in the last week.

  • http://fritzimages.com Ed

    Hi John,

    I am using w3 Tc 0.9.1.3, my site is hosted on a virtual server at MDD hosting, and I read with interest about your comment that with VPS hosting I should be seeing in (Page cacheing) the Opcode selections in the drop down box. In my case those options are greyed out.

    Q1) Is there anyway to determine via c-panel or other way to troubleshoot if WordPress or W3 T or my host is the cause of the issue.

    I have contacted my host provider, and he recommends a fresh install of WP and see if the same problem exists.

    Q2) Is this the best advise ?

    I recently upgraded to w3 Tc 9.2.1 and it was a disaster, and I had to go back to 9.1.3, I thought I’d mention this if you were going to recommend an upgrade.

    Finally, my host is using LiteSpeed, you mentioned that you were able to tweak a Litespeed + Op-Code in production (I personally run this setup with APC – Alternative PHP Cache). If you have no idea what I’m talking about then I think it’s only fair that one shouldn’t expect to get max and/or superior results unless they have one of those configurations … (Q3) I’d be interested in the details of how you did this…..

    thanks for answers to my three questions…

    • http://john.do John Saddington

      ed,

      no, opcode caching needs to be installed on most systems and servers and i’m not sure many come with it activated by default.

      depending on your hosting provider they may do it for you or you’ll need to do it yourself.

      the recent version of w3tc was definitely stinky. he’s working to fix some things but I believe even now the minify feature is a bit cloogy.

      it’ll be fixed in time… there are too many systems that depend on it.

      and… if not, i’ll go find another or make my own.

      • Ed

        Hey John,

        I’ve been using the latest W3TC beta for a few months now on a good few production sites. The only “stinky” issue I found was the minify issue :) I think everything else was working brilliantly. Did you see any other issues? (Just in case I’ve missed something big!

        Ed

        • http://john.do John Saddington

          no, that’s the biggest issue is the minification. but doesn’t kill it. it’ll be fixed in a bit i’m sure.

          • Ed

            Given how long Frederick spent on this beta I’m sure he was annoyed there was an issue at all :) Reckon it will be sorted as you say pretty quickly.

            • http://john.do John Saddington

              for sure!

    • Harry

      Hi!

      Looking to setup w3 total cache under with this guide! Woohoo!

      You mentioned “tweak a Litespeed + Op-Code in production (I personally run this setup with APC – Alternative PHP Cache)”

      Can you elaborate more on the Litespeed + Op-Code configuration?

      Thanks a lot!

  • http://www.fritzimages.com ED

    Hi John,

    It’s me (the first Ed)…..I have contacted host they can install APC or memcached, which is superior, I am on Lightspeed server. I am not that technical, but can appreciate

    Also, I wrote to John re w3 Tc 9.2.1, he has been very helpful to try and understand the bugs on this version, and has made some recommendations. He is going to work on my site to see if there is resolution. The current fix is posted on the w3t forum. You are correct, many people use this plugin and it is very high profile to have resolved.

    • http://john.do John Saddington

      sweet!

  • http://fritzimages.com Ed

    What is the recommended Opcode option, my host provider will install APC or Memcache…thank you for your opinion ( my site hosted with lightspeed)….

    • http://john.do John Saddington

      i use apc.

    • http://john.do John Saddington

      ed, have you seen this post?

      http://john.do/wordpress-hosting/

    • Ed

      Hi Ed,

      APC is the way to go for opcode cache in my opinion.

      Facebook and a few others with huge traffic use it and it’s going to be baked into PHP6.

      The other Ed :)

      • http://john.do John Saddington

        cool man! love your recent post on nginx config.

        • Ed

          cheers John!

          plenty more of those coming in the next few weeks when I get time :)

          Ed

          • http://john.do John Saddington

            sweet! great job.

  • Nurul Imam

    how to add free cdn to w3 ?

    • http://analteredreality.com Kevin

      Not really any good free CDN’s out there, but you could use Coral (http://www.coralcdn.org/) and select “Mirror” in W3.

      • http://john.do John Saddington

        ah, thanks kevin!

        • http://analteredreality.com Kevin

          You bet! …I should add that I wouldn’t recommend that…but it works..

          • http://john.do John Saddington

            ah. nice caveat. appreciate that.

            how are you doing?

  • http://dariongroup.com Olimpiu

    Hi, after the instalation of the plugin I have 404 erro for all my pages in the site, even the menu thos. What can I do about this?

    Thancks.

    • http://john.do John Saddington

      drat! uninstall it!

  • Pablo

    hey there john. Thanks for this post and the blog series, it has been really helpful!
    There is one thing I do not quite understand: Cache Preload

    On default, the “Automatically prime the page cache” option is disabled. I don’t know if I should enable it or not, because I don’t know what it means or does really.

    I’m running on a shared hosting by the way, so a bit careful this option could increase server load relatively unnecessarily and decrease performance overall.

    Trying to configure W3Total Cache, so activating WP Super Cache is not an option :-)

    Thanks in advance

    • http://john.do John Saddington

      sure thing pablo! he’s updated teh plugin again so i’m going to have to update all the images… it’ll take some time.

  • http://www.seed-of-hope.com/ Chadley Uekman

    I seem to be having problems with my configuration. This is my pingdom test. What can I do to get my load time to be lower.
    http://tools.pingdom.com/fpt/default.asp?url=http%3a%2f%2fwww.seed-of-hope.com%2f&id=4964701

    • http://john.do John Saddington

      hey chad. got your emails. :)

  • Dedy

    Hi.. I get a problem with w3 total cache
    before i install it, i used wp super cache
    but after i install w3 total
    my server is not responding
    so.. i reinstall my wordpress
    what happen with my blog??
    Thanks :)

    • http://john.do John Saddington

      hmm. that’s not enough info… did you uninstall wp super cache?

  • Gustav

    Thanks for a very informative post and the fine instructions. I have been using W3 TC on all of my sites trying to increase loading time. I currently use VPS hosting and there were some minor conflicts. One of the techs set up my site with FastCGI and blew everything out of the water. After putting it back to suPHP, things were normal again, but slow loading. He still recommends W3 TC, but said that it needs to be fine tuned and to check around for a good example of the settings and to try it. I’m going to try yours and hopefully have good results.

    • http://john.do John Saddington

      let me know how it goes!

  • http://aidyspoetry.net AIDY

    Hello, from what I can tell this is a very through ‘how-to’ review. However, the images are not rendering. Fantastic work and details. Thank you.

    • AIDY

      I reloaded the page and I see your images! The review is even better now–again, thank you so much for your help!

      • http://john.do John Saddington

        *whew* excellent!

  • http://fishwickdesign.com James

    Thanks for this, John. Excellent resource.

    Q: For the Database and Page cache, would I stick with the default “disk” as you seem to suggest, or does it make more sense to go with an “OpCode” option?

    • http://john.do John Saddington

      sure thing james!

      • James

        Huh? Sorry, so which is better, “disk” or a “OpCode” option?

        • http://analteredreality.com Kevin

          Either. I’ve seen better results with opcode though.

  • Michael Giles

    Hi John:

    Thanks so much for this excellent guide. We have been struggling with W3 Total cache – here is our problem. We can set it up and it seems to work on a single site. But we have to copy it over to a large number of sites and that is where we get problems. We export the settings and they seem to be in the php file but when we upload to the new sites the settings don’t seem to initialize. We then we have to redo the setting! What are we doing wrong?

    Really appreciate any assistance you can offer.

    Btw we are now willing to look at WP Super Cache if we have to and if we can’t fix this copying to a lot of websites problem. But we have invested so much in W3 Total Cache. And W3 TC seems like it is substantially better in terms of making our sites faster we are willing to give it a further try.

    Thanks John! Let me know if you need any further info and I will get it from my technical guy who has been working with this.

    • Michael Giles

      Hi John:

      Hope you are well. Any ideas on this problem we have? Really hope you have some suggestions. I appreciate whatever insights you may have.

      Thanks in advance.
      Michael

      • http://analteredreality.com Kevin

        Have you guys opened the PHP file to verify that something is in there? If not, do that…if so…make sure all the versions and directory permissions are the same. I’d ask the developer too, he’s usually really quick to respond.

        • Michael Giles

          Thanks Kevin – will do. But just in case it doesn’t work, how do we contact the developer? Went onto the WordPress forum, what is his signon name?

          Thanks again, appreciate your help!
          Michael

          • http://analteredreality.com Kevin

            fredericktownes

    • http://john.do John Saddington

      what is your server settings?

  • Michael Giles

    Hi John:

    Sorry, my technical person is not here – it’s 10 pm. And my hosting provider asked me to ask you which server settings you are referring to?

    Thanks
    Michael

    • http://john.do John Saddington

      just wondering what your server environment is… do they have experience with wordpress caching?

  • Michael Giles

    Hi John

    Well I know that we do have memcacheD and they support that. We are on linux, CentOS 5.5, 64 bit with Cpanel (VPS) and we are on a cloud. it is Storm LiquidWeb. Last week we asked about APC and they are willing to install it on our server on a “best efforts basis”.

    This is what I know off the top of my head, let me know if this helps. Or if you want to know something else then I will give them a call and ask.

    I know at various times we changed the amount of memory for php but to what we got it set to I would have to ask again.

    Thanks a lot for your help – let me know what you recommend.

    Best regards,
    Michael

    • http://john.do John Saddington

      that should be good…! is there a reason you’re not looking at wp super cache?

      http://john.do/wp-super-cache/

      what is your traffic like?

  • Michael Giles

    John

    Thanks for your help thus far. I read through your comparison between the two plugins and it is excellent. Here’s the problem. Right now the traffic is light (25K unique visitors a month) but it is very early – four months. We have a large number of niche sites that use the same theme. In the past weeks we have seen that they are growing and we expect them to continue to grow and some will become very large both in terms of number of pages and number of visitors. Visitors who will be accessing the sites from lots of places in the world. This is already the case.

    So a while back we opted for W3 Total Cache and as a result we already installed on all the sites, and we have it working with Rackspace’s CDN, and it works with CloudFlare which we have already started adding our sites to. We thought that W3 Total cache was more suitable to what we plan to have which is a lot of sites, many of them over 5000 pages, and with heavy traffic for some of the largest ones. I think at the time it seemed that W3 Total Cache was also getting updated more frequently than WP Super Cache and our sites were Word press based. I guess one thing that really weighed in W3 Total Cache’s favor was that it seemed that if we spent the time and got it right it would give us the best chance to have the fastest sites we could have – and your article seemed to concur.

    We have done a lot of work with W3 Total Cache so the hope is to stick with it and just get it to replicate our unique setting into the rest of our sites. That’s the hope John, unless you can’t help us. Or it is just impossible to do unless we did it manually.

    Given what I told you, would Super Cache be as well suited or perhaps better suited to our case? And would it replicate its settings more easily? And give the same savings in terms of speed and bandwidth usage?

    I’d surely welcome your suggestions since I really was impressed with the expertise you demonstrated in those articles you wrote.

    Thanks so much for your help!
    Michael

    • Michael Giles

      Hi John:

      Hope you are well. Just wondering if you have had a chance to recommend a solution to our dilemma?

      Thanks in advance.
      Michael

      • http://john.do John Saddington

        i’d probably go with super cache for now. see how that works. and unless some significant need, make a jump to w3 as you scale higher.

        • Michael Giles

          Thanks for your help John! Keep up your great work!!

          • http://john.do John Saddington

            sure thing michael!

  • Gunny007

    Thanks for detailed guide. My site dailomo.com has around per day and it is hosted in dedicated server. I was unable to proceed your guide since PHP Accelerators are not available in my account.

    I contact my Host – Hostgotor for the same and got the below answer.
    ————
    Hello there:

    We have four caching mechanisms (also known as ‘PHP accelerators’) available for us to install for you. Here are our PHP accelerators offered, sorted by price:

    eAccelerator: Free^
    Memcached: $25
    XCache : $35*^
    APC: $35*^

    ^ Requires PHP recompile
    ** Not compatible with your IonCube PHP Loader or Zend Optimizer
    extensions. Also, permissions will need to be changed accordingly for write permissions of scripts. Folders will require 777 and files 666 using ownership of nobody or user. This will possibly cause mail delivery issues, as well as definite file security issues.
    ——————
    Could you please guide me which PHP Accelerator is suitable for getting best results from W3 Total Cache?

    Thanks,
    Gunny007

    • http://john.do John Saddington

      have you tried googling for the answer? there’s a bunch of posts out there on choosing. what about wp super cache?

      http://john.do/wp-super-cache/

  • Dan Butcher

    I’m running a BuddyPress site, and all my users are logged in–how does this impact the “don’t cache queries for logged in users”? Not sure if I should check this or not.

    • http://john.do John Saddington

      probably not check it.

  • http://androidmoon.com JR

    Hi John,

    This is really nice guide to W3TC world.

    I own a few WordPress sites with page views in total about half a million monthly. I have used W3 Total Cache long time, I read you post, but the next thing was a little unclear. Do you recommend following setup for Cache methods?
    Page Cache Method: Disk: Enhanced
    Minify Cache Method: Opcode: APC
    Database Cache Method: Disk
    Object Cache Method: Disk

    • http://androidmoon.com JR

      For some reason I didn’t get that verification mail. :/

  • marc

    How on earth can you recommend database and object cache to disk?? If you don’t have ssd disks you will likely have performance loss.

    This recommendation makes absolutely no sense. if you turn on db and object caching, do it with opcode cache. if you don’t have opcode cache installed and your hosting company won’t install it, leave db and object cache turned off.

    • http://john.do John Saddington

      and this is what i have.

  • Louis

    hi John

    my setup : hostgator sharehosting
    i use w3 + cloudflare
    gtmetrix.com info = page speed 90

    if i understand i should go with wp super cache?
    and do you think cloudflare is good too

    thanks for your help

    Louis

    • http://john.do John Saddington

      sure, you could try it!

  • http://cnwintech.com/ azam

    thanks, i follow this tutor, and and get my wp blogs become more fast, grade A in google page speed test.. wow

    • http://john.do John Saddington

      sure thing azam!

  • http://www.mikekey.com Mike Key

    Great article! I have installed both Memcache and APC. APC does seem to do better overall. I also installed the Google mod_pagespeed for Apache, which has improved things quite nicely.

    Scoring a 94/100 with Google page speed for the home page. Now if the rest of my site didn’t suck. Oh well.

    thanks for the info.

    • http://john.do John Saddington

      not bad!

  • http://yourstoryclub.com yourstoryclub

    Thanks John,
    being new I was wandering a lot to find super cache or total cache. Your post for sure answered me to a great extend. I am using share hosting from justhost. Not sure if that would be suitable for W3 Total Cache. But will try – now I know when to switch to super cache.
    One question: I am using ‘Count per day’ to display number of reads on my every post using short-cut given. If I view final HTML code I just see string but no script e.g. 289 reads . Does it mean that after using w3 total cache, number of reads would not change for readers? Any alternative you suggest.
    thanks

    • http://john.do John Saddington

      this depends on your settings as it could remain static. i’d ask the plugin developer.

  • http://fashion2012-13.com Fashion 2012

    I was told by my host, HostGator that database caching should be off. I’m wonder why did they say this ???
    Db caching much increases speed

  • http://fashion2012-13.com Fashion 2012

    Database caching should be enabled but im wonder why my host Hostgator asked me to disable db caching. Any one know???

    • http://john.do John Saddington

      perhaps their particular configuration. do they have an FAQ or recommended solution/setting?

      • Fashion 2012

        No; They just said that this is recommended setting for w3total cache to keep db cache off

        • http://john.do John Saddington

          huh. interesting…

          • http://analteredreality.com Kevin

            Well, it’s not a huge loss to keep it disabled. It doesn’t provide a huge speed boost anyway. The majority of the queries that WordPress runs only take fractions of seconds. As long as you can enable Page caching, Object caching, and some form of CDN you should be good to go.

  • aco

    thanks for great post.

    i have some confuse, i have Google ad-sense on by site can i use with w3 super cache.

    can w3 super chache change my google ad-sense code

    i don’t use Minify only use default setting.

    Thanks

    • http://john.do John Saddington

      awesome! thanks man!

  • http://www.linuxstall.com Chankey Pathak

    Great tutorial. Just install plugin and check all the marks which you have specified ;)

    • http://john.do John Saddington

      awesome! rocking!

  • Gregory

    thank you ;)

    • http://john.do John Saddington

      sure thing…..!

  • http://healthyresultsblog.com Bruce

    After installing W3 Total and setting up I found the speed went down!!
    After stumbling across this post in frustration to find a solution – taking into account I’m still a newby at all this :/
    I found this post;in particular this comment of yours,

    “At this point if this is all you see then I immediately recommend most bloggers to un-install this plugin and go install and use WP Super Cache instead since you won’t see very much difference between the two as a result.”

    I think I now realize the solution for me at the moment… WP Super Cache!

    Thank you for taking the time to give USE FULL information.
    Will be keeping an eye on your site ;)

    • http://john.do John Saddington

      awesome! way to tog!

  • http://hafizamri.com/ Dunia Maklumat

    i like this tutorial thanks..

    • http://john.do John Saddington

      sure thing.

  • http://deluxejournal.com otobong

    Please help me. This plugin is conflicting with my MobilePress Plugin. It redirects mobile users to the desktop version and this doesnt look good. How do I make the mobile users go to the mobile press mobile version instead of the pc version. Thanks

    • http://john.do John Saddington

      w3 total cache has some help in their forums i believe.

  • http://amirulasril.com/ Alam Informasi

    Thanks for the tutorial.. Now i know how to use W3 plugin cache…

    • http://john.do John Saddington

      sure thing!

  • http://www.wpexplorer.com/ AJ Clarke

    Yep, the best post on w3 total cache out there. Probably took you a long as* time to write this post…

    thanks bud.

    • http://john.do John Saddington

      :) sure thing aj!

  • judy

    Hello,
    Thank you for your post.my site is slow,the first visit is very slow,so I want to preload my whole site once a day,how to set it up?thank you!

  • http://dotcomcell.com mazdodot

    The understanding is sometimes obliged to do, especially regarding about Setting Up and Optimizing W3 Total Cache…Great POST, Thank You Very Very Much.

    • http://john.do John Saddington

      sure thing! awesome!

      • http://dotcomcell.com mazdodot

        Because so far I just plug it in, but do not quite understand about the options in w3totalchace. By reading your article, many things that I got … Thanks Once Again.

        • http://john.do John Saddington

          cool.

  • http://www.sainspedia.web.id/ Randeezt

    Thanks 4 sharing this post, it is very useful for me.

    • http://john.do John Saddington

      sure thing randeezt!

  • High Tech Gadget Gal

    I have read 3- 4 posts on these settings but only after reading your post was I able to actually shave a few seconds off my page load. I could not get minify via cdn to work. But you are only one I have read that mentions the wizard…thankyou and sooo easy. I am on shared hosting too and this plugin along with image compression has zapped my time….thanx

    • http://john.do John Saddington

      that’s awesome! glad it worked!

  • http://techarta.com nikhil

    thank you for the detailed instructions. Really needed it

    • http://john.do John Saddington

      sure thing nikhil!

  • http://www.evilripper.net evilripper

    Very useful guide thanks! :-D
    ps
    there isn’t the link to api key here:
    “Getting an API is quite easy. Just go here and click this box:”
    https://code.google.com/apis/console

    bye

    • http://john.do John Saddington

      you are quite welcome!

      and thanks for the edit!

  • http://www.thedotblog.com Koundeenya @ the dot blog

    Thanks a lot, previously I used to have a very low page speed score.This really worked, it used the static version of my site and made it really fast. Now i got 92 speed score on Google PageSpeed Check. I installed W3 Total Cache previously, but this complete tutorial made me get the most of it.

    • http://john.do John Saddington

      awesome! well done koundeenya!

  • http://www.paulteitelman.com Paul Teitelman

    Awesome article! One of the big reasons I recommend WordPress to my clients looking at new websites is because a) the number of plugins and b) number of developers and bloggers like yourself who help out the rest of us!

    Any tips for non-wordpress sites?

    • http://john.do John Saddington

      hmm… i mean, depends on whether it’s dbase driven or not.

  • http://www.popcorndollar.com Jonathan

    Awesome guide! I’ve got a spanky new vps server (managed) that I hardly know how to tweak. I’m trying to follow the same steps as the above, but like my shared hosting have those options like Opcode: APC etc greyed out.

    Can someone point me somewhere?

    • http://john.do John Saddington

      you need to ask them to either help you turn it on or get access to do it yourself.

  • http://www.electrosome.com Ligo George

    Thanks for share………….It helped me lot……….

  • http://medicaddict.16mb.com Meidi

    thank you ..
    This setting is helpful tutorial..
    and very easy to understand..

  • numz

    Wow. nice tutorial. thanks for share. Indonesian Newbie

  • Terrance

    Fantastic tutorial, but why is there no date on it??? I can’t tell what version you’re referring to!!!

    • http://john.do John Saddington

      it’s on the bottom. version is at the top in the title…

  • Reza

    Hi John. This is a great post. Heped me with my W3TC setup and now my site is running very well.

  • http://www.krizna.com gkrizna

    Some one help me to put the minified java script at the bottom of the page

  • definisi

    thanks… it help me setting up w3

  • http://www.hasanzaheer.com Hasan Zaheer

    Awesome information mate, I think I have properly configured cache plugin first time since long.

  • http://webloggerz.com/ kane

    well described . .really helped me

  • http://gameznet.biz Andrew

    I’m not sure you guys do offer the best advice because your page (this one) overloads and crashes IE 8 so obviously its not optimised very well

  • Sabur Khan

    Great post!! I setup W3 Total Cache by following your post.

    After configure I saw the page source, That minify all HTML also. Dose it effect on SEO?

  • http://coachidem.wordpress.com Jérôme Lena

    Great post! I have tested it and the speed increase is there. Still, w3tc seems to be incompatible with the mobile layout of Standard Theme (tested on ipad and android). The drop down icon on the left of the top menu bar become unresponsive. Any suggestion on how to fix this, or how to tell Standard Theme not to use the mobile layout on a self-hosted blog?

  • http://www.portalponsel.com Ponsel Terbaru

    Thank you so much John.. the setting work on my blog…

  • http://www.facebook.com/kristina.ponting Kristina Anna Ingeborg Ponting

    Hi:) Love Ya:) 1 million times! from sweden for this fantasic guide, who gave me: 99/100!

  • http://adaytrip.com Craig

    Great detailed post, this was really helpful while setting up W3 Total Cache

  • http://gravatar.com/psuedok psuedok

    Ok was looking through your guide and I am on VPS but only two Basic and advanced are available. How would I make the others available?

  • Mightysense

    Page Speed Score: 100/100

    Put CSS in the document head

    Remove query strings from static resources

    Prefer asynchronous resources

    Optimize the order of styles and scripts

    Minimize request size

    Optimize images

    Can it be better???

    • http://john.do/ John

      not if you’ve got 100/100…

  • crazybandyo

    Great work! I have done the settings. I still don’t understand but managed things easily as I found all instructions here mentioned in the right way,

  • http://michaelgkeating.com Mike Keating

    Damn I don’t know what is longer the comment thread or the post ;) Great work John and thanks for the information. I use this plugin on a ton of sites I run. Just be careful in the event you need to remove the plugin. Be sure to do so properly because it can cause infinite loops and other errors. Happy blogging everyone :)

  • http://googlethatshit.net GoogleThatShit

    Thanks for the helpful post. I have set up this plugin on my site http://googlethatshit.net and haven’t been able to figure out how to get the minify settings to work. There appears to be an error with Apache (if my server uses it) or my htaccess. Anyone else experience this problem? I have tried everything and can’t get anywhere.

    Thanks in advance :)

  • Steve

    Hi John – wow! excellent tutorial – big ty!

    I’ve got this setup and running and a nice jump in page performance loading.
    I am noticing that my changes to page content are not appearing very fast. The most recent one was over 24hrs ago and it is still not reflected when I visit my site.

    I have changed my browser cache expire headers lifetime to 300 secs to see if that would force it to update but it hasn’t.

    I’m even logged in as an admin and I can not see the latest changes – so really stumped here as to what has gone wrong.

    Any ideas?

  • Jeffrey

    excellent. the post is a big help. much appreciated.

    • http://John.do/ John Saddington

      sure thing!