SEO is easy--in theory. Just create content that answers the question your audience enters into a search bar and, voila! You’re optimized.

We all know it takes so much more than that. But the general theme is right.

You have to first know what terms the right people—people who would actually buy or use your product—might use to find you. And there, as Shakespeare would say, is the rub. It’s also where a keyword matrix can make your life so much easier.

Starting out, you can just pick a handful of relevant search terms and use them to guide your SEO and Google Ads strategy. But, eventually, you’ll hit a traffic plateau and need to find more keywords to bid on and rank for. And that’s when things get messy.

A web page that’s landed the top spot for a medium-volume keyword (> 1k-per-month searches) can easily rank for more than 1,100 additional keywords. That’s 1,100 different questions an audience is entering into a search bar to find that one page of your website. Multiply that by all your pages and all your blog posts. That’s a lot of potential keywords to target.

How do you determine which of those keywords are worth trying to rank higher for? And how can you keep an ever-growing list of keywords organized?

A well-constructed keyword matrix is a necessary research tool for a business that’s growing their SEO strategy beyond a handful of keywords. A matrix will help you visualize which keywords are valuable and attainable while making it easy to continually expand your keyword list as your business grows.

What is a keyword matrix?

A keyword matrix is simply a list of keywords and keyword data that’s usually contained in a spreadsheet or other data organizational tool (like Airtable).A matrix can contain several columns with all sorts of different data points you use to compare each keyword. What data you choose to include will depend on the goal of your keyword research.Let’s say, for example, you’re marketing for a chain of running shoe stores. You want to start a blog and create content that will drive organic traffic to your website.Your keyword matrix might look something like this:

A sample keyword matrix

A keyword matrix is flexible. If you wanted to use it to find the right terms to bid on in Google Ads (Adwords), no problem: just add a column for cost-per-click and away you go.

In this post, we’ll build a keyword matrix for a budding content strategy together. Then you can use this strategy to create a matrix to suit your own goals.

How do you build a keyword matrix?

Creating a keyword matrix is really just an organized method of keyword research. You can create a useful keyword matrix with just three steps:

  • Generate a list of potential keywords
  • Assign intent to each
  • Compare the value vs. the accessibility of each

Let’s run through each step.

Step 1: Generate a list of keywords

Our keyword list will start with broad head terms. Then we’ll build off of them to find more specific body and long-tail keywords.

Head terms are short, one-word search queries, like “running.”

Middle or Body terms are slightly longer, more narrow queries, like “running shoes.” We occasionally refer to these as "short tail" terms, mostly because of the recognizability of their counterparts--long tail terms.

Long tail terms are very specific queries, like “the best men’s running shoes for beginner runners.”

Generally speaking, head terms get a lot more traffic (people using that term in a search bar) than long tail terms.


If head terms get a lot more traffic, why bother finding long tail terms? Two reasons.

First, lots of websites are fighting to land a high spot on the search engine results pages (SERPs) for those high-value keywords. It would be nearly impossible for our running blog to win that fight just starting out. We’ll get more traffic by landing on the front page of a low-volume keyword SERP than if we had the 156th spot of a high-volume phrase.

Second, even though fewer people use a specific long tail keyword, those people often have a clear intent that’s easier to match with content. When someone searches “shoes,” it’s difficult to know what they want, who they are, and what they hope to do next. If someone searches “men’s running shoes for beginners,” you get some useful intel about them and their goals. Even though we’re targeting less-competitive long tail keywords now, the process starts by identifying head terms.

Gather head terms

Head terms come from general topics your customers might want to know about. This is the time to be creative and brainstorm. Since we’re looking for topics for our running store blog, we might consider:

  • running shoes
  • running training
  • running recovery
  • running races
  • running injuries

We could have when one step broader and started with the term “running.” But after a quick look at potential associated keywords, it was clear we would have had to sift through keywords around running a political campaign or running a software program.

The lesson is to go broad, but not too broad. We also don’t want to get overwhelmed on our first version of this matrix. So we’re starting with about five head terms. They’ll each be a jumping-off point to find long-tail keywords. Each head term will get its own tab in our matrix.

Find long-tail terms

There are lots of strategies you can use to find valuable long-tail keywords from head terms. This resource will walk you through several really good ones.

This example needs to be simple, so we’ll use the Similar Keywords feature of SpyFu’s Keyword research tool. The Similar Keyword feature allows us to quickly find a list of search queries related to our head term.

Here’s what you get when you enter “running injuries” into the Keyword Research toolbar and choose Similar Keywords as the search type.

All of the terms on this list are potential body or long-tail keywords for us. Eventually, we’ll download this list of questions and place it into our keyword matrix. Right now, there are nearly 4,000 results, so we want to narrow the list down a bit first.

Step 2: Compare volume vs. competitiveness

A good keyword is one that is used by your customers and that you have a chance to rank for.

In our results, “volume” shows how many people use a term to find an answer. The higher the volume, the more total traffic you can capture.

“KD” (keyword difficulty) shows how hard it will be to rank for a search term. It’s presented on a 0–100 scale, where the higher the number, the more competitive those SERP spots are.

Since we’re looking for keywords our new blog can rank for, we’ll refine our list to skip the most competitive keywords.

We now have 39 keywords left—a much more manageable list. If we had an established blog that already ranked well for other keywords, we might prioritize our search for terms with higher volume instead of keyword difficulty.

You can also see a column for CPC. That’s super helpful when you build your matrix of paid keywords.

Export the list to a CSV file (button in the top-right corner) or, once you have a spreadsheet started, copy the selections to your clipboard. Then, cut and paste the results to the Running Injuries tab of your keyword matrix.

The matrix is already useful. We can quickly find low-competition keywords that had some search volume. But we want to consider one more factor that will help us choose which keywords to target with blog content.

Step 3: Assign search intent to your chosen keywords

Search intent describes the reason someone chose to enter a particular word or phrase in a search bar and what they hoped to receive as a result.

For example, if someone entered “sourdough bread,” did they want to find a sourdough-bread store, download a sourdough recipe, or learn what sandwiches pair well with sourdough bread?

Assigning search intent is an important aspect of your keyword matrix because:

  • It tells you which type of content to provide and what information to include in your content.
  • It acts like a natural filter for qualifying website traffic. If people searching for sourdough bread want a recipe, it’s not a good keyword if you’re a bakery that sells the finished product.
  • Your content will be more relevant, and Google rewards relevance. Plus, Google’s BERT natural language processor prioritizes relevance over even matching keywords.

There are four types of search intent:

Informational: People are looking to learn about a topic.

For example, “how to create a keyword matrix,” “bake sourdough bread,” and “how to train for my first 5k” are informational search queries. How-to articles are perfect content for this search intent.

Transactional: People are looking to purchase a product or service.

“SpyFu Professional Membership,” “where do I buy sourdough starter,” and “Nike men’s running shoes on Amazon” are transactional key phrases.

Landing, product, and pricing pages are the likely result for these searches.

Navigational: People want to navigate to a specific website.

Navigational searches would include things like “SpyFu blog,” “Sourdough enthusiasts how-to page,” and “Runner’s World magazine login.”

There’s usually no content to create for these search queries because people are looking for a specific website already.

Commercial investigation: People are researching product categories.

“Best dog harnesses,” “low cost bread makers,” and “best running tracker apps” are all investigational search terms.

Bottom-of-the-funnel content that shows the value of your product fits here.

Now, we’ll go through our list of keywords and assign a type of intent to each.

Note that intent isn’t a quantifiable data point, like keyword volume is. Assigning intent can be an exercise of best judgment. In some cases, a single keyword can have multiple intents.

These keywords were pretty straightforward. If you’re not sure which intent to choose, enter the keyword in the Google search bar, and see what type of content shows up. If you see lots of product ads, it’s probably either commercial investigation or transactional. A SERP full of how-to posts and videos tells you it’s an informational keyword.

This is our completed, simple keyword matrix for the term “running injuries.” You can complete the process for each of the head-term tabs you’ve added.

Working from an existing list of keywords

Let’s say you’ve already done some homework and brainstorming to collect a list of long-tail keywords that might be good potentials. How do you take that list and match data like search volume and difficulty to each of those keywords?

You could put each of those keywords in a keyword research tool. But that would take a lot of time if you have dozens of keywords.

Instead, you can cut and paste that list to SpyFu’s Bulk Keyword feature.


SpyFu will instantly return your keyword list automatically filled with CPC, KD, and volume.

No matter how you’ve built your keyword matrix, once you have the data you’re ready to make some decisions on which keywords are worth targeting with content.

Using a Keyword Matrix to Surface the Best Keywords

Using your matrix means scanning the list to find keywords that have the most volume at a difficulty rating your blog or website can be competitive for.

That job gets much easier when you sort the list by the columns you want to compare. Especially when your list has hundreds of keywords (which it will, eventually). As mentioned earlier, we’re looking for keywords with a lower difficulty so our new blog has a fighting chance at winning a spot on a SERP.

So we’ll sort our matrix by ranking difficulty first, and then by search volume. Here’s what the reordered list looks like.

It’d be great if we found some unicorn keywords—keywords with both very high volume and low difficulty. They don’t happen often, but when they do, take advantage.There are no obvious unicorns on our list, so let’s look for the highest-volume keywords toward the lower end of the difficulty scale.

Check out lines eight and nine on the list; both keywords have a difficulty of 55, but “running injury free” gets more than 2x the traffic of “how to get back to running after injury.” At 125 searches per month, it’s also in line with the rest of the list. It looks like “running injury free” could be a good keyword for us.

But what about intent? “Running injury free” is an informational keyword. That means it’s perfect for a how-to, educational post—exactly what we want for blog traffic. If it were a navigational keyword, that probably wouldn’t work.

We now have our first target keyword that makes sense for a blog post and balances decent traffic with an achievable keyword difficulty. Now, we just rinse and repeat until we have enough keywords to fill a content calendar.

Start simple and iterate with your keyword matrix

There’s a term you can borrow from product developers to guide the creation of your first keyword matrix. It’s called the minimum viable product (MVP). An MVP is the simplest usable version of something. The idea is to avoid paralysis by analysis and get a basic version of a product out and doing work. Then, you can iterate on it as you go.

A mature keyword matrix can have a dozen columns, dozens of head-term tabs, and hundreds or thousands of long-tail keyword potentials. When you see all the data and keyword options available, it’ll be tempting to jump in and create a matrix with that level of complexity.

Instead, create an MVP version of your keyword matrix like we did here. Use it to find a handful of target keywords. Then, begin adding other data columns and head terms as you go.