I notice that many WordPress tips websites recommend using caching plugins. I tried it on one site that gets a relatively small amount of traffic, and hardly notice a difference in load time. Is it smart to set up as a general rule, or does it it really depend on the site traffic? Same question for Content delivery Network.
Static page cache is trade-off of resources for speed.
The larger and more complex site is, the more resources it takes to cache it. Since there is no such thing as unwanted speed, static cache of small sized site is one of the best performance improvements possible. Especially on shared hosting where other tweaking options are very limited.
CDN for serving media images is a little more complex:
It makes static resources load faster, by bringing them closer to the visitors.
It relieves main server from serving static resources, freeing it up for pages and specialized tweaking.
However on shared hosting you don't care much about offloading tasks. You are already sharing resources with multiple sites and less serving media won't make a difference for server overall. Neither you can tweak server stack.
Small sites also unlikely to serve enough content to make CDN more cost-efficient than serving from hosting.
Overall my perspective is that for small site:
- static page cache is no-brainer;
- CDN for static is resources is extra luxury.
Another solution, both an alternative and one that complements server-based caching, is CloudFlare. It provides the speed improvements/uptime of a CDN, with powerful, hands-free security. And it's free.
(And for users of W3 Total Cache: the two work hand-in-hand.)
CDN's usually cost money, but cache plugins are free. WP Super Cache is about the easiest to use, and with 2.4 million downloads, it's the most popular. Read the extensive FAQ for details. http://wordpress.org/extend/plugins/wp-super-cache/