Day 55: Migration Complete

A few days ago, I mentioned that I was thinking about migrating this blog from its original home at, to the domain I’ve used for my personal website for the past 5+ years,

My site as it appeared yesterday when accessed at the domain

Since I work for Kinsta, I use them to host any personal websites I happen to toss up. While Kinsta is a managed hosting provider for WordPress, it is also possible to host static sites with them–and that’s exactly what I have done with this website,, for the last year or two.

This is what my site looked like back when it was a static index.html and not powered by WordPress.

So what I did at about 8 PM last night was use Kinsta’s staging system to generate a staging site. I then accessed the site over SSH and used wp-cli to install WordPress–since the existing site was just an index.html file, so that’s all that existed in staging when I created that environment.

The plan was just to tinker a bit and create a plan for migrating my blog from over to

One Thing Lead to Another

Well, one thing lead to another, and around 11 PM I found myself pushing that staging site live and setting up a series of redirects from to

Here are the steps I followed in this process:

  1. I created the staging site and installed WordPress.
  2. I installed the GeneratePress theme and added my premium license. This is a theme I’ve used for a couple of years already. It’s light, flexible, easy to use, looks nice, just a great, solid theme.
  3. I ran through all the basic settings in the theme and in WordPress in general, configuring permalinks, setting up my menus, tweaking colors and typography, adding a few sidebar widgets, etc.
  4. I set up my privacy policy and a contact form.
  5. I checked my prior site and made sure I had set up all the same plugins to be sure that all content would migrate over properly.
  6. I used the content export feature to copy all the content from and then imported it to my staging site.
  7. I ran through the site one last time, tweaked anything that needed attention, and then pushed the staging site live.
  8. I set up two wildcard redirects to 301 traffic from to The first watches for{anything} and redirects it to{anything}. The second listens for everything that isn’t caught by the first redirect ({anything-else}) and redirects it to

A Content Migration Rather Than a Website Migration

In this case, what I ended up deciding to do was to basically build a new site from scratch and just migrate the content. I could have just as easily migrated the site itself, but since I didn’t really want a carbon copy of the old site I opted to simply start from scratch instead and import the existing content.

It’s also worth noting that saying I “decided” to do anything is a bit of a stretch. The only real decision I made was to create a staging site, install WordPress, and start playing with things. After a couple of hours, I realized that I was getting damn close to having a product I could push live, and it was only at that point that I truly decided to actually move forward with the migration.

I’m pretty happy with how things turned out. This site does still have some rough edges–the images on the homepage don’t work exactly like I want them to when viewed on smaller devices and some of the sidebar content and blog layout still just look a little too generic. Despite those rough edges, which I’ll smooth out over time, I’m excited that once more I have a digital home with blogging capabilities.

Featured image by Markus Spiske on Unsplash

2 thoughts on “Day 55: Migration Complete”

  1. Nicely done. The staging area is the way to go. At least when you go down the rabbit hole you end up completing something. I usually end up with 6 or 9 new projects that might have one thing in common: none of them are finished.😂

    • That was my thinking exactly. Once I realized I was getting close I decided to push on through and go live. If I wait and plan it all out and do it perfectly it’ll never happen.

Leave a Comment