Here are a some things to try if you find that high traffic is limiting your blog’s performance.
If you have truly high traffic, you should consider splitting your WordPress application into as many separate layers as possible, and serving those layers separately. Instead of a single host machine that runs your web server and MySQL/MariaDB, running in concurrent layers will help your site’s speed and resiliency.
Here is an example:
- Apache2 / nginx web front-end server(s) – to handle actual page rendering and site administration.
- MySQL/MariaDB database server – or master/slave, using a read-replica.
- Varnish / nginx HTTP proxy layer – to handle initial requests from users.
- CDN or image server – to serve media files that support your site.
Your site will not only be able to take more load in this architecture, but you can also then identify bottlenecks or stress-points that need you should address specifically. Maybe your MySQL/MariaDB database is performing poorly, or Apache2 needs more CPU, and so forth. With the right design, these layers can also scale out and in, or up and down, with your traffic.
W3 Total Cache (W3TC)
Is the latest generation in WordPress performance plugins, that combine the research of web development authorities to provide an optimal user experience for WordPress sites.
W3TC is unique in its ability of optimizing server side and client side performance, adding functionality otherwise unavailable natively:
- Page Caching: W3TC helps to decrease response time, creating static HTML versions of pages, which allow web servers to serve them without invoking PHP. It automatically updates the cache when you add comments or edit pages.
- Database Caching: Database queries are cached. This allows many sites to reduce the time needed to generate new pages. This is mainly useful for those sites that receive a lot of comments.
- Headers: W3TC manages the headers that control the caching of files in web browsers, reducing server load and improving the user’s perceived performance.
You may use W3TC to optimize WordPress in both single- and multi-server environments through shared or dedicated hosting.
WP Super Cache
Is a static page caching plugin for WordPress. It generates HTML files which are served directly by Apache without processing comparatively heavy PHP scripts. This helps you to make significant speed gains on your WordPress blog.
WP Super Cache is a fork of WP Cache by Ricardo Galli Granada. WP Cache can also cache your WordPress blog pages and deliver them without accessing the database. Anyway, we don’t recommend to use any longer. WP Cache still needs the PHP engine to be loaded in order to serve the cached files.
However, WP Super Cache gets around this problem, it allows HTML files to generate and serve without ever invoking a single line of PHP. Using WP Super Cache lets your server to serve cached HTML pages at the same speed that it serves regular graphic files. You can use WP Super Cache if your site is struggling to cope with its daily number of visitors, or if it appears on Digg.com, Slashdot.org or any other popular site.
If your blog has a high number of code and design elements you might notice the effects of high traffic more.
For instance, if the front page of your blog calls upon 8 graphics to create the “look” of your blog’s design. You should add this number to the various WordPress template files it takes to build your page. At least, this includes the header, sidebar, footer, and post content area, creating four more “calls” to files on your site. For 100 visitors, the files may load 1200 times. For 1000 visitors, the files are loaded 12000 times, increasing both bandwidth and server activity.
WordPress Plugins are also files that your WordPress Theme “called” . These plugins make queries to your database to generate the information on your blog. The more WordPress Plugins, the more queries to your database. You should combine all these access files and database queries with an exponential increase in visitors, and you have a lot of demand on your site.
You can lower the number of accessed files and the queries to your database during periods of heavy traffic by:
- Limiting the number of graphics on your blog. You can do this editing the stylesheet and template files of your WordPress Theme.
- Turning off a few WordPress Plugins temporarily. Go through your list of WordPress Plugins to see if there are any listed that you could live without for a day or two.
You should keep access to files and your database to a minimum as much as possible. Just reactivate and restore these features after the heavy traffic volume has died down.
Actually your server is only as capable as your network provider. If your provider doesn’t provide the bandwidth you require, you might need to negotiate an increase, or find a different provider that can provide you with the bandwidth that your traffic requires.
Hope this article was helpful for you, guys!