WordPress is an excellent content management system, aimed at simplicity based on its core blogging focus. One of the downsides of it though is that it runs a lot of heavy PHP in the background and can be quite database dependent. This means that each time any user loads any page the main PHP script along with any plugins will run and any relevant database queries will be processed, potentially placing a lot of load on your server CPU and using a large amount of RAM. This is ok if you only ever have a few users accessing your website at a time, or if you are spending a lot of money on high end hosting and content delivery. On many servers though, once you start to get up there in simultaneous page loads, this can take a toll on your server. Initially, it will start taking longer to load pages. The more simultaneous page loads you add, the more likely you are to start seeing processes on your server crashing and your site no longer responding. Once the requests for new page loads start to slow down, the server will start responding again, but what business might you have lost while it was down? Many servers, including ours, track how much load an individual script is putting on the server and will limit it if it gets too high.
I recommend all WordPress websites run a handy plugin called WP Super Cache, and this is a requirement for all WordPress websites hosted on our servers. It works by caching a static HTML file for each page on your website. So when anonymous users or users who have not commented on your blog before access a page on your website (which equates to the majority of visitors on most websites) instead of running the full WordPress PHP script and sending a query to the database the server just sends the cached static HTML file. This is much lighter on server resources and will allow your server to cater to far more visitors than it otherwise could while saving you money on your hosting bill!
For a guide to setting up WP Super Cache, have a read of my blog post here.