Setting up a quick, slick, self-hosted WordPress blog in 2017
WordPress is still known by some as merely a blogging platform. And it does that well. I never use it for that though, I use it as a fully fledged CMS. It does this just as well (the only drawback of WP that I consider at all worthy of attention is scaling for huge audiences. But even then new technology is becoming available to WP to allow for this).
Most of the time the WordPress sites I develop do not require a blog, and when they do, they tend to be very customised, breaking with a lot of the out-of-the-box standards, usually to limit and simplify the UX for both content creators and content consumers. Because life is short.
This site (owmc.me) is an exception. I have a new web host which came with a free domain name and I thought, what the heck, maybe I can get into the habit of blogging.
So, I decided, lets not make this a development job. Lets rediscover WP’s native power as a blogging platform for the layman and see what this can really do in the current year.
Note: This post concerns a self hosted wordpress.org install, not Automatic’s wordpress.com’s solution.
Note 2: If you are trying to implement these solutions on a custom built WP site, you may not be able to, or you might break your site. This post is regarding a fresh install of a site with readily available prebuilt themes and plugins. A custom site can be a very different animal.
OBJECTIVES
- To use a free stock WP theme from the WP repository
- To use free plugins from the WP repository
- To criticise where possible the processes and features of WP, the theme and plugins.
- Not to touch any code
Wonderful. Let’s get started.
WORDPRESS INSTALL
I used the “1 click install” of WordPress from my web host’s dashboard. Web hosts invariably have such an option for WordPress, Drupal, Joomla, and a litany of other web apps, often many of which are a waste of time. I have “Cloud” (sic) web hosting account (so no cPanel with Softaculous, which you might have). The 1 click instal was simple, though no progress bar and no form or ability to preset the install’s settings. Shame. Can’t even set my own username. So once logged in i created a new admin user with my preferred username, logged out, logged back in with my new admin username , and deleted the undesirable preset admin. How painful.
OK, now i see that the install is out of date and needs updating. OK, I update my install. What’s this? The 3 stock themes packaged with the install are also out of date. I hate that I have 3 default themes to choose from. I’m not going to use any of them anyway, but it is good to have at least one back up theme, and using an official WP theme is right and proper for such eventualities. So, I delete the 2 elders of the themes and update the most recent.
OK, well that all felt like dying slowly. But finally I have a clean up to date fresh install.
At this stage, I would normally delve into the site settings. Instead, I decided to install a theme.
INSTALLING A THEME
So I’ve committed to using a free theme from the WP repository, one which is simple, minimal and actually aesthetic. Which is rare for a free theme. I went to Appearance in the Dashboard menu and typed “blog” into the theme search bar. I flipped through previews of the first dozen or so themes that came up for this tag, and, with the exception of 1, they were all absolutely abysmal. But one didn’t just stand out, it veritably commanded attention. That theme was Smallblog (Version 1.5.8) by Monkey Themes. So impressed was I that I had to investigate the developers own site. Clicking on their link sent me to their site via https. Https is great, when it works. When I did it however their https was down. Not a good sign. So immediately my mind considers how good future theme maintenance will be. Are they going to ever update this theme with the latest standards and security enhancements, or is this just a flash in the pan to show off their skills. Regardless, I don’t expect much from a free theme and this one had already exceeded my expectations.
So I installed it.
Straight away the Dashboard lures you to the theme’s “Customisation” tool. And it’s good. In no time at all I’m able to set the site name and tagline as well as refine the appearance and features on the theme. Social media, logo and site icons, header image, footer text, sidebar items and menus. Slick, pretty much everything needed to get the site ready for public consumption is done. This theme is good.
At this stage I decide to get some content in to really get a feel for how it looks on the front end. So I begin typing this post. On public front end of the site it looks great. I haven’t put a menu in yet. I’ll do this when I get my post categories set up. But I have a good impression of the look and feel. the typography is lovely. The side bar is perhaps a little close to the main content area. And the leading (line-height) of the post titles in both the main content area (too tight) and the sidebar (too loose) are off. But overall it’s clean, light and fast. And it’s responsive, and it does it well. Really impressed am I.
Ooh, one final thing on the customisation options for the theme, it would be great if we could have an option to set the spot colour. The orange is nice and all, but I would love to try other colours and this shouldn’t require too much effort for the theme publishers to deploy.
FINE TUNING AND PLUGINS
OK there are a few things I like to do to any site, and a few things I’m convinced are preferable for a blog relative to the way WP does things.
I hate plugins, especially the default ones (Hey Dolly etc..) supplied by WordPress, and the extra ones my web host seems to think I ought to have (Clef). Now depending on the project I might want to keep Clef, Limit Login Attempts and Akismet… but in this case I delete all of them except Limit Login Attempts. Akismet is removed for reasons explained later.
WP developers tend to have a short list of plugins they use on virtually every job. As I’m intending this to be a layman’s tutorial I shan’t include my normal plugins, but rather plugins the layman would find useful, all the while espousing a minimalist approach to plugins, because as you should know, to use a plugin is a sin (big topic, maybe I’ll go into it in another article).
Before plugins, lets get into the settings, we ought to fine tune some of the site settings.
Primary settings
I noticed when previewing this post that the theme was displaying my username as the post author. I’d rather it used my real name so to do that I go to Users, enter my First and Second names, and then set “Display name publicly as” my full name. Nice. I notice a flaw with the theme at this stage. When I click on the author’s name on the front end of the site (under the post title), it takes me to the Author posts template page… and it is not showing my post. Not sure why, but this should be an easy fix Monkey Themes! And I promised I wouldn’t touch any code for this tutorial. Also I’m not sure I would want to as if Monkey Themes do decide to update this theme, it would write over my edit. Though I suppose I should anyway, and let them know to fix this in the next update. Maybe later…
Permalinks! I usually set this to “Post name”. However it seems already to be set up for a custom structure: “/%category%/%postname%/”. That actually makes sense to me for the kind of educational blog I intend to run. A blog which was more focused on news I might opt for what I thought was the standard default “Day and name” permalink structure. Anyway, I haven’t had to do anything this time so lets move on.
Other settings (General, Reading, Writing) all seem fine so I leave alone.
Comments
Discussion settings… OK, I absolutely hate WordPress comments. If ever I require comments I will use a third party, usually Disqus. So we will look at 2 options here:
- No comments at all (ever, anywhere)
- Comments handled entirely by Disqus
So first off, let’s cover no comments before getting into using Disqus. Moderating comments can be a pain (even with Disqus, but especially default WP comments, especially without Akismet). To begin I un-tick “Allow link notifications from other blogs (pingbacks and trackbacks) on new articles” and “Allow people to post comments on new articles”.
Akismet is a paid for plugin that deals with spam comments, and it’s a default plugin. I haven’t used it in a while but i remember many years ago using WP comments and the amount of spam I got was tremendous. Hence why I prefer Disqus, which is free and a bit of a standard. I’m just going to disable comments so I can do away with Akismet and keep my plugins directory clean.
Usually I have my own custom php script I put into functions.php to disable comments. Though a recent WP core update has required me to update the script to fix a few minor things. And as this is for laymen, instead of make use of a custom script, I install a plugin everyone seems to recommend for disabling comments, creatively called “Disable Comments“. I install it and configure it to “disable everywhere”, and after a quick poke around it seems to have done a great job. I may have to investigate the source at a later date for reference.
OK so now Disqus. This is well easy. If you haven’t already, you’ll need to sign up for an account with Disqus on their site. In your Disqus account create a new site via the admin, and configure with the title, URL and description etc of your blog. Now, go back to your WP install and go to the plugins section, click Add New, and search for “Disqus”. In the search results select Disqus Comment System (author: Disqus), and install and activate. Then from the Disqus settings within WP, enter your username and password, and select your site. And your done. You now have comments. The theme I’m using fits the Disqus comments in nicely, except for the pagination which appears beneth the comment section (could do with some padding there Monkey Themes nudge nudge).
Social Media
Firstly, what we really really want to avoid in all cases, is having a Twitter or Facebook post stream anywhere on our site. Pulling in social media content into our WP site is a drain on resources. It also adds page clutter. We have to be thinking about the user’s experience, they are not on your site looking for your Tweets! By all means provide simple html links to your social media profiles (as our theme does in the footer), but for gods sake avoid any plugin that includes the possibility of streaming your social media. Now onto the good stuff:
- Follow button
- Share posts
Twitter is of major importance to content producers, as this is a blog, we need to be really good friends with Twitter. What we usually would want to see at the end of a blog post these days, is a short author bio and photo/avatar, and a “follow me on twitter” (or Facebook or whatever) button, which, if the user is logged in to Twitter, when clicked, will automatically subscribe that user to the author’s Twitter feed. Which for all marketing purposes is awesome.
For the case of this blog, we won’t be adding an author bio. I had originally hoped there would be a plugin that that allowed for a “Follow on Twitter” button which also pulled the text from the Twitter profiles bio. It seems such a plugin is not in existence. A simple alternative to this would be to hard code something, or use another plugin, which displays the author bio, pulled from the WordPress author’s information (from the WP site, rather than the Twitter profile). But for now we shall content ourselves with a simple Twitter follow button.
A quick search for a decent plugin proves uninspiring. Loads of bloated “fully integrated with Twitter” plugins, but few simple follow buttons. In deed none that that seem presently verified as compatible with the current version of WP (4.7.3). Still, there is one which looks simple enough. Twitter follow Button, it’s verified as compatible with a relatively recent version of WP, and it’s useage is certainly easy. It works as a widget. So after installation and activation, we go to the Widgets page under Appearance, add it to our sidebar, and fill in the settings. The only slightly ominous setting asks “Opt-out of tailoring Twitter”… not sure what that means, and the plugin’s information page is not too clarifying either. Further the plugin is not too well known. Only one question in the WP support thread as of now. Nevertheless, i’m implementing it (with “Opt-out of tailoring Twitter” set to “yes”).
If this wasn’t a blog post aimed at laymen, I would suggest just using the default Follow Button script from Twitter’s website and pasting it into the page template for single blog posts. But that is beyond the remit of this write-up.
It would have been nice to have this button appear at the end of the blog post rather than in the sidebar… however it doesn’t do that out of the box. But we’ll settle for it as is.
We want our posts on the site to be easily shareable. By that I mean we want some nice buttons, maybe with a share count, and we need our the content from our posts to look good when it appears on a Facebook or other social media feed (good meta tags in the head). We could make other non-blog pages from the site shareable as well, but we’re not bothered with that. The use case isn’t that important.
I usually roll my own “share post” links. And pretty much every theme I develop requires fine development work to make sure the meta tags (og tags and twitter tags etc required in the document head) can properly propagate content onto social media feeds. Well, we’re going on a journey here where I won’t be doing that. We’re simply looking for a plugin that will allow users to share our posts across social media.
There are tons of Share plugins. I knew i wanted to avoid anything by Add This… for reasons. But that doesn’t mean that anything else is any less guilty. However I’ll admit to willing to risk it and just go for something that looks relatively similar to what I think looks good and works well for blog readers, and is easy and feature-full enough for me as a blogger. And Social Pug fit the bill to a T. there is a premium version, which allows for other social networks to be added. But for now i’m content with Twitter, Facebook and Google +. You can see my settings in the image below:
Voilà. We’re approaching a pretty complete and feature-rich, yet light weight and lean, clear and user friendly blog now. What else should we consider?
GOING THAT LITTLE BIT FURTHER
There are a few other features that a blog really ought to cover as a minimum:
- Statistics
- Advertising/Donations
- Contact form
- Security provisions
- Speed provisions
I will have to come back to these later, but fro now I’ll give the quick and dirty run down.
There are many options for statistics. Google Analytics is probably the most common as it offers the most features and is free and is integrated with a range of Google services (including their advertising platform, but also YouTube and others), and because it’s a bit of an industry standard. There are paid for alternatives which compete with it. And there are free solutions too. For this site I will be going with Google Analytics though.
We’ll obviously need a Google account and to set up our site there within. On the WP end all we need to do is install a gOOGLE analytics plugin, and enter our unique Google reference number (obtained when we set up our site within Google).
Advertising is a bit of a “Why not monetise my content” thing. The drawback is that people don’t like adverts. Further they can slow down page loads. And also many people use ad blockers. There are ways around blockers though. After all, as with traditional media like Television, advertising is one the largest sources of media revenue, so the solutions and competition in this space is very high.
Personally, because I’ll be opting for a donate button. So if readers feel my content is of value they can buy me a beer. Patreon is a popular standard for this service, but I also like Bitcoins, so I’ll look into something for them too.
Contact forms are easy, Contact Form 7 has long been the standard for many WP bloggers. Just remember to install the WPC7 Honeypot plugin as well to keep out spammers.
Security is important. Hacking happens. The most important rule of WP security is to keep your site updated to the latest version (followed closely by keeping your plugins updated). Depending on your setup, WP doesn’t necessarily do this for you automatically. So we’ll make sure our site, our theme and our plugins are set up to auto-update.
We might try another security measure by trying out a trusted security plugin. Or not.
Page speed is important for user experience. So far we’ve kept plugins to a minimum, and used a light weight theme. But there are a few things we can do to make things even faster. Namely, cacheing. I would normal propose an advanced plugin like WPTC and combine it with Max-CDN. In fact , I might do that for this site. But for this article I will propose a much simpler plugin which does almost as much, and is nothing to be sniffed at.
CONCLUSION
And there you have it.