WordPress is an amazing platform for creating great content. One of it’s downfalls is that out of the box it’s not great at delivering your great content to lots and lots of people very quickly. Since WordPress is based on PHP and a MySQL database, it needs to literally create every page before you can see it on your screen. This involves processing code, making trips to the database, then wrapping it up and sending it to your web browser.

Luckily, industrious coders have created several solutions to this problem, and you can be serving thousands or hundreds of thousands of pages per day without a problem. The easiest to impliment solution is “caching”. Since most of your WordPress pages and posts are not changing second by second, they don’t need to be made “fresh” every time someone asks for them. Instead, you create a “flat” html file that you can send to people who ask for your page. This is great because it eliminates the need for WordPress to go back and forth to the database. If you’re on shared hosting and your site speed is suffering, this is the fastest easiest way to see dramatic improvements as shared hosting is notorious for having slow databases.

The plugin to most easily accomplish this is called WP Super Cache. It creates flat files it serves and if a page changes, it will generate a new flat file just as soon as it can. There is even a mode called, “Lockdown” that you can enable to see even higher performance gains. This is really important if you’re trying to squeeze every last bit of power out of your server — something you’d be doing if you hit the front page of Digg or had a post go hot on Slashdot. These sites will send vast amounts of traffic very quickly and can crash your server if you have WordPress configured out of the box.

Perhaps you’ve got a pretty popular website with lots of pictures. Your site is speedy, but the pictures are slow to load and are starting to use up a lot of bandwidth. This can be an expensive problem not just in terms of hosting bills. If customers are getting impatient for pictures to load, you’re potentially losing visitors to nothing other than poor attention span. You could have the best website in the world, but if it’s slow people will leave. Google has gone out on a limb to support this fact. They now include your site speed as one of the factors determining your ranking on their search engine.

The answer to large files could be a Virtual Dedicated Server AKA Virtual Private Server, or it could be a CDN (Content Delivery Network). The advantage to using a content delivery network is that you can stay with your current host, and just use the CDN for hosting the high bandwidth items. One of the best CDN’s is Amazon S3, or Simple Storage System. They have datacenters all over the world with huge pipes to the internet, ready to serve out your pictures, video, or audio at a moments notice, all the while you remain on your shared hosting. The advantage to this approach is that you get to use the “Costco” model of hosting: because you’re buying in bulk (With thousands of others), the prices are dirt cheap. S3 prices start at .15/GB for storage and .15/GB for transfer. I’ve gotten bills from amazon for $0.36 for a whole month of hosting. Since you’re only paying for what you use, it can be very cost effective.

Taking all of your pages and moving all your pictures can be a very complicated process. To expedite this, there is a phenomenal plugin called W3 Total Cache. It has all the features of WP Super Cache to make flat files, but it will also serve as a liaison between WordPress and Amazon; automatically uploading your images to Amazon as you upload them to WordPress. Additionally, it will replace all the link you’ve created to locally hosted files with their S3 URL’s. If you ever decide to turn off the plugin, your page just goes back to the way it was on your shared hosting. The performance between hosting with Amazon S3 and shared hosting can be orders of magnitude different.