Organic search traffic. The holy grail. The gift that keeps on giving. The plant that keeps on bearing fruit? I don’t know, I’m sure you can think of your own cliche. There’s no time like the presence, and the Covid-19 crisis is a good time to invest in SEO.
For me, SEO was always this mystical black box that made companies successful. A few months ago I finally took concrete steps to look under the hood and learn how to get organic traffic for our business.
Here is our organic search traffic since we launched the BeamJobs website back in November 2019:
Now look, I know these numbers aren’t world-beating. But when I was first getting started with SEO it seemed like an incredibly daunting task to go from 0 to 1. My hope with this article is to help other people who are just starting out with content to help them do that. I’m still an SEO beginner so I can relate to how difficult it is to get started!
To get the most value out of this post, you should already have done some reading on basic SEO. For example, you should have read either Moz’s beginner’s guide or ahref’s SEO primer. From there, I’ll walk through a concrete example of how I wrote an article that’s starting to rank for keywords I targeted.
The article I’ll be walking through is a data science resume writing guide. This is the first article I got right for SEO after a few failed attempts. I published this article on February 14, 2020 (because I love love). Here are the keywords I targeted with that post and their US ranking in Google search as of April 1, 2020:
Step 1: Content ideas
Fundamentally, our business helps people create effective resumes. So when coming up with topics to write about I broke down the stages of how a typical user of ours looks for a job:
- Generally they look to see what kind of opportunities are on the market that they’re qualified for just to get a sense of what’s out there.
- Once they find a compelling job/company they update or create their resume.
- During the next few weeks they actively apply to more jobs to put more coals in the fire.
- Job offer and compensation negotiation.
The way I learned about the typical journey one of our users took to land a new job was by, well, talking to our users. Reviewing your notes on conversations you had with your users is a great way to generate content ideas.
Once I had our user journey mapped, I went through each phase of that journey to come up with possible ideas for useful content. Here are a few sample topics I ideated based on these steps:
- How to prep for a software engineering interview
- Negotiating your job offer as an engineer
- Finding your next job as a data scientist while employed
At this point, I was just broadly brainstorming. I had no idea whether these ideas were targeting keywords that people were Googling. I had no idea whether it was feasible that my young domain without much authority could rank for those keywords.
All in all I came up with about 30 topic ideas. Next, I came up with a list of qualifiers. These qualifiers allowed me to get way more specific with my topic ideas. For us, these qualifiers were seniority and job title. For seniority we had “junior”, “senior”, and “manager”. And some sample job titles we had were “data engineer”, “data scientist”, “front-end engineer”, “Python developer”, etc..
These qualifiers would help me target longer tailed (less search volume), less difficult keywords if it turned out that it was not realistic for me to target the general parent topic. I had a gut feeling it would not be possible for me to compete at this point for “software engineering interview questions” but it might be possible for me to compete on the “senior Python developer interview questions” query.
Step 2: Keyword research
Now that I had a list of possible content topics, including long-tailed keyword variations, it was time to see which content ideas had enough search volume and were reasonable for me to target with our domain. My process for this was pretty straightforward.
For each parent content topic, I checked the keyword difficulty and search volume of the obvious keywords from that topic in ahrefs (you can follow a similar process no matter which keyword tool you’re using). So, if the topic was “how to write a data science resume” I checked the keyword “data science resume”. With my first pass I was looking for keywords that had a monthly search volume of 1,000+ and a keyword difficulty of less than 40.
At the time I wrote the data science resume guide, our domain rating on ahrefs was 22 (how we got to this rating will be the topic of another blog post). While this metric is not the end-all be-all since it can be easily manipulated, it’s a quick proxy for helping you know the feasibility of ranking for a given keyword. If your domain is new, I’d limit this to a keyword difficulty of ~25-30.
If a given parent topic had a high search volume (greater than ~3,000) and a high keyword difficulty, I followed this same process for the long-tailed keywords I generated for that topic. So, “data science interview questions” has a monthly search volume of 2,900 in the US but it’s a competitive keyword. So I added the qualifier “Python data science interview questions” and noted the search volume and keyword difficulty.
Now I had a list of content ideas, the primary keyword I could target with that content, the search volume, and the keyword difficulty. I sorted this list by search volume and filtered to a keyword difficulty of less than 40.
The top result in this spreadsheet was for the topic “how to write a data science resume” targeting the primary keyword “data science resume”. So this was the article I decided to write.
Now that I had a primary keyword I also wanted to see if there were other, longer tail keywords I could also target with this article. Luckily ahrefs makes this pretty simple (so do most other keyword tools I imagine) as they provide you with a host of other suggestions. Now I was left with all of the keywords I wanted to target with this article along with their search volume and keyword difficulty.
Step 3: Analyze the search results
Now I knew the topic I was going to write about and knew the keywords I was going to target with that content. The next step was to analyze the content that was currently performing well for my primary keyword “data science resume”.
I opened an incognito browser, typed in “data scientist resume” and read through all of the results on the front page. For each of these pages I noted the following information:
- What was the primary offering of that page? Were they offering resume templates, a “how-to” guide for writing a data science resume? A combination of both?
- How long was the page?
- How was the writing? Were there obvious grammatical errors? Was the tone conversational or formal?
- Did they know what they were talking about? Since data science is a technical field some results clearly had writers that weren’t knowledgeable on the topic.
- What was the goal of the content? Were they trying to get readers to click through to a certain page? Was it just informative?
- The domain authority and page authority of each result (from ahrefs)
Why did I do this? I wanted to understand what Google interpreted the intent of the reader to be. I made the mistake in the past of assuming I knew what a user was looking for with a search term and it led me to wasting a lot of time on content that wasn’t that useful.
By doing a deep dive into what Google is currently showing for a term you can better understand how you can write content to address their intent. My goal was to write content that was significantly better than anything in the top five results currently. I didn’t have the same domain authority of these pages so if my content was on par with theirs, I knew I had no chance to rank.
What I distilled from my research was that the top results were generally offering transactional resume templates OR they were offering extensive how-to guides for writing a resume. I decided that I would offer both to make my content stand out.
Step 4: The technical stuff
My intent with this post is not to do a deep dive on the technical on-page stuff you have to do to make sure your content is optimized for indexing by Google. There are great approachable, quick guides online to get started with technical SEO.
Making sure your content is indexable and loads quickly is table-stakes for SEO. If you don’t do this, you can write the best content in the world but you won’t appear on Google’s search results.
Step 5: Outline and write
For me, coming up with a detailed content outline was harder than actually writing the content for the data science resume blog post. For each section of the how-to-guide I detailed exactly what I wanted to write about to make the writing process as easy as possible.
To come up with the outline I analyzed the content that was ranking that was transactional (i.e. resume templates) and the content that was more extensive and combined the best of both worlds. First, I created three resume templates that targeted some of my sub-keywords I wanted to rank for (entry level data scientist resume, senior data scientist resume, and data science manager resume).
I created a Google drive folder so that readers could use these templates. I then embedded images of those resumes right in the blog post (be sure to compress your images using something like tinypng to ensure they load quickly) and wrote a bit about why they were good resumes.
Then, I laid out each section of a resume and in my outline wrote quick notes about what I’d say in each section. Once this outline was complete all that was left to do what to fill in that outline with the actual content. I knew the how-to guides that were ranking came in at about 3,200-3,500 words so that was my target word count.
What I’m most excited about with how this content is performing in the early going is that I now have a repeatable process for how to write content for SEO. That process is:
- Detail the parts of your user journey for content ideas.
- Identify long-tailed keywords that have meaningful search volume that are not too difficult relative to your domain authority
- Also be sure to choose sub-keywords that you can target with your content related to your primary keyword
- Do a detailed analysis of the current content that’s ranking for your primary keyword.
Follow these steps and over time you’ll begin to see organic traffic to your site. I’m still learning and my hope is that as I learn I can pass that knowledge onto you.