Settings to get the most out of W3 Total Cache

I’m running a dedicated server which hosts one website – our WordPress install.

Currently we’re getting around 400,000 pageviews per month and that will likely rise quickly over the coming month – and hopefully exponentially from there onward 😉

Read More

I want to install the W3 Total Cache plugin but after reading a few reviews/support forum posts, I’m concerned that I’ll potentially slow the website down rather than speeding it up.

I’ve installed it, had a quick play, then uninstalled it due to a few minify problems (see #2).

My question, as such, is twofold.

  1. Knowing that my server is a good spec, good network and hosts only this website, are there any options I should consider enabling (or disabling) to get the fastest site-usage possible?
  2. How can I stop the plugin from caching my forums? Simple Press is located at /forums/ and the JS minify breaks a number of features of the forum (TinyMCE editor, profile amendments, etc). I tried adding *forum*.php to the never cache option, but it killed my site (500 error; had to remove the W3 Cache lines from .htaccess).

Thanks in advance,

Related posts

Leave a Reply

3 comments

  1. I’ve seen many more complaints about W3TC than WP Super Cache: WordPress › WP Super Cache « WordPress Plugins. W3TC loads the .htaccess file with many directives and tends to conflict with server side settings.

    With Super Cache, try PHP caching and follow the instructions to add an .htaccess file to the cache directory: http://wordpress.org/extend/plugins/wp-super-cache/installation/

    Disallow /forum caching in WP Super Cache, too.

    Minifying js can help with site speed, but not as much as other things, such as server caching and browser caching.

    But you also need to work with your dedicated server and correctly configure apache and mysql for high loads. See http://httpd.apache.org/docs/2.0/misc/perf-tuning.html and use mysqltuner to adjust your my.cnf file https://github.com/rackerhacker/MySQLTuner-perl

    And clean out your database of post and page revisions (and optimize the database after you do this):

    DELETE a,b,c
    FROM wp_posts a
    LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
    LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
    WHERE a.post_type = 'revision'
    

    And then add define ('WP_POST_REVISIONS', 0); to wp-config.php to prevent revisions from being saved again. See http://codex.wordpress.org/Revisions

  2. The best thing to do here is to set the Minify options to manual.
    The automatic mode automatically combines your javascript files – and therefor a lot of the plugins break, because of mixed document ready and basic javascript/jquery functionality.

    Try this:

    • Set the minify mode to “manual”
    • Open the source Code of your site
    • Take all the Javascript ressources (You may have to skip Jquery, as
      it has to be loaded seperately sometimes, also the fancybox-script),
      and add them to the minify settings. Be sure to get your dependecies
      right, otherwise your Javascript functionality will break.
    • The Javascript Files from the Footer are not that hard to manage, you
      can just combine them in your included compressed footer javascript.
    • If something breaks (and be sure to test it when you are not logged
      in!) remove the javascript files that cause the error, and you should
      be fine.

    You can also set different cachings for different templates – that should do it for your forum, too 🙂

  3. It seems your only trouble is Minify Javascript for now. Don’t fret over as I’ve experienced i before and will get into that in a bit.

    However, according to Google PageSpeed, Minify Javascript is only medium priority.

    For your site, the higher priorities which W3 Total Cache does very well are:

    • Browser cache
    • Page cache

    Once you get them right, your site’s performance should be much improved.

    Now, onto Minify Javascript, I there are two main cases

    • Dependency – A script requires a library e.g. Jquery and it’s included before the library
    • jQuery noConflict – the $ is not accepted – you’ll probably have to correct all the scripts yourself

    The above problems could happend to Javascript outside of plugins, it should be easy to correct them.
    Regarding the plugins’ Javascript, there is no way else but to correct them and it could be tedious and difficult, you may have to use other plugins if you can’t fix the ones you’re using.