If you’re a regular follower of the blog, you may be wondering why things are looking a little different. That’s because I’ve completely replaced my WordPress site with a brand new version, using the Hugo framework. Read on to find out more.
My Issues with WordPress
I’ve been seriously struggling with WordPress over the past two years. I did a bit of a brand overhaul on the site, using a modified version of the Divi Theme. Nothing improved (in fact, I think it worsened the problem). In addition, I chose to move my hosting provider across to Microsoft Azure. The logic was pretty simple - as a Microsoft technology enthusiast, I should be “eating my dog food” and using the best cloud provider out there, right? Well, as it turns out (either due to my ineptness or issues with the platform itself), Azure App Service with WordPress and MySQL Managed Databases doesn’t perform well. And, to add insult to injury, they can be quite a money pit, too… 😲 Other issues I’ve had include:
- A plug-in that I used for embedding code snippets in my blog posts is no longer supported/maintained. Consequently, issues have started to occur with it from website users. It’s beyond my capability to try and resolve it.
- The old site was just too damn slow. Typically, I had to wait around 20-30 seconds or more for pages to load in the backend CMS system. In some cases, posts were also taking a similar amount of time to load. Bad experience for all concerned and probably a significant issue from an SEO standpoint.
- Hackers and unscrupulous individuals attempting to poke holes into the website, spamming it and (presumably) attempting to crash it in the process. Hardening the security on the site via plug-ins such as WordFence seemed to help, but it’s still going on behind the scenes and negatively impacting the site.
- Frequent timeouts and periods where the website will stop working. The only way to resolve this is to restart the App Service on the Azure Portal. Rather annoying and, again, beyond my technical capability to investigate and resolve.
- Comments and discussions regarding my posts seemed, in most cases, to be virtually non-existent. The requirement to set up an account and having moderated comments seemed to be the cause of this.
So, in short, time for a change. And a drastic one at that.
Options
I gave it some thought, and it came down to one of four options:
- Keep as is, try to fix the issues and look at ways to reduce the monthly hosting cost.
- Migrate the entire WordPress site to a different hosting provider.
- Migrate across to a different type of blogging site while still retaining hosting on Azure.
- Start again with a brand new website - preferably hosted on Azure.
Option 1 I deemed impossible due to time, knowledge and from what I gathered from online research. Option 2 was compelling, but I’m too idealistically attached to Azure, I think. And, finally, option 4 would have been most straightforward, but having to lose all of the content that I’ve built up over the years seemed like such a massive waste.
What I Did
So as you’d expect, I went with option 3 and migrated the website across to Hugo. The benefits of this were compelling:
- I could continue to use Azure to host my website. In this case, I can now use Azure Static Sites, which have a free hosting tier. 😁
- No need for a MySQL database or any other kind of backend infrastructure to maintain.
- I could start to use GitHub and GitHub Actions to store my site content and deploy out the changes as they get applied to the repo. This was super easy to set up.
- I can author all pages and blog posts using Markdown. Therefore, writing rich text content and including code snippets becomes a cakewalk.
- The new site is ridiculously fast. Seriously. Page loads take less than a second on average to complete, so no more long waits! 🙌
- The template I’m using is clean and well optimised, regardless of the device you are using.
- I can build a local copy of my website in a matter of seconds, preview how changes look and get these pushed out in minutes. Very cool.
I could go on. But I’m seriously impressed, excited and invigorated by what I’ve worked with so far, and I think I’ve now got a solid base to start developing the site further in future.
Excuse My Mess
Now, the new site is not perfect. And I have rushed to migrate it across as quickly as possible. Here’s a couple of things to be aware of:
- The new site has an RSS feed, but note that the URL is slightly different to WordPress. You may need to update your feeds accordingly if you’ve been using them.
- There is no option to subscribe to new blog posts via emails currently. I’m looking at ways in which I can build this out.
- I’m still in the process of working through over 290+ previous blog posts and fixing issues such as incorrect URL paths, code snippets not rendering correctly, and wrong categories/tags/images showing on posts. I’ll get these fixed over the next week or so but, until then, some posts older from 2020 backwards may have some issues.
- Comments made on posts from the WordPress site have not been ported across, and I don’t think it’ll be possible to do this easily. There are around 256 comments from the old site, so I’ll work through them and update each post with anything pertinent.
- There are some general branding/feature tweaks I’d like to perform on the site, which will surface over time unless I get distracted… 😅
If you spot anything else or have any suggestions, please let me know using the fancy new Disqus commenting feature below. But whether you’re a longstanding CRM Chapper (if that’s a word?) or just checking the site out for the first time, I hope you find the experience quick and easy to use!
Acknowledgements
I’m hugely grateful to Kendra Little’s excellent blog post, where she talks through doing the same thing as I’ve done for her own website. Her steps allowed me to replicate and work through issues I faced during my migration. If you’re having similar WordPress pains at the moment, take a read and see if you want to migrate as well. 😉 Some further shoutouts to specific tools mentioned in her post:
- lonekorean’s wordpress-export-to-markdown Tool: This tool worked as Kendra described and helped to streamline the migration.
- CaiJimmy’s hugo-theme-stack Theme: This simple Theme works well and optimised for the type of content I want to produce. Thanks, Jimmy!