cartoon of a man pressing a button on a machine with "keyword" written on it. There is smoke coming out of the machine.

If you are an SEO in a niche market, chances are you’ve honed your craft to be more efficient and deliver higher quality than industry outsiders. The only problem is that is exactly what’s expected. This cat-and-mouse game between expectations and reality can often drive innovation, which is what happened when my teammates and I created our niche keyword generator. 1

What is a niche keyword research generator?

A niche keyword research generator produces a keyword list with built-in clustering in seconds using common query patterns specific to your vertical. And best of all, beyond a small investment for the initial research, it is completely free.

niche keyword research tool gif of someone typing "GOATBeard" in the Brand Name field and "Stepback" in the Product Name field, resulting in keywords being generated with those terms in placeholder areas

Why build a niche keyword research tool for your industry?

The challenge with being more efficient and effective is the prioritization of the two, because although there are exceptions, a step towards one is often a step away from the other. Some tasks are repeatable and scalable; those are where efficiency shines. Other tasks deserve careful thought and a personalized approach.

For us, this niche keyword generator provides either an immediate starting point for last-minute requests or a safety net to fill in any gaps at the end of a long research project. Ultimately, this generator won’t give you all of the insightful, hidden gems 2. By its nature, every research project is treated the same. However, its intent is to automate the obvious so you can spend more time where it counts.

  • No matter the disease, we’ll research its symptoms.
  • No matter the makeup, we’ll want to know if it’s cruelty free.
  • No matter the SaaS product, we’ll look for a free trial.

These patterns are predictable and measurable. Using keyword data from your specific industry and a little help from Microsoft, you can generate these patterns for and create a custom keyword generator specifically for you.

11 steps to build your niche keyword list generator

This idea could be executed in a variety of ways. So, if you’re looking for a step-by-step guide, simply follow the instructions below. However, if you enjoy iterating and creative problem solving, apply these core principles, and make it your own.

What you’ll need to get started

1. Choose your branded and unbranded seed terms

Every niche has problems and solutions. Typically, unbranded terms span both categories while branded terms fall under solutions. Create a list of root terms in the branded and unbranded space. Shoot for terms with the following characteristics:

  • High Volume – The more popular your root terms are, the more long-tail variations will surface in your research, which are critical to creating this keyword generator.
  • Diverse – You’ll want to cast out a net as wide as your industry. The segments you’re most familiar with can add bias to your list, so make sure you choose root terms that are collectively representative of your entire space.
  • Unequivocal – Root terms with multiple meanings can create additional noise in your data. It doesn’t necessarily mean you should throw them out, but be aware they may require some extra downstream cleanup.

I’m going to explore the men’s grooming space for this exercise. However, as a quick disclaimer, I have never been able to grow a strong beard, and I’m woefully ignorant about this category, so apologies if I missed something obvious. 4

Branded Seed Words

Here are the brands I chose. You’ll notice I didn’t include popular brands like Old Spice or Gillette. That wasn’t intentional; they just weren’t on some lists I quickly googled. I trust you know your space much better.

Branded: Dollar Shave Club, Uppercut Deluxe, Pacific Shaving Company, Peckerhead Mustache Wax, Duke Cannon, The Detroit Grooming Company, Grooming Lounge, Beluga Shave Company, Harry’s, Admiral Supply Company, Ursa Major, Birchbox Grooming, Beardbrand, Bevel, The New York Shaving Company

Unbranded Seed Words

Unbranded terms are a little trickier and may require some trial and error. Although unbranded queries can be found throughout the funnel and consist of all parts of speech, it’s better to choose one spot in the funnel and mostly use nouns. Why? This generator is meant to find common query patterns, and if the root terms don’t have many commonalities, their query patterns may not either.

Unbranded: shaving products, shaving kit, shaving cream, shaving box, shaving set, shaving subscription, shaving accessories, grooming products, grooming kit, grooming box, grooming set, grooming subscription, grooming accessories, beard balm, beard oil, beard trimmer, beard wash, beard supplies, beard kit, beard trimmer, shave kit, shave cream, shave lotion, shave butter, shave gel, shave products, shave supplies, shave starter set, pomade, shave balm, lip balm, balm supplies, balm products, facial cleanser, face wash, body wash, shampoo, conditioner, razor, prep scrub, soap, hair paste, hair cream, hair putty, hair trimmer

Quick Tip: To find additional unbranded terms, download rankings from your branded sites. Then combine the data and find the most overlapping unbranded terms.

2. Adjust terms to phrase-match perfection

In step three, you’ll be downloading all keywords containing your terms (i.e., phrase match), so you’ll want to add and remove modifiers as necessary to ensure you get the most comprehensive and relevant dataset.

For instance, consider “the new york shaving company”. Do you think everyone who searches for it includes all five words? Probably not. So, if you leave it as is, you’ll miss out on some helpful data. However, if you trim too much, like to “new york”, you’ll end up with completely irrelevant terms. For this one, I settled on “new york shaving”.

Quick Tip: To ensure your revised seed terms aren’t too restrictive, download rankings from your branded sites and use text filters with the same rules to see which queries wouldn’t make the cut. It’s not likely you’re going to get 100% coverage without opening yourself up to lots of irrelevant queries, but just make sure you’re in the ballpark. For others, like “harry’s” and “ursa major”, your options are limited. This is fine. It’s better to be too inclusive than too restrictive in most cases.

Official Brand Name Phrase Match Term
Admiral Supply Company Admiral Supply
Admiral Supply Company Admiral Pomade
Beardbrand Beardbrand
Beluga Shave Company Beluga Shave
Bevel Bevel
Birchbox Grooming Birchbox Grooming
Birchbox Grooming Birchbox Man
Detroit Grooming Company Detroit Grooming
Detroit Grooming Company Detroit Beard
Dollar Shave Club Dollar Shave
Duke Cannon Duke Cannon
Grooming Lounge Grooming Lounge
Harry’s Harry’s
Pacific Shaving Company Pacific Shaving
Peckerhead Mustache Wax Peckerhead Wax
Peckerhead Mustache Wax Peckerhead Mustache
The New York Shaving Company New York Shaving
Uppercut Deluxe Uppercut
Ursa Major Ursa Major

You’ll notice I chose two different phrase match terms for certain brands. In these situations, you’ll want to combine the keyword data into one file and dedupe it so the query patterns aren’t double counted.

If you planned out your unbranded root terms well, this step may only be needed for the branded terms.

3. Download all phrase-match keywords

Once you have your list of branded and unbranded phrase-match terms, it’s time to download their variations in your preferred keyword research tool.

If you’re using Ahrefs, navigate to Keywords Explorer and conduct your first search. Next, you’ll select “Matching Terms” in the left-hand navigation. Finally, you’ll select “Phrase match” to ensure it gives you all available keywords that include your seed term in its exact order.

Ahrefs keyword detail interface with an error pointing to the Matching Terms menu item
An Ahrefs Keywords Explorer keyword filtering interface with an arrow pointing to "Phrase match"
Export the keyword list, then repeat this process for all other terms. This part of the process is easy but time consuming. I recommend accompanying with the album, podcast or TV show of your choice.

Quick Tip: f you can swing it, use Ahrefs, Moz and SEMrush for a more comprehensive list. While I’m often partial to Ahrefs, each SEO tool has a unique dataset that reaches another level of comprehensiveness when combined.

4. Use ‘find and replace’ to generalize the terms

Open up each spreadsheet. For the branded sheets, use the find and replace feature to change all brand references to [Brand]. For the unbranded spreadsheets, do the same thing with the root product terms and replace with [Product], or whatever name is applicable to your niche.

It should look something like this.

Original Generalized
admiral [Brand]
admiral supply coupon [Brand] coupon
admiral supply shampoo [Brand] shampoo

For some of your phrase-match terms, a single find and replace will do the trick. With others, however, you’ll need to be deliberate about which terms you use and in what order. The general rule is to start broad and get specific.

Let’s use The Detroit Grooming Company as an example. I found-and-replaced these terms in this order:

  1. the detroit grooming company
  2. the detroit grooming co
  3. detroit grooming company
  4. detroit grooming co
  5. detroit grooming

In situations like this, you’ll end up with duplicates. For instance, if “the detroit grooming company shaving cream” and “detroit grooming shaving cream” were both in your dataset, you would have two terms that now say “[Brand] shaving cream”. Make sure when you deduplicate your queries, your keyword list is sorted by search volume. This will ensure your highest-searched variation makes the cut, which can be used later in selecting your final list.

While you’re in each spreadsheet, rename all of the tabs to have identical names. It doesn’t matter what the name is as long as it’s the same across all spreadsheets. This will be helpful when uploading to Power BI. Some keyword research tools have consistent tab names, while others do not.

Quick Tip: This vertical doesn’t contain many geo-modifiers, but if your vertical does generate explicitly local searches, add [City] and [State] (or region, county, etc.) to your find-and-replace process. You won’t need to do it for every location to get the main query patterns; the most popular places should be enough.

5. Upload spreadsheets into Power BI

While these next three steps are in Power BI, you can also accomplish this in Excel if you have a small enough dataset.

  1. Open Power BI.
  2. If there’s a pop-up upon load, close it.
  3. In the top menu within the “Home” tab, click the “Get data” dropdown and select “More…”.
  4. Select “All”, then “Folder”, then “Connect”.
  5. Click “Browse”, and select the folder containing your branded query exports, then select “OK”.
  6. Click the yellow “Combine” dropdown, and select “Combine & Load”.
  7. You should see your common sheet name nested under a folder. Select it and click “OK”.
  8. Repeat steps 3-7 for your unbranded query exports

6. Add overlapping keyword counts

    1. On the left side of your screen, select the second of three icons called “Data”. The icon looks like a spreadsheet.
    2. On the right side of your screen, select your branded queries.
    3. In the top menu within the “Table tools” tab, select “New column”.
    4. In the top menu, the “Column tools” tab should be selected. In the “Name” text box just below, rename your column to “Overlapping Keyword Count”.
    5. In the formula field, write this formula:
Power BI Formula Example
 Overlapping Keyword Count  =
COUNTX (
FILTER (  ‘Branded Queries’ , EARLIER (  ‘Branded Queries'[Keyword]  ) =  ‘Branded Queries'[Keyword]  ),
 ‘Branded Queries'[Keyword]  )
 Name of the column you just created   Name of your sheet   Name of your sheet and keyword column 

formula text box in Power BI

  1. Repeat steps 2-5 for your unbranded dataset.

7. Find the most common niche keyword patterns

    1. Just above the “Data” icon on the left side of your screen, select the “Report” icon.
    2. In the top menu within the “Home” tab, select “Refresh”.
    3. Select the “Table” icon in Visualizations menu.

Power BI Visualizations menu with a square around the table icon

    1. On the right side of your screen under the “Fields” pane, select your branded query dataset.
    2. Click the boxes next to “Keyword”, “Overlapping Keyword Count” and “Volume”.
    3. Below the “Visualizations” pane, you should see the three metrics you just selected listed under “Values”. Change the “Overlapping Keyword Count” from “Sum” to “Count”. 5
    4. Click out of the table into the whitespace, and select the “Card” icon.

Power BI Visualizations menu with a square around the card icon

    1. Select “Keyword” under your branded queries dataset within the “Fields” pane (far right).
    2. Below the “Visualizations” pane just under “Fields”, change “First Keyword” to “Count (distinct)”.
    3. Click out of the table into the whitespace. Select the “Slicer” icon.

Power BI Visualizations menu with a square around the slicer icon

  1. Select “Overlapping Keyword Count” under your branded queries dataset within the Fields pane (far right).
  2. Toggle the minimum keyword count until you feel like you have a manageable list. Remember, you’ll need to validate and potentially categorize these queries, so settle on an amount you feel is comprehensive yet practical.
  3. At the bottom of the page, click the yellow button to add a new tab. Repeat steps 3-12 for your unbranded queries.

Power BI table with of the keyword patterns, a card that counts the number of terms, and a slicer for overlapping keyword count

Your overlapping unbranded queries may include branded terms that need scrubbed. I recommend doing this in Power BI instead of later on in Excel so you have a better idea of how your “Overlapping Keyword Count” minimum threshold affects the size of your list.

8. Choose your keywords

If you hover over each table, you’ll see an ellipsis in the upper-right corner. Click on it to export your filtered keyword list into CSV. The rest of this exercise will be done in Excel.

Sift through your keywords and exclude those that don’t make sense. For my men’s grooming keywords, I removed dog-related product keywords and product keywords mentioning other brands.

After cleaning my list, I was left with terms that were nearly universal to my industry. It doesn’t matter what type of men’s grooming product; people often want to know things like:

  • black owned [Product]
  • cruelty free [Product]
  • best [Product] for ingrown hairs
  • can i take [Product] on a plane
  • how often should you use [Product]
  • how to make [Product] at home

Similarly, these queries seem to pop up regardless of the brand:

  • [Brand] coupon code
  • [Brand] reddit
  • [Brand] free shipping
  • [Brand] samples
  • [Brand] travel kit
  • [Brand] near me
  • [Brand] return policy

9. Categorize your keywords

Consider your own categories

When specializing in a single or small set of verticals, I highly recommend developing your own standard categorization. Tools like Ahrefs do a decent job across an incredibly large corpus of keywords, but they’ll ultimately never know your industry like you do. Having your own categories helps you more effectively evaluate a given dataset and compare it to others in the space.

Categorize by search intent

The easiest approach to clustering keywords is to group by root term commonality. It gets a little more difficult when you start including synonyms. On the other hand, the most challenging way to cluster your search queries is by intent. However, it’s also undeniably the most useful way. Let’s face it. You can say the same thing without using the same language.

For example, consider these three phrases:

  • how to apply [Product]
  • how much [Product] should i use
  • putting on [Product]

They have almost no shared words, but they are all centered on the same topic. Having keywords grouped this way enables you to know how important a particular topic is to your audience. But how do you go about doing this in an efficient way?

Work smarter, not harder

Like I said, grouping by search intent is difficult. One key advantage of clustering your keyword generator list is you only have to do it once. This means each subsequent time you use the generator, your terms are instantly categorized.

You might be rightfully wondering, “What about all of my other keywords? How am I supposed to categorize those?” Fair question. On my team, we have built our own machine-learning categorization tool that has been fed over 150,000 rows of manually and synthetically categorized training data 6. While I can’t speak to the ins and outs of how we built it, there are plenty of third-party tools out there. I haven’t used it personally, but what Andy Chadwick and Suganthan Mohanadasan at Keyword Insights have built looks promising.

10. Build your spreadsheet [or use my free template]

Surprise! I’ve already done that for you. Here’s a Free Niche Keyword Research Template for you to use.

Let’s skip to the next section to learn how to customize it for your needs and industry.

11. Customize your spreadsheet

To add a new category dynamic input (e.g., alternate product name, competitor, location, second product), add another row above row 4. Then once you’ve added it, select the cell where someone would be writing in the new keyword in column B. Then go to the “Formulas” tab, select “Name Manager” and then “New”. Name it and select “OK”. Close out of the dialog box.

You will need to make sure your keyword list includes these dynamic elements as well (see [Product] and [Brand]).

Next, you will need to update the formulas in column B. Below is a breakdown of how the current formula is built for you to customize as needed.

=IF(AND(ISNUMBER(SEARCH(“[Brand]“,[@[Keyword Patterns]])),LEN(Brand_Name)<1),"MISSING INPUT", IF(AND(ISNUMBER(SEARCH("[Product]“,[@[Keyword Patterns]])),LEN(Product_Name)<1),"MISSING INPUT",SUBSTITUTE(SUBSTITUTE([@[Keyword Patterns]],”[Brand]“,Brand_Name),”[Product]“,Product_Name)))

The keyword placeholder in column A
The name of the first column in your table
The Name given to the user inputs (via Name Manager)

What’s next?

Building a list is only one step in the keyword research process. There’s still plenty to do beyond this, like combining with your other keyword list, finishing all categorization, selecting keywords to target and optimizing them accordingly. I wrote an extensive guide to SEO keywords in case it’s a helpful reference.

At a more macro level, it’s critical to not let this niche keyword research tool go stale. The most universal keyword patterns today for your industry may not be that way tomorrow. Sometimes large events, like a global pandemic, can turn search behavior on its head for a particular niche. However, what happens more commonly is our needs and language gradually evolve over time.

On my team, we hope to eventually use APIs from tools like Google Search Console, Ahrefs and Semrush to automatically update our niche keyword generator.

If you decide to give this a whirl by making your own niche keyword research tool, let me know how it goes. You can contact me here.


  1. This was originally published on Semrush’s website but has since been taken down. As a result, I have refreshed it and put it on my own site↩

  2. Even though this guide is a little old, many of the concepts still hold up to find these hidden gems↩

  3. I have written in the past about comparing tools like Ahrefs, Semrush and Moz. I encouraged you to see which tool works best for your specific vertical.↩

  4. Also, I wrote the first version of this while hunkered down in the pandemic and trying my hand at some DIY haircuts. All that is to say the keyword examples I list below are old and are there for illustrative purposes only.↩

  5. You may have to widen your table to see the additional columns.↩

  6. Yes, this was painful and (still is a) labor of love↩