A client came to us through a host that we work very closely with. Their home page was taking 12-20 seconds to load. They were using WordPress with a typical collection of plugins (usual suspects). We were able to reduce the page load time to just 1.2 seconds by addressing several distinct elements.
Most domain owners using WordPress and experiencing poor performance typically go their host to get relief. For hosts that provide free support, this is a nightmare scenario as these performance issues are always caused by poor WordPress implementations.
Good hosts provide immedaite relief by providing more robust hardware solutions (with higher fees). However, the domain owner is now on a path where they are constantly battling their application and continually upgrading their servers as traffic increases. The domain owner is never happy and eventually loses faith in the host and moves their problem site onto the next host where they experience the same exact issues.
More experienced hosts not only provide a short term solution, but also identify the application as the issue and recommend a WordPress optimization specialist (Sound Strategies and others). These specialists focus on optimizing WordPress performance, configuring the server properly, and suggesting the correct hosting solution.
In this case, we went through the entire application and found and fixed any issues that were caused by plugin conflicts. At that point we were able to identify any slow running queries and correct them. We also fully enabled caching within the application. Once these steps were completed we were able to focus on the server and hosting issues.
Server Tuning and Optimization
WordPress is very resource intensive and there are many server tweaks that must be done to get maximum performance. Every WordPress implementation requires slightly different tuning based on the nature of the content and the capacity of the server. We needed full access to the server (including root access) to properly tune it. This process can take several days as the server must be monitored during peak load times. Once the server was properly tuned, the only remaining item was the hosting solution.
There are at least two distinct major elements in every hosting solution; the server(s) itself and the content delivery network (CDN).
In some case multiple servers are used. Typically, the database resides on one server (database server) and there are one or more additional servers that handle the web requests (web servers). This is known as a server cluster. An additional element is required to balance the load across the web servers. There can also be multiple database servers each with a synchronized copy of the database. An additional software element is required to keep the data synchronized. We have yet to see a case where this is required for WordPress other than as a temporary measure while the site is being optimized.
In most cases a properly optimized WordPress appication can be hosted on a single properly tuned server. The key is limiting the server work load to content management (WordPress admin), supplying expired, changed, or new pages, sourcing images to the CDN, and updating statistics.
The content delivery network (CDN) is the key to greatly reducing server load. The CDN is used to serve up all static content and properly configured will reduce page load times dramatically. The single biggest problem is that developers choose to use the Amazon S3 service as a CDN. This is NOT a CDN and the performance does not justify the possible (but not guaranteed) cost savings in ANY examples. In this case the Amazon S3 was replaced by Akamai and the page load time decreased by 6 seconds to just over one second. This is not an exception, this is a typical improvement for sites that load alot of images.
If all three major areas of optimization and performance are properly addressed the following benefits are achieved:
- User experience improved
- Better performance in search engines (Google penalizes slow pages)
- Great traffic capacity
- Lower hosting costs
- Ability to handle large traffic spikes
In this specific case, search engine traffic increased by 200% as Google was able to properly cache pages (that previously timed out) and the penalty for slow loading was lifted.