SEO Tutorials

Posting valuable content that's shared and linked is what gets you to the top of the results page.

SEO Tutorials
Photo by Merakist / Unsplash

I'm in the process of merging and updating old posts with fresh insights and content. I dropped the AI part because what it really means is automation in this sense. Building blog traffic is always about writing great content and observing what Google's AI does to get you to the top of the search results

AI is just an algorithm that's built on top of the existing data you have. In a sense, you fit an algorithm, to the data instead of fitting the data to the algorithm.

What that means for SEO and your blog traffic is this. You write content and Google and other search engines index it. Based on your blog's metadata and content it will spit out a ranking in the Search Engine Results Page (SERP). If people find your content valuable and visit/link to it, Google then adjusts your ranking accordingly. So it's a continuous learning feedback loop. Posting valuable content that's shared and linked is what gets you to the top of the results page.

This, of course, has a lot of great benefits. If you're running a blog to make money or a business, then this can generate lots of revenue for you. It could make you famous or change your life (which it did mine), but maintaining a blog is hard work. Google periodically changes its algorithm to thwart spammers, spammers, and blackhat SEO'ers from cluttering up the SERP with junk.

No Black Hat SEO

This goes without saying but doesn't take the easy way out by buying backlinks or fake traffic, Google will find out one day and you're site will drop in the rankings. So don't think of trying any Black Hat SEO tricks. There are tons of places that offer 200 backlinks for $5 or 10,000 unique visitors for $25. They're really shady and if it's too good to be true, don't do it. If Google penalizes you it will take a lot of time and effort to get out of the penalty box.

Write Great Content

It all comes down to this, writing great content. If you want a serious blog that attracts loyal readers and has 'staying' power, you have to write detailed and informative content. This is sometimes called evergreen content, meaning that it's still applicable today even if you wrote it 10 years ago. Your posts need to be over 300 words minimum because anything less will be penalized by Google as just a nonserious blog, at least that's been my experience. The norm for high-ranking posts on a given topic is somewhere between 2,000 and 5,000 words per post. Once you cross 5,000 you're in the mini-novel area and only a very few bloggers get to 10,000 words. Those that do consistently rank on the first page of Google.

Imagine writing 10,000 words?

Use Google Analytics

You can use Google Analytics or some other script to monitor your site's traffic. From that, you can gather a lot of clues on how people use your site. For example, I found that:

Tuesday's are my busiest days.

My most popular topics are RapidMiner and Python tutorials

My SEO traffic started dropping in January 2020 hitting a low point in April 2020. Now it's trending back to December 2019 levels

The moral of this story is, you can't manage anything if you don't measure it. Measuring is the first way for you to take a hard data approach to fixing what's wrong and build your traffic back up again.

Use Google Adwords

I extract great ranking keyword information from a Google Adwords data dump that I put into an Excel Pivot Chart report.  There's no AI magic behind this and you could do this quite easily yourself. Building this report is a great way to see keyword trends in Google and if your posts and content 'align' with it and your readership.

You can edit your content to switch out some words here and there without diluting your content. For example if you run a travel blog and the word 'vacation' has more meaning than 'trip,' you should use that word instead of 'trip' in your content.

Over time you'll see things happening on your site you can start asking questions like, "what type of content drives the most traffic and on what days?" Building an Excel Pivot Table report won't be able to answer that question but it can answer the question, "what's my busiest day", or "what's my optimal post per day quantity", and "what's my most popular category."

Excel Pivot Table

Gather Data. If you use Google Adwords, or another site statistic monitor, download your visitor data.  You can choose whatever time frame you like, a good rule of thumb is about 2 months' worth of data.  You'll need to get the number of hits and the date of the hits.   Next, add this information to an Excel spreadsheet and add the following columns: Weekday, Number of Posts, and Category.

Transform the Data

Go back between the dates of your data download and fill in the columns for Weekday, make sure to match the date with the right weekday.  Next, fill in the Number of Posts column with, you guessed it, the number of posts you did that day.

Create a Category. When you get to the step of data mining your traffic, you'll want to know what content drives your traffic and on what days.  Adding a key of categories will help you accomplish that.  I entered the number "1" if the post that day was about Forex, "2" if it was for stocks, etc.  You get the point.  If you posted more than one post on any given day and it was about more than one topic, you can add a second or third category column. You get as detailed as you want, its really up to you.

Build the Excel Pivot Table. Once you have all your information, you can build the table.  Go to Data > Pivot Table and follow the instructions.  You can place the table in your existing worksheet or a new one (I usually go for a new worksheet).  Select your data range to include the Weekday, # of Visitors, Posts Per Day, and Category.

Once you did that you'll see your new worksheet with a little floating menu system.  You can drag and drop the fields into your new table. Drag the # of Visitors into the Drop Data Items area, drag the Weekday field into the Drop Column Fields area, drag Posts per Day to the Drop Row Fields area, and lastly drag the Category field to the Drop Page Fields area.

Format the Table. Use Excel's auto format function in the Pivot Table wizard to select the style of table you'd like to see.  When your all done, your spreadsheet should look something like this below. Click on the image to download the actual Excel spreadsheet.

Small SEO Tools

There are a lot of free SEO tools out there that you can use too to do some analysis of your website. The best one is called Small SEO Tools. It's not an integrated site like Moz or some other SEO checkup platform, but it can get the job done.

Tweak your Robots.txt file

In an effort to help search engines index my site better, I installed a robots.txt file.  The reason why I did this will become clear in a minute.  When you run a blog, search engines will parse your site and index it with a lot of duplicate data and posts.  Duplicate data and posts can have a negative effect whereas the spider might think that your blog is a spam blog (splog).  In the long run, this can cause lower rankings.

Why the spiders think that way is pretty logical, at least how I think they work!  If you write a blog post, and it's current, it will be on your main index page (1 copy).  At least two more copies will reside in your category and archive sections. Essentially you'll have three copies of the same post if the spider parses your site that day!

As soon as your post drops off the front page it will end up in your category and archive sections; you'll still have two copies of the same post!  The best solution is to tell the spider NOT to index one of those sections! It's that simple!

I found a version of an optimized WordPress robots.txt file and discussion here. I then modified it to my needs and installed it in the root directory.  So far it seems to be working but only time will tell how effective it will be.  From what I've read, using a robots.txt file is a long-running experiment and you have to tweak it over time to maximize its effectiveness.

Switching Your CMS HURTS YOU!

It's no secret that I've switched CMS's so many times that it makes my head and my reader's heads spin.  I've switched CMS's many times as I struggled with WordPress, Expression Engine, Text Pattern, and Blot. Every time I did that I lost SEO.

I made a big migration to Jekyll and loved the static type of CMS's ever since. Fast forward to today and I've pretty much settled on Pelican. Why? It's a static CMS and it's python powered. It does a great job of streamlining the YAML front end of a post and it's fast to regenerate. The best part? I use rsync to upload new posts to my server and I use the S3 upload to make a backup of my site on Amazon.

Yet, there's ONE big problem that I've noticed. 100's of my inbound links are all now dead and that messes with my SEO ranking.

The solution is to create RewriteRules in my .htaccess file and here's some friendly tips on how to do it.

Moving away from WordPress

The biggest inbound link killer on my WordPress site was when I switched my permalink slug.  I went from a classic format of  '/year/month/day/my-post' to the simpler one '/my-post.'  WordPress handles this change if you do it in WordPress. If you migrate out of WordPress, well all hell will break loose.

The simple fix is to add the following regular expression to your .htaccess file:


RewriteRule /[0-9]+/[0-9]+/[0-9]+/(.*) /$1 [L,R=301] 

What this does is select any /year/month/day/my-post formatted URL and returns /my-post!  Awesome, but what about those pesky /_wp-content/uploads directory?  There are tons of images I put into my blog posts and now all those inserts don't work.

The solution for me was to download the /wp-content folder and rename the folder as /_wp-content. I did this because I was using Blot.Im at the time and if I didn't add the _, it would generate 100's of images as blog posts.


RewriteRule /wp-content/uploads/(.*) /_wp-content/uploads/$1 [L,R=301] 

Of course, you don't have to do this. You can move the /wp-content folder to its final destination and have all the links resolve.

Moving away from Expression Engine

Oh Expression Engine (EE) how I love and loathe thee. EE is a serious CMS. You can do a lot with it if you spend the time to architect it out. It's powerful but complex. It's too powerful for running a small blog like mine, but I liked it when I used it.

The thing with EE is that it creates /blog/entry/my-post permalinks. the /blog/ part is the name of the channel and it could be anything you like. It could be /radio/entry/my-post or /store/entry/my-post. For the extended time my blog ran EE, several inbound links went to /blog/entry/my-post.

To solve this problem I created the following rule:


RewriteRule /blog/entry/(.*) /$1 [L,R=301] 

Now EE also had a URL for each category and that created havoc too. Wordpress uses this method too and since I use Pelican now, the categories have become tags, or rather 'tag.'

The solution was this:


RewriteRule /category/(.*) /tag/$1.html [L,R=301] 

Moving away from Blot.Im

Blot.Im is a favorite of mine. It's simple to use and it's making improvements with every update. Still, it's not as feature rich enough for my taste. I'm sure one day it will be.

Blot uses 'tagged' instead of 'tags' and to solution to that is doing:


RewriteRule /tagged/(.*) /tag/$1.html [L,R=301] 

When Blogging first came out no one knew how the URL of your post would affect SEO. Hell, SEO wasn't even a thing back then. Over time that's changed and it's become a big thing to think about as you build your content. I wrote about evergreen content before and you should always write content that will remain fresh for years to play the long SEO game. That doesn't mean you can't update it, no! You should frequently update your content with new and relevant information as it's warranted, but let's focus on the content and the url (permalink) first.

I write a lot of tutorials and if I want to start ranking for them I should think of the main keyword or keywords that describe my tutorials page. For example, I've written a lot of tutorials on RapidMiner and Python. So my main keywords will be 'rapidminer' and 'tutorials.' I've built my content page with loads of tutorials on one page and set the permalink to rapidminer-tutorials. Why? When someone goes to Google and they want to search for RapidMiner Tutorials, they'll write into the search box "rapidminer tutorials." If my website ranks, then my permalink will have a search query in it! This tends to make the searcher click on your site!

Combining a well-thought-out permalink with evergreen content will have long-term benefits for your SEO!

Use Tags or Categories

I use Tags in my posts but I don't choose them at random. I have a methodical process to create and use them because I think of them as trailblazing road signs for my readers. The theme I use autogenerates 'Tag Pages' and lists every page with an associated tag. If I make too many tags then I generate too many pages with short content. That gives me an SEO strikeout.

Before I tag any post I look at my list of predefined tags that I use. My list is pretty narrow but uses tags like:

  • SEO Strategy
  • Tutorials
  • RapidMiner
  • Python

Those tags are pretty powerful keywords and if there's a page that lists all content related to 'Python' then I get a new page for Google to Index with the word [python](/tags/python/) in the Permalink (see my previous discussion above)!

Now, you don't have to use tags but you can use categories so it's really up to you and your site. Just make sure you have a handy way to changing your tags or categories if you have to. It's really hard to manually update each post with a new tag or category if you haven't thought it through!

End Notes

This post is not done, I have way more to write about this topic because it's always changing. If you liked this post update, please share it or drop me a comment on Twitter.