Update: I have since added a follow-on post to this one in Blogging with WordPress: A Year In.
Earlier this year, I started blogging for the first time on Medium. This is great, I thought. So easy; why haven’t I done this before? But then I quickly ran into issues with the Medium paywall. Ah; there’s the catch, I realized. While I am not against Medium having a paywall, it didn’t make sense for my use case – I didn’t want any of my stories to be behind a paywall of a company that wasn’t mine, after all!
But Straker – that’s not how the Medium paywall works, you might be thinking. While putting articles behind the paywall is something an author can control on a per-article basis, there is no indication on the consumer side if an article is free or not. This leads to a negative customer experience (CX) for those that don’t subscribe (🙋♂️) and decreases attempts to even try and read the article – most of the time you try, you get blocked by the paywall.
So I thought to myself you’re technical, and you’ve made websites before; maybe now is the time to finally learn how to create a wordpress.org (as opposed to wordpress.com) site? 😅 Well, a good 8 months later, and here said blog finally is. While some of delay can be chalked up to Seattle summer, general travel, and a reticence to post during large-scale layoffs in the tech industry, I finally got this site setup and plan to start using it. That said, this wasn’t as easy as I hoped, and I want to share what worked for me for anyone else who thinks about making this transition.
There are lots of options here besides wordpress.org. However, I specifically wanted to try this option out and I wanted full control.1 At this point in time, I don’t regret my decision, but I definitely had my moments! If you aren’t wedded to a particular technology, I would also recommend that you look at Substack and Ghost as options to consider.
1. The Foundation: Domain, Email, Hosting, & Security
First things first: what are you going to name your site? This may seem so basic, but it’s arguably one of the hardest steps! I cheated and just used my name for a reason; insert “two hard things” joke here 😅. But at the same time, you should think through how you want to handle email. Will you be using an email address that you setup as part of your domain? This usually implies Google Workspace, which will run you $6/month. I opted to just create a new dedicated free gmail account instead.
With that out of the way, before you buy your domain name, you should investigate hosting platforms. Often they give a discounted or free domain by hosting with them, and it can be easier to manage the domain with them directly as well. So I did some research on hosting platforms, and found Bluehost was offering the best deal for a three-year contract.2 Boy oh boy did I regret that quickly as the availability they provide their clients is awful. I was blocked in my first week due to such outages, and it ended up causing a multi-month delay as I just let it sit there rather than deal with the frustration of trying to make changes when my site would go down for 30+ minutes at a time and all changes would be lost. That said, since picking this project back up, I haven’t had major issues 🤷♂️. That said, this has been written about already and I wish I had stumbled upon this excellent write-up of Bluehost affiliate advertising before I made my selection. If you start diving into this space, nearly everybody will recommend Bluehost; now you know why. Such recommendations are financially motivated and cannot be trusted.
Last but not least, get your security figured out. Add Two Factor Authentication (2FA) to all of your accounts, including your new email. Making your WordPress login page secure is a bit tricky, but there is an excellent writeup for how to do so here. I used WPS Hide Login and WP 2FA to force logging in to WordPress leverage 2FA (it also supports requiring 2FA for users, but I don’t have any of those 😅). The plugins are both free and compatible with one another.
2. The Front End: Your Theme & Branding
So now you should have your domain and hosting provider; so what next? Well, you’re most likely going to want to play with the look and feel of your site! The WordPress UI makes shopping themes quite easy directly in the sidebar:
Personally, I recommend a paid theme to help with differentiation, but really I recommend you take your time in this step. There are a lot to choose from, including many that are under $100, but they will help make your site look a little more customized. I went with Highend for $59. Along with the theme, they will likely recommend a bunch of plug-ins for use with it. I’m sure most will have a similar experience that I did, where most recommendations are unnecessary – repeat after me: I will not use pop-ups. – but it probably leverages a front-end builder like WPBakery or Elementor. If it does, install this recommendation. If it doesn’t, consider choosing one anyway – I use WPBakery and like it.
After that, you need some images. I argue most websites will need three: a logo, a favicon,3 and a headshot for an “About” page. I cheated on two of them, leveraging Bitmojis an old boss of mine helped make for me.4 But the logo left me stumped; I wasn’t trying to steal a logo, and many free logos have watermarks preventing their use anyway. I then signed up for a free trial of Adobe Stock and downloaded some basic images that I could play with and see what looked best. My hope is I can cancel and the images will remain in use fine, but if I ever need more I’ll end up just signing up. Update: cancelling my free subscription worked and the image works fine.
3. Plug-ins
I argue you’ll want to install a few “infrastructure” plug-ins right away to see if you’re suffering from issues like the availability one I was 🙄. And while there are a few to check out, you should start with Jetpack. Jetpack has a slew of features, including downtime availability reporting so you know when your site is down and performance improvements such as lazy image loading. Equally important, it has a Backup feature. I was worried at one point that an incident happened and I was going to have to start over from scratch – that feeling was not pleasant, and I couldn’t imagine how much worse it would be if I actually had content on the site. I quickly leveraged a Black Friday sale for a year of daily backups for $2.99/month. Last but not least, in the free version, you can leverage Jetpack for share and like buttons on your posts instead of your theme. While perhaps not as ideal from a UI standpoint, this allows you to change your theme down the road and not lose these stats.
Additionally, you’ll likely want to setup Google Analytics (either through Google’s SiteKit or MonsterInsights) so that you can see traffic patterns on your site. In doing so, however, you now must be compliant with the EU’s General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA). Not worth it, you think? Well, think again. Even just embedding a Youtube video once in a post means you must be compliant here. You can run a free scan of your site to see if you need to comply or not. I say it’s better to just get this over with upfront than not. I used CookieYes; I liked its level of customization and control for a free tier compared to other options, and I also appreciate that it stores the answer for one year so users don’t have to re-answer frequently.
Which leaves just one major area left: managing contacts and subscriptions. Sadly, this is not easy. While your theme likely has a contact form, it may not have an emailer setup to notify you when the contact form is filled out. As you try to figure that out, you realize you’re being spammed and you didn’t even know it:
So, you can either start to fight the spam, or simply change the game; I chose the latter. I migrated to Contact Form 7 with Flamingo data storage – a popular free WordPress plugin duo – and haven’t gotten any spam since.5 However, I didn’t find this a useful newsletter mechanism, and this is where I lost another long chunk of time doing trial and error. But fear not! Now you can just copy me and skip all of that frustration 😤.
But wait – doesn’t Jetpack have a subscription mechanism you could just use? Yes, it does. And it is by far the easiest to setup. However, it does not match your site’s theme, and the emails that it sends couldn’t be more ugly if they tried 🙈. From sending an email with your site’s favicon instead of your site logo or the post’s featured image, to not having an option to send the full post (vs a truncated one which you don’t have control over), it simply wasn’t up to par.
After much trial and error, I settled on MailPoet. It’s free, it gives you better modification abilities of your form compared to alternatives such as WPForms, it supports email confirmation unlike Jetpack, and you have complete control over how you want to send your subscribers notifications. From timing and batching of such notifications to customizing what the notification looks like, I could not recommend this plugin more.
Summary
In summary, setting up a blog was a lot more work than I anticipated; shocker 🤯. not only is setting up a such a site a fair amount of work, but it does cost money 🤑. Not a lot, but not $0, either. I estimate I spent ~$300 on everything year one, and recurring costs will be less $100/year until I have to renew my hosting. But now that I’ve done it, I am excited to get back into “writing mode” 💪.
So, was it all worth it? Yes. And next time, I’ll follow my own little trusty guide here to make it easier on myself!
Footnotes
1. I mean, c’mahn, look how cool footnote support is when you have control 🤓! Update: WordPress added formal support for footnotes in 2023 which surpassed the original anchor link way I did footnotes (such as in this post).
2. See contract options here, but mine was 3 years for $4.95/mo.
3. A favicon is just the little image you see in the browser tab.
4. Before of course he left to go work for Snap, the owners of Bitmoji.
5. I actually did try to stop the spam at first through Akismet anti-spam plugin you can add through Jetpack; it didn’t work. I setup reCAPTCHA integration with ContactForm7 instead.
1 Comment
Leave your reply.