We get frequent questions from WordPress clients with W3 Total Cache (W3TC) and RackSpace Cloud Files (RCF) content distribution network (CDN) about how to make changes to the website visible.
First some general notes:
- Content changes or updates to pages or posts do not involve the CDN so no special actions are required. W3TC will automatically flush old pages and post revisions from it’s caches.
- Media files uploaded through WordPress admin will be automatically uploaded to the CDN and can be immediately used in post or pages with no additional action.
As an example, let’s assume that you’ve modified you themes primary stylesheet at:
You made the modification by downloading the file, editing on your workstation and then uploading via SFTP back to the server. In this case W3TC has no way of knowing that you’ve made a change to the file so it does not know that the file needs to be uploaded to the CDN.
First you’ll need to sync or upload the file to the CDN:
- Login to WordPress admin.
- Go to Performance -> CDN
- Click the appropriate upload button in the General section. The button will depend on what type of file you’ve changed. In this example we need to click the “Upload theme files” button.
- A popup window will open when you click the button similar to this: In the popup window, click the “Start” button. The sync process will start and you’ll be able to see as each file is examined. If the file has not changed since the last sync the it will be marked “Object up-to-date”. If the file is now or has changed then it will be marked with “Ok”.
- After the sync process completes you can close the popup window. If you have many files it may take several minutes to several hours to fully sync.
Now the new or changed file has been uploaded to the CDN. If it’s a new file then it will be immediately available for use in your site. If instead you are changing a file then we have to take an additional step and “purge” the file from the CDN.
CDN’s function by distribution content to access points close to the user. For large CDN’s there might be dozens or even hundreds of access points. When a user requests a file, the request is routed to the closest access point. The CDN infrequently check back with your web server for changed or updated files. The frequency of these checks is call the “Time to Live” or TTL. By default RCF sets a 24 hour TTL on all files. So after uploading a change, it may take up to 24 hours before the change if visible on on access points. This can be a problem for our CSS change as users on different access point might get different versions of the file.
W3TC includes a “purge” feature which you can use as follows:
- Login to WordPress admin
- Go to Performance -> CDN
- Look for the Purge button above the General section. Click the Purge button to open the CDN Purge Tool popup window.
- Enter the relative paths of each file that you want to purge into the “Files to purge” field.
- Click the Purge button and wait for the process to complete.
- Close the CDN Purge Tool window.
Purging on the CDN is not an instantaneous process. I may take up to about a half hour for all access point to receive and honor the purge request but this is still much faster then the 24 hour TTL.
We have had mixed success with the W3TC CDN Purge Tool. If I need a change purged as fast as possible then I prefer to run the purge from the RackSpace Cloud Files control panel as follows:
- Login to https://mycloud.rackspace.com
- Go to Storage -> Files
- Drill down on your container and then to the file that you want to purge.
- Click on the Gear icon next to the file to open the drop down menu.
- Select “Refresh File (Purge)” from the menu. A small confirmation dialog will open.
- Click “Purge File” button in the dialog to complete the process.
Again purging on the CDN is not an instantaneous process. I may take up to about a half hour for all access point to receive and honor the purge request.
Is there anyway to make updates to the CDN faster?
Short answer is “no”. The TTL and propagation delay is the nature of the CDN. Generally the benefits of distributing content win out over the update delays.
But two notes:
- New files do not experience any propagation delay. If you want to change a file and have it propagate instantly then change the name of the file so it is seen as a new file by the CDN.
- You can lower the TTL of the CDN container. If you have a big setup of updates planned, then it might be a good idea to lower the TTL a few days in advance so that you minimize propagation delay.