Build a Self-Hosted WordPress Site - Part 2 - Quick Cache SettingsBuild a Self-Hosted WordPress Site Part 2 - Cache SettingsBuild a Self-Hosted WordPress Site - Part 2 - Quick Cache On

In the first blog post in this series on how to build a Self-Hosted WordPress site, I explained how to get the basic plugins installed. Now it’s time to configure those plugins. First we will look at Quick Cache. This will work best with the appropriate supporting software on your server, which I will cover in a separate series of posts focusing on server configuration. At the top in orange you can see Quick Cache is off. A few paragraphs down, it tells how you can test if Quick Cache is working. Using Firefox, all you need do is open a Private Tab or Window and open your site in that, and view the source. If the code isn’t there, go back to plugins and select Drop-ins at the top. You will see you need to check if the WordPress wp-config.php has the line define(‘WP_CACHE’, true); in it. If it does not, you will need to make a manual edit of the file to add that line. See my separate guide on editing the wp-config.php file. Anyway, you simply switch Quick Cache on (the big yellow option) and save the settings at the bottom of the page. After I have checked that it IS working, I go back and select the ‘No, I don’t want the source code to contain any of these notes.’ I have tested Quick Cache against 6 other cache plugins, and this was a long way the fastest, with my home page loading in the Pingdom tests at about 0.35 seconds!! Before I did any fine tuning of my website, that was typically 12-15 seconds! (more…)

Build Your Self-Hosted WordPress SiteIn the next few blog posts I am going explain how to build a Self-Hosted WordPress site. Yes, that’s right. No debate over which Content Management Software (CMS) to use. It’s WordPress. Sorry if that offends you, but I have been doing web design far too long to be bothered with anything else. For 99% of users, WordPress is fine and dandy. For the purposes of these blog posts, I am going to skim over some of the really basic stuff (I might come back and add a bit of detail). I know that you can develop a site on your local PC or Mac, but the first time you get stuck, anybody who tries to help you will want to see what you have, and that means you need a web server. Unless you want to do a simple blog, forget the hosting packages, and become a self-hosted site.

Build Your Self-Hosted WordPress SiteThat means you should get a domain. I use GoDaddy. I can see no reason why you shouldn’t do the same. Priced in US Dollars and no sales tax, they are usually cheap and effective. You need a web server. There are hundreds of cheap ‘WordPress Specialist’ web hosts. Forget them. Forget all the special ‘free’ hosting deals. The bottom line is, less than US$40 per month is cheap – if you pay annually you can often get a discount on this, sometimes as much as 25% off. I have been through all manner of web hosts and deals over the years, so you might be wise to avoid all that heartache. My preference is for what is called a cloud web server. But, beware, my experience over the last year makes me wary of Cloud Servers that use OnApp for management of the server; my sites used to ave this and it often crashed, leaving me offline for a day or more each time. On a budget look for OpenVZ and for performance at a price use KVM, here is a comparison.

With a Cloud Server, this means that your site does not reside on one machine, but shares its resources across a lot of physical machines. This is a much faster and more reliable solution. Different hosts may use a different name for this type of package, but this is what you need. Unless you have a big web site in mind, you will want to start with a Virtual Private Server (VPS) with a Unix operating System (such as Centos), Apache, MySQL and PHP. To make managing it easy, you will want WHM, cPanel and EasyApache installed. Most importantly, you will want a Managed Service. That means, when it goes wrong, you get help. If you can persuade the host to do it for you, installing nginx as a reverse proxy server for Apache will speed things up, but make things a bit more difficult to manage.


With all the changes in it, I have been accommodating Ultimatum Theme 2.7.2 (a bug fix version, with another expected in the next few days). First up was providing a ‘sticky’ top menu, courtesy of a plugin called Sticky Menu (or Anything!) on Scroll. The trouble is, it does not work nicely with the UberMenu plugin I was using. Ultimatum 2.7.2 has a Bootstrap menu option. Using this, in the default position, with search showing, works well. Goodbye UberMenu, its associated additional plugins, and the code to load its revised stylesheet.

Also, I noticed that the EU Cookie plugin, which gives new visitors a warning about cookie use (stupid EU legislation), does not work with Ultimatum Theme 2.7 onwards, so I replaced it with (the nicer) Cookie Notice plugin. A number of other plugins have gone too, plus quite a bit of the custom code in the child theme functions.php file. It’s looking good.

One part of Ultimatum Theme that does not appear to have been updated, nor does it look like it will be soon, is WooCommerce Connect. Here’s hoping for the future of that feature.

The guys from Ultimatum Theme have just released version 2.7.1 (from 2.6.2) and with that number sequence you wouldn’t expect much to have changed. How wrong you would be. Whilst some of the settings and admin pages have remained the same, a huge amount has obviously changed. Page loading is now very fast and assets (external javascript and css files) seem to have been properly managed. This means my code bloated functions.php file can now be slimmed down quite a bit. Heartbleed API continues to be a problem, so to manage this I have (again) removed the custom code in my functions.php file and replaced this with a new plugin called Heartbeat Control.

Another big step forward for Ultimatum Theme is far more extensive css tweaking options for the chosen base theme, and, for the first time, beta support for Bootstrap 3 and Bootswatch 3 Themes. As our site is based on Bootswatch 3 Darkly, this has helped remove a lot of custom code, and the theme works more smoothly. Page load can now be less than 1 second!!

With me now working on the shop for our site, I thought I would wind up the development series of blog posts with a summary of what useful WordPress plugins are still in our design (in alphabetical order):

  • Autoptimize. This plugin helps optimize your site loading time. It concatenates (joins) all scripts and styles, minifies and compresses them, adds expires headers, caches them, and moves styles to the page head, and scripts to the footer. It also minifies the HTML code itself, making your page really lightweight. There are some advanced options too, but I have left it with the default HTML, CSS and Javascript optimization set to ‘on’. One of the things this plugin does is to move Javascript to the footer, but beware, some plugins don’t like this. I have avoided using any plugin that has this issue.
  • Avatar Manager. I have switched off Gravatars. Whilst our site has a blog, comments are disabled and I do not think many of our shop customers will have Gravatar accounts, nor want one. The functions.php code (see our previous blog post) we have switches off loading of the the Gravatar assets. Avatar Manager for WordPress is a sweet and simple plugin for storing avatars locally and more.
  • Dequeue Font Awesome. Does what it says, and removes all Font Awesome stylesheets added to your theme by certain plugins, to not be loaded by several times, if your theme already make use of Font Awesome (as Ultimatum Themes do, which is what we use). Use also with the next plugin, Enqueue Font Awesome CDN.
  • Enqueue Font Awesome CDN. This plugin automatically enqueues the Font Awesome CSS file from the MaxCDN CDN. This means our theme no longer loads a local version, but uses the MaxCDN version instead.
  • Responsive Lightbox by dFactory. This plugin allows users to view larger versions of images and galleries in a lightbox (overlay) effect optimized for mobile devices. Note that some custom code is needed in the functions.php file to work with WooCommerce, again see our previous blog post. Also note that as Ultimatum Theme also loads PrettyPhoto, I had to dequeue the Ultimatum PrettyPhoto style and scripts. I have this set to PrettyPhoto with Facebook style.
  • Use Google Libraries. A number of the javascript libraries distributed with WordPress are also hosted on Google’s AJAX Libraries API. This plugin allows your WordPress site to use the content distribution network side of Google’s AJAX Library API, rather than serving these files from your WordPress install directly.
  • Wordfence Security. The first paid for plugin on this list. Wordfence provides real-time distributed protection for your site, and I also use the basic cache that is included, but not the Falcon engine.
  • ZWoom – WooCommerce Product Image Zoom. A rather simple plugin, allows image zoom on mouse hover.

And a few more I am considering:

That’s all for now.