← All posts

How to Do Keyword Research: A Practical Process

Quick answer: Keyword research is the process of finding the actual phrases people type into search engines, then deciding which ones are worth writing for. The practical version has five steps: start with seed topics, expand them into a big list, judge the intent behind each phrase, weigh difficulty against search volume, and cluster related keywords into pages. Done right, it tells you what to write before you write it.

Most bad content starts with a guess about what people want. Keyword research replaces the guess with evidence. It is not glamorous, but it is the difference between publishing into the void and publishing something people are actively looking for.

Here is the process I actually use, minus the tool-vendor theater.

Step 1: Start With Seed Topics

Seeds are the broad, obvious terms at the center of your business. If you sell running shoes, your seeds are things like "running shoes," "trail running," "marathon training." Do not overthink this. Write down five to ten topics a customer would recognize.

The trap here is starting too narrow. If your first seed is "carbon-plate racing flats for 5k," you have skipped straight to a leaf and missed the whole tree. Start broad. You will narrow down in the next steps, where narrowing is cheap.

A good sanity check: for each seed, could you imagine writing ten different articles under it? If not, it is not a seed, it is already a keyword.

Step 2: Expand Into a Real List

Now turn seeds into hundreds of specific phrases. There are three reliable sources:

  • Autocomplete and related searches: type your seed into a search box and read the suggestions. These come straight from real query data.
  • People Also Ask (PAA): the expandable question boxes on the results page are a goldmine of the exact questions people ask around a topic.
  • Keyword tools: Ahrefs, Semrush, Google Keyword Planner, and similar tools take a seed and return hundreds of variations with volume and difficulty estimates.

The PAA boxes deserve special attention because they are phrased as real questions, which maps directly onto how people search now and how AI answer boxes get built. Pulling PAA data at scale is its own small project, and I wrote a walkthrough on scraping People Also Ask for SEO if you want to automate this part instead of copying boxes by hand.

By the end of this step you want a messy spreadsheet with a few hundred phrases. Messy is fine. We clean it next.

Step 3: Judge the Intent

Every keyword carries an intent, and matching it is more important than matching the words. Search intent falls into four broad types:

Intent What the searcher wants Example query What to build
Informational To learn something "how to clean running shoes" A guide or explainer
Navigational To reach a specific site "nike login" Usually not your play
Commercial To compare before buying "best trail running shoes" A comparison or review
Transactional To buy now "buy brooks ghost 15" A product or category page

If you write a buying guide for an informational query, or a thin blog post for a transactional one, you will lose no matter how good the content is, because you answered the wrong question. Before keeping a keyword, look at what already ranks for it. The current results tell you what the engine has decided the intent is. Match that, or pick a different keyword.

Step 4: Weigh Difficulty Against Volume

Now prioritize. Two numbers matter, and they pull in opposite directions.

  • Search volume: roughly how many people search the term per month. Higher is more traffic potential.
  • Keyword difficulty (KD): an estimate of how hard it is to rank, usually driven by how strong the pages already ranking are. Higher is harder.

The beginner mistake is chasing high-volume, high-difficulty head terms like "running shoes." You will not outrank the established sites for those on a young domain. The move is to find the pockets where volume is decent and difficulty is low: long-tail phrases with clear intent.

Keyword type Volume Difficulty Good for
Head term ("running shoes") Very high Very high Established domains only
Body term ("trail running shoes") Medium Medium Sites with some authority
Long-tail ("best trail shoes for wide feet") Lower Lower New sites, high conversion

Long-tail keywords also tend to convert better, because a specific query means a specific need. Ten long-tail pages that each rank easily will usually beat one head-term page that never breaks the first two pages of results.

A note on the numbers themselves: treat tool volumes and difficulty scores as rough, relative signals, not gospel. Different tools disagree, and the absolute figures are estimates. Use them to compare keywords against each other, not to forecast exact traffic.

Step 5: Cluster Into Pages

You do not want one page per keyword. You want one page per topic, targeting a cluster of related keywords that share the same intent.

"How to clean running shoes," "can you machine wash running shoes," and "best way to dry running shoes" are three keywords and one page. Group phrases that a single article could satisfy, pick the highest-volume one as the primary target, and treat the rest as headings and subtopics within that page.

Clustering does two things. It stops you from writing five thin pages that compete with each other (keyword cannibalization), and it produces the comprehensive, well-structured content that both search engines and AI answer engines favor when deciding what to cite.

A Lightweight Toolchain

You do not need expensive software to start. Here is a workable stack:

  • Free: Google autocomplete, PAA boxes, and Google Keyword Planner for rough volumes.
  • Paid: Ahrefs or Semrush when you want reliable difficulty scores and competitor keyword gaps.
  • Programmatic: pull live results and PAA data yourself when you want fresh, at-scale input.

That last option is where an API earns its keep. Instead of manually collecting suggestions and PAA questions, you can query the results page and parse what actually shows up. With link.sc search, one call returns the full results for a query, so you can harvest related searches, PAA questions, and the competing pages in a single pass:

from linksc import Linksc

client = Linksc(api_key="lsc_your_key_here")

serp = client.search(q="trail running shoes", engine="google")
# serpData contains organic results, related searches, and PAA questions
print(serp["serpData"])

Feed that into your spreadsheet and steps two and three get a lot faster. The quickstart has the full setup.

Putting It Together

Keyword research is a funnel: broad seeds in, a prioritized content plan out. Start wide, expand with real query data, sort by intent, prioritize the low-difficulty pockets, and cluster into pages worth writing. Skip the funnel and you are just guessing with extra steps.

The best part is that this work compounds. A good keyword map is a content roadmap you can execute against for months, and it keeps paying off every time you turn one of those clusters into a page that ranks.


Want live results and People Also Ask data to fuel your keyword research? link.sc returns full-content search from one API. Start free.