Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

How to Install and Setup W3 Total Cache for Beginners

Editorial Note: We earn a commission from partner links on WPBeginner. Commissions do not affect our editors' opinions or evaluations. Learn more about Editorial Process.

Do you want to install and set up W3 Total Cache on your WordPress website?

W3 Total Cache is a popular WordPress caching plugin that helps you to improve your website speed and performance. Caching plugins can help retain users and lower bounce rates, which can help SEO and increase conversions.

In this beginner’s guide, we’ll show you how to easily install and set up W3 Total Cache on your WordPress website.

W3 Total Cache installation and setup guide for WordPress beginners

Editor’s Note: We don’t use W3 Total Cache on our website anymore and have switched to WP Rocket which is a premium caching plugin. W3 Total Cache is still a fine solution that works well.

What is W3 Total Cache?

W3 Total Cache is one of the best WordPress caching plugins that allows you to easily improve WordPress performance and speed.

By default, WordPress uses PHP to dynamically generate each page on your website when it is requested by a user.

PHP is a server-side programming language. This means each user request increases the load on your server. This affects your website’s performance, user experience, and SEO.

WordPress caching plugins help you reduce this by skipping PHP and serving a cached copy of your webpage.

How caching works

It also allows you to easily connect your website to a CDN (content delivery network) to further improve your website performance.

Installing W3 Total Cache in WordPress

Before you install the W3 Total Cache plugin in WordPress, you’ll need to make sure that you deactivate any other caching plugin on your website. This will help you save server resources and prevent any plugin conflicts.

After that, you can go ahead and install and activate the W3 Total Cache plugin. For more details, see our step-by-step guide on how to install a WordPress plugin.

Upon activation, W3 Total Cache will add a new menu item labeled Performance to your WordPress admin sidebar. Clicking on it will launch the plugin’s setup wizard.

W3 Total Cache set up

Simply click on the Next button to continue.

First, you will be asked to turn on Page Cache. Click on the Test Page Cache button to continue.

Configure page cache

W3 Total Cache will show you different storage engine options. You need to choose one that saves you the most time. Usually, it will be the ‘Disk: Enhanced’ option for most shared hosting platforms.

Click on the Next button to continue.

Now, you will be given the option to Test Database Cache. We recommend choosing None. For most small to medium-sized websites your MySQL server will be able to fetch data more quickly than the Database cache.

Database cache

Click on the Next button to move on to the next step.

This will bring you to the Object Cache section. Object Caching allows W3 Total Cache to store database queries for dynamic pages and reuse them to improve performance.

Object cache in W3 Total Cache

If the test result shows barely a few milliseconds difference then you can choose None.

Click on the next button to continue.

After that, click on the Test Browser Cache button and then select the ‘Enabled’ option under the test results.

Browser cache

This option requests the user’s browser to store a copy of the web page for a limited time. Loading a page from a browser cache is much faster than loading it from your web server’s cache.

Click on the next button to move on to the next step.

Lastly, the setup wizard will ask you to enable lazy loading for images.

Now, WordPress comes with built-in lazy loading for images. However, some older browsers may not have support for that feature.

W3 Total Cache uses JavaScript to add lazy loading for images, which can be even faster and more efficient.

Enable Lazy Loading

After that, click on the Next button to finish the setup wizard and view W3 Total Cache dashboard.

Advanced Caching Options in W3 Total Cache

The basic settings would work for most websites. However, there are many advanced options that you can configure to further improve performance.

Let’s take a look at the most important ones.

Minifying JavaScript and CSS in W3 Total Cache

The term ‘minify’ is used to describe a method that makes your website file sizes smaller. It does this by removing white spaces, lines, and unnecessary characters from the source code.

Note: Minifying JS and CSS files can potentially break your website. If you turn it on and your website doesn’t look right, then simply disable these options.

W3 Total Cache allows you to easily minify JavaScript, CSS, and HTML source code as well. However, we recommend only minifying JavaScript and CSS files.

Simply head over to Performance » Minify page and scroll down to the JS section.

Enable JS minify in W3 Total Cache

Check the box next to ‘JS minify settings’ to enable it.

Now, scroll down to the CSS section and enable CSS minify settings the same way.

Enable CSS minify

Don’t forget to click on the Save All Settings button to store your settings.

For alternate methods, see our guide on how to minify JavaScript and CSS files in WordPress.

Enable CDN Support in W3 Total Cache

CDNs or content delivery networks help you further improve your website performance by serving static files like images, CSS, and JavaScript from a global network of servers.

This reduces the load on your WordPress hosting server and improves page load speed.

W3 Total Cache comes with built-in support for various CDN platforms.

We recommend using Bunny.net which is the best CDN solution on the market. This is what we use for our OptinMonster website.

First, you need to signup for a Bunny.net account. After signup, you need to create a Pull Zone for your website.

Bunny CDN dashboard

A pull zone adds a hostname to Bunny.net CDN. This hostname is then used to serve static files for your website.

Add a name for your pull zone and then provide your website’s domain name.

Create pullzone

After adding the pullzone, you need to visit the Performance » General Settings page.

Then, just scroll down to the CDN section.

Enable CDN

Check the Enable box next to the CDN option and choose Generic Mirror next to the CDN Type option.

Don’t forget to click on the Save All Changes button to store your settings.

Next, you need to visit the Performance » CDN page and scroll down to the Configuration: Objects section.

Add CDN hostname

From here, you need to add the hostname you created earlier for your pullzone and click on the test mirror button.

W3 Total Cache will check the availability of your hostname and will show the Test Passed message when it’s successful.

You can now click on the Save All Changes button to store your settings.

W3 Total Cache will now start serving your static resources from CDN server.

W3 Total Cache also works well with Cloudflare free CDN. Alternately, you can also use it with Sucuri which is the best website firewall service with built-in CDN service.

Troubleshooting W3 Total Cache Issues

Once you have configured W3 Total Cache properly, it should work seamlessly in the background to improve WordPress speed and boost performance.

Occasionally, you may come across issues where you don’t see changes you made to your website right away, or a plugin may not be working properly.

The most common reason for those issues is that you are probably seeing an old cached version of your website.

This can be easily fixed by clearing the cache in WordPress.

Simply click on the Performance menu at the top and then select Purge All Caches option. W3 Total Cache will clear all cached content on your website.

Clear all cache in W3 Total Cache

If you are still seeing the old version of your website, then try clearing your browser cache too.

We hope this article helped you install and set up W3 Total Cache in WordPress. You may also want to see our complete WordPress security guide for beginners to strengthen your website security, or our expert picks of the best WordPress hosting services to speed up your website even more.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Disclosure: Our content is reader-supported. This means if you click on some of our links, then we may earn a commission. See how WPBeginner is funded, why it matters, and how you can support us. Here's our editorial process.

Editorial Staff

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

The Ultimate WordPress Toolkit

Get FREE access to our toolkit - a collection of WordPress related products and resources that every professional should have!

Reader Interactions

163 CommentsLeave a Reply

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Manolis says

    hi,
    how i can restore my settings to default? how i can restore the redirect of cdn.mydomain.com to my default domain name???

  3. WPBeginner Staff says

    You can add your shopping cart page as an exception in w3 total cache. Under Performance > Page Cache scroll down to advanced section where you will find the option ‘Never cache the following pages’. For example, if your eCommerce plugin uses a page cart for checkout, then simply enter “cart/” to exclude that page or “cart/*” to exclude that page and all sub-pages. (Without the quotes, of course.)

  4. Marou Wing says

    Hi Guys, thank you for the awesome article, it made my site much faster than before! However I have encountered with a little issue. My site has webshop and the checkout page (due to the Credit Card payment option) has https (I have my own SSL hosted by RapidSSL). So the checkout page (I assume because of the SSL is totally messed up when the W3TotalCache is enabled, no formats, no pictures, no colours only text…) How can I fix this issue, do you have any recommendation? Thank you, Marou

  5. WPBeginner Staff says

    We haven’t noticed any significant conflicts on any of our websites where we use it. Even then, if you come across a conflict then notify the plugin author by using the support tab on the plugin’s page.

  6. adeem jan says

    Thanks for writing this tutorial on how to setup and decrease a blog load time using W3 total cache.

    I use this same plugin on one of my blogs, the resulting speed of the blog is awesome.

    Although, i have seen many people complain about this plugin that it sometimes conflict with other wordpress plugins.

    I don’t know if you have experienced this in person?

  7. Roger Phillips says

    Hi thanks for the video I enjoyed it, I’ve used w3 total cache for over 5 years on all four of my personal sites and I honestly have to say I’ve alway had better luck 90% of the time using it right out of the box, less likely to break other function that way. Kind of the risk vrs rewards factor and that normally persuades me to just use it out of the box. After watching this video and decided to give the settings you requested a try, You helped me out quite a bit. My site went up in speed from 82% to 97% page speed, and yslow score went from 72% to 93%, thanks for the setting can’t wait to try them on my other sites!
    Fish

  8. Arif Ahmed says

    I used W3 cache through my developer. My site was acting weirdly, it does not load properly on first instance and when I refresh the page it is loaded properly. This happens with every page. When I told my developer, he told me that it because my internet speed is slow and the page is not able to serve from cache. So why is this happening ? Any clue

  9. Rachael says

    Like the previous person Ss, I am new to WP and I followed this plugin tutorial video (aside from the minify, CDN stuff). I got the same message at the top of my pages in wp admin: “The setting change(s) made either invalidate the cached data or modify the behavior of the site. now to provide a consistent user experience. ” Why did this happen and Should I dismiss it or click on the empty cache button? Help, Please!

  10. imssarl says

    I installed that way, but my site design is all messed. I have my blog installed on a subdomain: blog.mydomain.com ; what should I set for the cdn? cdn.blog.mydomain.com?

  11. Salud Casera says

    I followed the instructions for beginners and all it tooks was three clicks to set it all up (if you are not using CDN). It would be good to have a more advanced version of this post.

    Edit : After testing for speed, it only made my website slower.

  12. bemed says

    I mean I installed W3 Total Cache on the Network Admin but it does not show on the website that I want it to be active.
    Does it handles multi-site installations or it only works individually?

  13. Chad Rogez says

    That was just what I needed. Made the setup much easier and the details allowed me to understand what the purpose of each function was. Thanks for the details!

  14. Kristine says

    Hi, thank you for the tips! I read on some blog, they check all the setting (minify, database cache, etc) without explain what the function does..

    Just setup my w3 today :)

  15. Ashutosh Bhardwaj says

    Hi, This was a great step guid, well i was searching something like disabling w3tc adding query string to my images inserted in post. Actually it breaks the lightbox effect. There seems to be not an option on panel
    Anyway Gud Post

  16. Ss says

    Thanks for this tut, I’m pretty new to wp and all this helps a great deal! I installed and activated this plugin as per your post (aside for the CDN part). However the following message appears at the top of all pages in wp admin: “The setting change(s) made either invalidate the cached data or modify the behavior of the site. now to provide a consistent user experience. ”
    Should I dismiss this or click on the empty page cache button?

  17. Erin Singh says

    Thank you for posting this tutorial. The W3 Total Cache that I installed displays this General Setting. Does this General Setting need to be enabled as well?

  18. Craig says

    Very helpful post! Been using W3TC for quite awhile, but configuring a CDN can be a little tricky. This guide made it a breeze. Thank you! :)

  19. Fauzul says

    Luckily found this short tutorial, my blog page load increased severely after setting up the caches. Now I know better what to turn on and what cache to leave disabled. On shared hosting, in my opinion it’s only good to turn on page cache and browser cache.

    Now going to try it with a CDN. Hopefully things can improve further.

  20. Susan says

    Hi,

    I using a wp multi site install and Cloudflare but I just cannot find any instructions on how to configure W3.

    When activated network wide there is nowhere to add individual distributions for each sub domain.

    Or else I’m missing something!

    Any help is much appreciated

    cheers

  21. Sharon says

    Awesome article! Just what I was looking for – my site is on Hostgator and I’d love to use both W3 Total Cache and Max CDN. Perfect.

    BUT I got lost at the point of creating subdomains. I just don’t understand what that means or how to create one. Just make one up? Find one somewhere on my site. Very confused.

    My site is slow – it gets a C at best on GTMetrixs, and I’m preparing to do a big campaign. I need help.

    Do ya’ll offer support services? I saw that you do free blog set ups. Would accept payment to help set these up for me?

    Sharon

  22. Zubair says

    Hi ! its a nice plugin . but i installed WP Fastest cache instead , so now i am facing a little problem with this . i have used contact form 7 with really simple captcha but after installing the WP Fastest Cache the captcha image is broken in the website. so how to get rid of this or if i install w3tc will i overcome this problem.

    Regards

    Zubair

    • Ashutosh Bhardwaj says

      That might be the reason, because in order to make everything cachable, ur plugin might have added a query string as suffix to image name, and it broke.
      Ask plugin support, they will help for sure

  23. Philip Verghese Ariel says

    Hi Admin & Syed Balkhi.
    What a pleasant land here.
    I am really in search of such a page
    since I am new to this platform called WP :-)
    Recently i created (migrated) my blogger page here with the help of one of my blogger friends. Now I am here via Arun’s page here at WP, and found this place is a good place for a WP beginner like me :-) I think this looks like a bit advanced page to me, so i am going
    to your Archives WPBEGINNER ARCHIVES” to find some basic lessons :-)
    Anyways I will be here to look and study around :-)
    Thanks a lot for all your efforts to put these lessons in a systematic way.
    I am bookmarking this page.
    Have a wonderful time.
    Best Regards
    Philip

  24. Alex says

    thanks guys for your awesome job.

    In the dashboard W3 gives a tip to upgrade to Pro for $99. However all the functions you described can be checked without upgrade.

    Then what this upgrade is for? – should i go ahead and purchase the upgrade?

  25. Carla says

    I’ve been trying to set up this plugin for ages. I just left the default settings and it was very helpful. Now that I have additional settings checked, my site is super speedy. Thanks so much! I did not set the CDN though because I have ClourFlare enbaled.

  26. David Geer says

    I am at the step where I configure the CDN section in W3TC. I added cdn.davidgeer.com and clicked add cname. It added it and said it was reserved for CSS. Then another field popped up to add another CNAME and it said it is reserved for js in . Should I keep adding each of my consecutive cnames to the available cname fields that pop up here in W3TC and then save settings?

      • Adam Lindsey says

        I seem to be having an issue as well. There is the long CNAME url.url.netdna.cdn.com that works, but if I use the cdn.tnmedia.com, cdn1.tnmedia.com, etc. It doesn’t work. Isn’t it better to have JS files pulling form one subdomain and have another pulled form a different one or am I way off base here?

  27. Joe DeCaro says

    I love your site. I installed W3TC and set it up as you suggested. I’m on shared hosting. Now that it is installed, I’m getting emails from readers saying they can’t see our latest posts as they go up.

    Did I do something wrong?

    I set the browser cache settings step by step as you advised.

    What may have cause this new issue for my readers since installing the W3?

    Thanks.

    My site is MetsmerizedOnline.com

  28. Osnilton Mozarino says

    Thanks for the great article!!! As usual very well written and informative.
    Question: I now have a pretty clear idea about CDN, however for a regional or national only web site, will it still be benefitial to use it, as the hosting server(s) are already in the main cities, say close enough? As it seems to be a great thing for international web sites.
    Thank you

  29. Himanshu Goel says

    Hey I have tried installing and managing with this plugin and I don’t own a cdn. do this plugin works with cdn better or we can try some extra efforts in settings to make this work better without cdn.

    Should we actually use caching plugin if we are not running up with cdn services (I am involving every cache plugin)

  30. Zalmey says

    My Question is that, will I get better performance from W3TC without MaxCDN & CloudFlare. Does anyone using it with these 2 and having a good load time?

    • avgjoegeek says

      If setup properly? W3TC/MaxCDN and Cloudflare can significantly speed up your website.

      I used W3TC to configure to use MaxCDN. Then did a manual install for CloudFlare, You don’t need to configure it within W3TC. And it is fast… very fast once it’s all setup!

  31. Andy Crichton says

    Great article. I know just about enough to get myself in trouble, so I did ask the MaxCDN guys a lot of questions before and during setup. I asked a couple of times about the subdomains, I said it sounds cool and logical to have the 4 extra to serve certain files “instantly” – they said the difference in delivery is almost non existent, like 10ms. So I havent bothered. Have you really seen a significant difference with / without the 4 subdomains at work?

    thanks

    PS I didnt know about your affiiation before I signed up to MaxCDN, but anyone reading, wow, the company is brilliant! There was an issue with my forum plugin – when the CDN was installed, the theme broke if you did a quote, and also members couldnt login. MaxCDN analysed it and I gave them admin access and they sorted it. Also the delivery of the site (hosted in Colorado) now in Europe is down from 4 secs to 1.5 according to pingdom.

  32. Sherif says

    Hi,

    Thanks for your time writing this, it is very helpful and i setup W3TC but after that i started getting a strange error about database connection lost every time i try to post new post or edit and existing one,any clue what should i do or where to start looking around

    If i disabled the plugin, this error message is not showing any more and i am able to post normally

    Sherif

  33. Donna Caissie says

    I installed Total Cache several weeks ago, and since then, using my backend has been a nightmare. Every time I tried to do anything in the backend, my browser (Firefox) would hang. I finally deactivated Total Cache today, and now my backend works just ducky.

  34. Hayslan says

    Hey guys, what do you think of leaving somewhere in the post – maybe at the end, a ‘log’ of what section / topic went updated?

    A long time ago I read this article and now for example I have no idea at what point it went updated.

    Would not it be helpful? Let me know!

  35. Steve says

    I’ve tried several times to install caching plugins (both W3 Total Cache and WP Super Cache) and in every case, my overall site performance takes a major hit as soon as the plugin is activated/configured.

    This time, I followed the instructions to the letter as shown above. However (as has occurred in every other time I’ve tried), load time throughout the site has at least tripled.

    The one thing I didn’t do in every case is get a CDN, due to the cost involved.

    So my question is this.. do the caching plugins only work in conjunction with a CDN?

    If so, is there any other way to speed up performance (aside from the obvious – removing plugins, etc). I use WP Optimize regularly.

  36. Abhisek says

    I am planning to go for maxCDN but, i have a dilemma that, i use a sub-domain to store all my media files something like this – media.example.com. As a result Wp-Smush it plugin no more works and i have to compress images myself using png-gauntlet software in windows. Will this sub-domain also create any problem in switching to maxCDN ?

  37. Jeremy Myers says

    First, where is your “after” screen shot from Pingdom? That “before” test was pretty dang good, and I am curious to see if it actually improved.

    Second, I have done a lot of testing between W3 Total Cache and WP Super Cache. I agree with W3 has more options and seems to be a better plugin, but with W3, my server response time nearly tripled! It went from about .25 seconds to almost a full second. Why is this?

    Third, what about Cloudflare integration? Any suggestions one way or the other?

    • Denise Blackman says

      Hi Jeremy. I don’t have the answer to the increased response time of your server with W3, but I had the same problem. Mine, however, was even more severe, with an increase to almost 1.25 sec. I wish someone could answer this. My host provider has no answer either. My personal guess is that the server that is hosting my account, which is a shared server, is over taxed. It is normally what happens when an account suddenly has major performance issues.

      In reference to CloudFlare, I have tried to integrate it, but had problems with my theme. I had to disable it. It made way too many changes to my CSS. I don’t know a lot about CloudFlare, and it sounded great. I just couldn’t figure out a way to make it work with my theme at all.

  38. Dmitriy says

    Great article, very detailed!
    If someone has any questions regarding MaxCDN feel free to ask me.

    Thank you

    • Alex says

      Dmitry,

      Due to localized business activity my website is set for a specific location, Moscow Russia. That said I don’t expect people from other cities to bother me. Do you think I still should go for the MaxCDN?

      Thanks

  39. Raghu says

    One more step for MaxCDN : Add noindex to cdn contents to prevent Google from indexing CDN contents which will create duplicate content issues.

    It’s under Zones > Pull zones > SEO

    Check enable and use custom robots (with default code for robots.txt)

    • Alex says

      Raghu,

      thanks for the heads-up. Do you mean I need to edit robots.txt or there are just default options that I need to check in Zones > Pull zones > SEO section?

      The necessity to touch robots.txt kind of scares me as I am not a coder.

      thanks

Leave a Reply to WPBeginner Support Cancel reply

Thanks for choosing to leave a comment. Please keep in mind that all comments are moderated according to our comment policy, and your email address will NOT be published. Please Do NOT use keywords in the name field. Let's have a personal and meaningful conversation.

WPBeginner Assistant
How can I help you?

By chatting, you consent to this chat being stored according to our privacy policy and your email will be added to receive weekly WordPress tutorials from WPBeginner.