I'm basing this article on the build of WordPress sites that I'm currently working on. The sites I build tend to be blogs or small business websites. A question that is often asked is, is there a difference between a blog and a website?
I'll document each step I take to build the sites in brief, here. I'll also point out anything relevant that I think may help my readers that any of the my site builds turn up.
This is an important step in your WordPress website or blog build. You'll need to find a domain name that is available. This will either be because the domain name is not owned by anyone currently, or it is owned by someone, but they want to sell it.
Try to think of a domain name that sums up what your site is about - or sounds as if it might.
Having thought of a domain name you must check it's available and then buy it. I buy my domain names from Namecheap.
I've used a number of different hosts in the past, and they've all been good, but at some point something went wrong, and made me want to change to another host. Some of my previous hosts have been BlueHost, SiteGround, LiquidWeb, WPX Hosting, FlyWheel and WP Engine.
Out of all of those, the one I liked the best was WP Engine. If you're interested in WP Engine here is a discounted link for hosting with them. They are excellent if you want a mostly hands off approach to hosting with excellent support.
Once you have a domain name and hosting next you need DNS (Domain Name Services) Management. DNS Management allows you to control the relationship between your domain name and the server it is hosted on.
It's a really good idea to have this handled by a separate party so I always use Cloudflare. Cloudflare is great because it does a lot more than merely manage your DNS - it will also act as a form of CDN.
Cloudflare will also help your site go faster, and help protect it from hackers. You'll still need good hosting to serve your content quickly, and to protect your site, but you get a lot for free from Cloudflare.
Please note that although I use Cloudflare as a CDN, I use a different CDN for my images. But I'll talk about that in another blog post.
Cloudflare as already mentioned will act as a CDN for your site's static content. But it is more than an ordinary CDN. It also prevent malicious traffic from reaching your site at all by analysing potential threats based on a number of characteristics of the traffic.
Cloudflare also masks the site's IP address so attackers cannot directly attack a server. This is assuming you have set the DNS record to orange clouded.
At first glance, Cloudflare is the CDN in my configuration. Normally this would mean images used on the site would be stored in the WordPress media library. They would then, as part of the caching functionality be automatically included in a CDN distribution on Cloudflare. But I don't like using the WordPress media library. I find it unattractive for the following reasons
The best media library for me, is an empty one. To that end I keep all my images on Amazon S3. To make sure they are delivered via a CDN, I also use Amazon Cloudfront. I am doing this manually at present - but hope to create a system to do process images automatically. This would simplify my current workflow and improve the result.
The disadvantages to my current solution are that I have no srcset solution. Also many plugins rely on the media library and if you don't use it, you can't use those plugins.
However using Oxygen and Advanced Custom Fields I find I don't need plugins to create sliders and galleries. The srcset problem remains, but is something we will program our way around in the near future. So in summary this is how my CDN setup looks:
I'll update this post as I do each step on the sites I'm building