One Year of SEO OptimizationSEO Strategy Blogging
In April 2020 my blog was barely alive. I had moved to Hugo from Pelican and ignored any kind of SEO optimization for it. I thought it was stupid and that the best content would win. Little did I know that my content wasn’t even being found! So after thinking about it for a few short minutes, I decided to dive back into SEO and figure out how to bring my blog back from the dead.
Here’s a Google Analytics chart of my Organic Searches for topics my blog posted about.
I had 39 organic search sessions in April 2020! The content that drove me to the top of the Google Searches in 2010-2014 dropped into obscurity. Granted, not posting and keeping the blog fresh was ONE of the problems I had but because I moved CMS’s a lot, I lost a lot of backlink juice and general SEO optimization (i.e. JSON-LD, keywords, etc).
I’m estimate I’ll close near 1,000 organic search sessions by the time April is over, which is a 25 fold increase over a year. That’s amazing but also what I consider low-hanging fruit SEO optimization.
So how did I do it? I just minded a few things and my site turned around. The following items I’m going to share have no particular order, they’re all important!
Mind the Load Speed
Why is page loading time important? Google will penalize your site if it’s too slow to load by dropping you in the rankings, so I decided to rebuild for speed.
I dropped Disqus for and IndieWeb implementation. I did this for two reasons: one to speed up the site and two to claw back my content from siloed organizations like Twitter and Facebook.
Then I found a stripped-down theme and made implemented a Hugo Shortcode that optimized my images for screen size AND lazy loading. If you went to web.dev or gtmetrix and plugged in my domain (neuralmarkettrends.com) you’d see I’d get an ‘A’ or >90 ratings for performance. My load time now is less than 3 seconds.
Can I optimize this further, yes but it’s one of those Pareto 80/20 rule things. I think I’m good now.
Mind the YAML
When writing content for a static-based blog like Hugo, Jekyll, or Pelican, you want to optimize the head of the content page. I write using Frontmatter YAML and make sure to populate it with Keywords, Tags, Author, Image Callouts for Social Media, Slug/URL, and a Description.
All these elements are used to optimize your content in Google’s eyes. Although keywords are deprecated in Google’s algorithm now (thanks to keyword stuffing), it comes in handy for JSON-LD.
These Frontmatter YAML elements can be parsed into your static webpage when you ‘build’ your site and you have a lot of flexibility in applying this if you tweak your themes. I found a better JSON-LD template that generates rich and detailed data in the head of every post I generate. Google slurps that right up.
Mind the Slugs/URLS
Permalinking and building the right URL structure for posts or content is an art form in itself. There are lots of SEO companies that say you have to remove stopwords (I agree) and have a keyword or two in the URL (I agree here too!). I opted for a stripped-down version of my blog URLs by doing something like:
Since I use Hugo and they support URL Aliases, experimenting and correcting old URLs was never easier. If I had an old URL like
/rapidminer-how-tos/ I would add the alias frontmatter yaml and call out the corrected URL of
Why did I change rapidminer-how-tos to rapidminer-tutorials? Simple, because tutorials are a more powerful keyword when you search on Google and it makes more sense.
If someone finds an old backlink to
/rapidminer-how-tos/ and they click on it, it will resolve to the new
/rapidminer-tutorials/ without giving me a 404 error
Mind the JSON-LD
JSON-LD is simpling a JSON formated data object meant for linking data together. I found JSON-LD to be very helpful in generating nice search results in Google and index my content better. It was a simple add to my templates and every time I make a change or write new posts, everything gets updated on the site.
The beauty of this is that you can tweak and add any bit of Frontmatter YAML from your posts to the JSON-LD too!
Mind the Content
Content is king and you should savor it. You should always post to your domain first so you can keep control of and get the most SEO juice from Google. Of course, you should write some great content too, and update your blog often.
If you have a lot of content that’s low value and is very short in length, you should consider removing it or updating it. Google loves updating old posts and I did just that. I combined several tutorials on the same subject into one mega-post with a table of contents. This has helped me rank higher in certain categories. For example, my RapidMiner tutorials are very old, but combining the tutorials got me back on the second page of the Google results.
Mind the 404’s
404’s or dead links are a big strike in Google so you should spend your time hunting for the dead links and backlinks that will confuse your readers and damage your SEO. Provide a good search option as well in case readers can’t find what they’re looking for easily and fast.
Once you identified the 404 errors, look to see if you can redirect readers from that URL to new the post URL. If you use HUGO, you can write an Alias for the URL and solve that problem fast!
Where do we go from here?
Up. We go up from here. To the Moon!
At least that’s my goal for the next year. Quite honestly, I was hoping to be at 10,000 organic searches but I’m happy with 1,000 for now. Why? Because it’s phenomenal growth considering that last year, at this time, my blog was barely clinging to life support.
Thank’s for reading!
Learning Python Programming the Easy Way
I picked up python programming when I needed to do something but couldn't figure out how to connect the dots. Luckily there were some great books out there that I picked up and helped accelerate my learning process.
Here is a list of book and cheatsheets I like: