Bear in mind, I’m not an expert on the subject and to deal with everyone’s individual issues may be difficult. Follow the guide, and if you hit a snag then it’s likely that someone else has also, so a quick Google search reveals a lot. This plugin is difficult to configure perfectly for optimum performance, but even with some basic settings you’re going to see some form of speed improvement.
Some things to bear in mind though – if you’re running anything on a shared hosting provider, your results will vary and you may even see little or no improvement in performance. There is only so much a plugin can do for you – if the disks are slow, if CPU cycles are limited, and your database provider is running slowly in another remote part of the world….well, there will be no miracles. This plugin will perform best for you when running on at least a virtual private server level of hosting. But that’s not to say you shouldn’t give it a go anyway even if you are on shared hosting.
Activating The Plugin & File Permissions Errors
Assuming you’ve downloaded and tried to activate the plugin, you may find a slew of errors appearing related to permissions. Tackle them one by one as the plugin instructs and you should be fine.
1. WP-Content Is Not Writeable
Log into FTP and change the file permission information for the folder “wp-content” to 777
2. Unable To Edit WP-Config.php
Easiest to just edit this file yourself. Just open it up and add the line as the instructions specify. This turns on WordPress built-in caching abilities that w3TC needs to work.
3. .htaccess Is Not Writeable
Again, change the file permissions on this, via FTP, to 777 temporarily. The plugin will also give you a helpful reminder to change the wp-content permissions back once you’re done.
Bear in mind that when preview mode is enabled, the changes won’t occur until you click deploy – or you can just turn on preview mode and work with the site live.
The button to perform a compatibility check should be your first action, as it will determine what w3tc can actually do for you and will be the primary limited factor. If you have your own private server then configuring areas in red or orange shouldn’t be difficult, but on shared hosting you are generally stuck with what they give you. Here’s some helpful tutorials on how to fix some of the individual points it will likely pick out as not optimal:
- How to install an Opcode Cache
- How to install Memcached extension
- Enable Mime-type detection
- Setting your PHP timezone – just need to add a date.timezone = “America/Chicago” or similar to your php.ini
Note On CDNs: Configuring a CDN would take another article and is something I might cover at a future date. For now, be sure to disable the CDN functionality.
Now that we have some caching abilities set up and the plugin installed and activated, let’s look at configuring the individual components of the plugin.
If you have installed some caching extensions on your server or your shared host provides one for you, you should be able to select them on the main configuration page for page caching and others too.
The individual configuration for page caching is fine as defaults, so leave them as is.
This is where the difficulty comes in for most people, but luckily there is a help wizard to get you started. By default, nothing is actually minified so you will need to use the wizard or manually enter filenames if you want something to happen. I’d suggest running the wizard, which will search through your theme files and identify any scripts and CSS being called.
- Analytics and tracking codes shouldn’t be minified, so uncheck them.
- Amazon and other ad modules shouldn’t be minified.
- The order is very important, and should be minified in the order they appear in the theme code.
- Don’t enable comment removal if using jQuery.
If you’re using jQuery plugins such as cufon, be sure to minify the JS in a logical order: jQuery -> cufon -> fonts. I also had issues when embedding outside of the head so leave all embedding in the head as the default is the safest option.
Everything else should work fine with the defaults. Once you’ve confident you’ve got it working, head on over to pingdom again to test the speed. Using only the basic settings above, I managed to get my site from 10 seconds down to 5.5 seconds, and that’s without any additional server-side caching modules.
For setups beyond the basic, the WordPress.org W3TC plugin forum is a great source of troubleshooting information as you can be sure you aren’t the first to have difficulties. The plugin creator is also often on hand to help out, which is rare for free software of this quality. You’re also welcome to post a comment here or on the answers forum with your specific issues, but I can’t promise anything.
Let us know how it works out for you, and how much of an improvement you see in your site.