Blog SEO - Sketching Out Some Thoughts

I have since given a lot of thought to SEO on this blog as I migrated it from one CMS to another. Each CMS handles SEO in a completely different manner and over time the migrations have had, in some way, a damaging effect here. Perhaps the right thing to do is to pick one CMS and stick with it through thick and thin. That's something really hard to do for someone like me, but I consider these migrations to be a learning opportunity.

Let's take a moment and dig through my original sketch and see what's working and what's not.

Metadata (YAML/FrontMatter) & Header.HMTL

Before you write any content, you have to think about what you want to say and rank for. This is where your metadata comes into play. Your metadata for a post will be embedded into your HTML code when you push your post to production (aka make it live). This is what Google and other Search Engines will crawl. This includes the blog post title, a description, your URL slug, maybe post tags and keywords, etc.

Since I use a static generator and a YAML front end, my typical post looks like this:

---
Title: My Awesome Title
Date: 2016-08-24
Lastmod: 2020-06-21
slug: my-awesome-title
Keywords:
- keyword1
- keyword2
Tags:
- tag1
- tag2
authors: Thomas Ott
Description: Some description about this post
---

The static generator and the theme (template) I use will take the data between the '—' lines and generate the appropriate head.html and post.html for the post. The head.html would contain < meta name =""> information about the title, slug (URL), published time, last updated time, keywords, and description. Some information might flow down to the post.html and display itself in the post like the title, tags, and description.

Organizing Content into Channels

The current blog is organized into 1 main channel. Channels are 'marketing' speak and it's a way to monitor activity on your site. I created these channels or content sections for two main reasons. One it helps me keep my content organized for myself and for my readers, and two for performance. If I'm having performance issues, I can always isolate the problem on a channel-by-channel basis and optimize the sections as warranted. Plus, Hugo lets me generate separate RSS feeds for each channel so you can subscribe to only what you want to read from my blog.

About, Search, and Archives

No matter what you write about, your blog needs to have an About section. People want to know what your website is about and who's writing it, so don't neglect this.

A search function is also very handy. I'm using one in 'secret' mode with DuckDuckGo until I can fully integrate it with this site. Using Search is a bit tricky on static web generators because of the nature of the CMS. Search is dynamic, but Hugo is not. There are ways around it as I'm currently exploring.

Archives are nice to have but not a necessity in my opinion. I've never really used a blog's archives over a site search or just using a search engine, but it might be good for a loyal reader to look over.

End Notes

I'm a big visual learner and I really like sketching out all the interconnected pieces. Some people call it mind mapping, I call it taming the SEO beast. My advice from all the years of CMS migrations is to start by thinking about what is it you want to write or educate your future readers about. Then pick one CMS and stick with it.