Blog/SEO
July 6, 20265 min read

Keyword research for SEO : a step-by- step guide for semantic research

Leonid Kurza
Leonid Kurza
Co-Founder at SEO Dream Team
LinkedIn
Hazem Klafla
Hazem Klafla
SEO specialist
LinkedIn

Most SEO specialists start keyword research with a tool: they open Ahrefs or Semrush, type in a

couple of words, and export thousands of queries. That's the core mistake. The result is a pretty

keyword set that doesn't make money, because it was built in isolation from how the business

and the site actually work.The right framework flips the logic. Your semantic core serves the

funnel and the site structure, not the other way around. What follows is a sequence that scales

from a single landing page to a portfolio of thousands of URLs. The guiding principle we'll keep

coming back to: SERP and intent first, numbers second — and always a single reference source

for your metrics.

Step 0. Goal Before Keywords

Before you open any tool, answer two questions: what converts on this project, and which page

is the "money" page. Keyword research isn't an exercise in exporting words — it's a way to

decide which pages to create, for which intent, and in what order.

Skip this step and you'll build a semantic core "in general" rather than one tied to results. So you

fix the business logic first: which categories and services drive profit, which pages need to exist,

what matters to cover first. Everything else follows from that.

One such keyword research tool is Semdash. Once you sign up or log in, you'll find Keyword

Discovery in the left-hand menu. It lets you pick a country and language, then enter up to 50

keywords at once. Later we provide all data for the United States for the purpose of our example.

Say we're building a site about virtual servers, with a focus on anonymity and DDoS protection. The obvious anchor keyword here is "vps hosting" — Semdash puts its search volume at around 8.1k a month, with a keyword difficulty (KD) of 60.

A KD that high means breaking into the top of Google will be hard — these keywords are held

by big players. There's also a subtler problem: someone typing "vps hosting" may not yet know exactly what they need. But shift attention to terms like "anonymous vps" or "ddos protected vps," and you meet a buyer who knows precisely what they want — and far less competition standing in the way.

Let's take another keyword as an example — "ddos protected vps." Here's what Semdash shows:

In this example we have a low-volume keyword — 590 searches a month in the United States, at a KD of around 26, far below the more competitive terms in the industry.

So let's wrap up phase 0. Before you start keyword research, you need a set of seed words — 5, 10, 15, maybe 20–25 — that describe your product or service. Aim for a wide spread of semantics that covers the whole topic. The aim is to build this list thoroughly — every service and every product deserves its own spot in the seed set, so nothing about your offering goes unrepresented. Clusters like these are where I start building the core. I don't drop "vps hosting" either — it's the long game. But my main focus is the keywords that can generate income for the site quickly, since climbing to the top of Google for highly competitive terms can take time.


Step 1. Seed Queries

Research starts with a small set of seed queries pulled from several sources at once — so you don't miss entire topic areas. Here are the main ones:

  • Google Search Console — what you're already found for. The most honest source: these are real queries from real people, not hypotheses.

  • The language of your product and categories — what your services, products, and sections are actually called.

  • Customer phrasing — from emails, support chats, reviews, and calls. People describe a problem differently than marketers do.

  • 3–5 competitors — their categories and headings as a starting map of the market.

Don't invent words on the user's behalf. The goal of this stage is to capture the phrasings people actually type into search, not the ones that sound nice.

As you'll recall, our example is a site about virtual servers. We don't have Google Search Console

yet, because the site doesn't exist. What we do have is a keyword list, since we already know which services we want to offer. Our other main source is competitor analysis — and the good news is that Semdash helps with exactly that, through a tool called Domain Keywords. 

All you have to do is enter a domain name, and you'll see the full list of keywords Google ranks that site for. That's exactly what we did for our virtual-server example, plugging in one of the competitors. As the screenshot below shows, it pulls more than 30k keywords — far too many for the task at hand

In that case it makes sense to narrow the list down, and Semdash offers a few tools for exactly  that. You can use one of the following filters:

  • Keyword average DR

  • KD

  • Position

  • Include keywords

  • Exclude keywords

  • Intent (Informational, Commercial, Navigational, Transactional)

  • CPC (in USD)

  • Ignore Symptoms

  • AI Opportunity

You may have your own criteria, but in my view the Keyword Difficulty (KD) and Include Keywords filters are the most useful, since they let you narrow the search down significantly.

To sum up: by combining all the approaches described above, we've arrived at a list of 21 seed words to take into the next stage of keyword research. Here's the result — and we're happy with it.

Step 2. Expanding the Core

Now the seeds need to be expanded into a broad core. To do that, you can use Semdash's keyword research tool. Go back to the same section of the site — Keyword Discovery — and enter your list of seed keywords. The rule is simple: one keyword per line, no more than 50 at a time.

The jump is striking. Our 21 seeds expanded into 498 keywords — and it could just as easily be several times that. The more, the better at this stage: it's exactly what we want heading into the next phase.

Step 3. Cleanup

A broad export always contains junk, and this stage determines the quality of everything that follows. What to remove:

  • Irrelevant terms and languages

  • Duplicates and near-duplicates

  • Brand outliers and anomalies — queries with suspiciously high volume that don't belong to the topic, typo clusters, garbage tails. Cut these without mercy.

After cleanup, it pays to normalize what's left: bring it to a consistent form, strip unnecessary stop words, merge the obvious variants. The output is a clean base you won't be ashamed to keep working with.

In our example, the initial 498 keywords come down to 313.

Step 4. Metrics and a Single Reference

Now you enrich the base with data: volume, difficulty (KD), intent, SERP features, and current positions. And here's the rule that gets broken more than any other.

Pick one tool as your single source of truth for volume and KD, and compare queries only within it. Every service calculates these on its own scale and formula — Ahrefs leans mainly on referring domains, others fold in factors of their own. Mixing their numbers in one table is a trap: you end up comparing the incomparable. Volume and KD are estimates, not facts — so what matters is the relative gap within one source, never the absolute figures.

Step 5. Cluster by SERP, Not by Words

This is the dividing line between an amateur and a pro. Most people group queries by word overlap: anything containing "buy coffee grinder" goes in one pile. That leads to cannibalization and dilution.

The right way is to cluster by what Google actually ranks together. Take the top of the SERP for each query and look at the overlap of URLs. A practical rule:

If two queries share 60–70% or more of their SERP, it's one page. If they diverge — separate pages.

The logic is simple: Google has already decided which content answers a query. If it shows the same pages for two queries, then to Google it's one intent — and you need one page, not two competing ones. The cardinal rule of clustering: one cluster = one URL.

AI and LLMs speed this up a lot here — grouping thousands of queries and pre-labeling them — but the final call is always verified against the live SERP. The machine proposes, the SERP confirms.

SemDash offers very comprehensive Keyword Clustering tool. You may be surprised, but you have even 4 options how you want to group your keywords into meaningful clusters based on different criteria. 

Step 6. Intent and Page Type

Assign each cluster an intent label and a funnel stage, and derive the page type from them::

  • Informational (TOFU) — guides, articles, answers to questions.

  • Commercial (MOFU) — comparisons, listicles, roundups.

  • Transactional (BOFU) — category pages, product cards, landing pages.

This guards against the classic mistake — putting a transactional query on a blog article or vice versa. The page type has to match what the user expects and what Google ranks for that intent.

This guards against the classic mistake — putting a transactional query on a blog article or vice versa. The page type has to match what the user expects and what Google ranks for that intent.

Back to our virtual-server example: clustering collapsed the 498 keywords into 14 groups, and the shape of the niche showed at a glance. Most of the raw volume sits in the generic "virtual private server" cluster — crowded head-term territory, a long-game pillar rather than a quick win. 

The real opportunities are the three specialized silos — anonymous VPS, DDoS-protected VPS, and offshore hosting — each with clear buyer intent at low difficulty (KD ~7–19): people who know what they want, on terms the big players haven't locked down. Clustering also flags what to drop (competitor-brand and foreign-language queries) and lets you tag each group by intent and page type — informational queries become guides, commercial terms become categories and landings, "best/vs" become comparisons. One caveat: this is theme-based grouping, so borderline clusters still need a final check against the live SERP. The machine proposes, the SERP confirms.

Step 7. Prioritization

You can't build every cluster at once, so you need an order. The idea is simple: weigh each cluster's traffic potential and commercial value against how hard it is to rank — and start where the return comes fastest. A high-volume cluster isn't worth much if its difficulty is brutal; a smaller one with clear buyer intent and low competition often pays off far sooner.

Take the quick wins first:

  • Striking distance — queries sitting around positions 5–20 if you already have a website. A little effort pushes them over the line: improve the page, strengthen internal linking.

  • Low-competition long tail — brings traffic quickly and feeds the structure.

The hardest head terms (KD around 90 and up) are a goal for a year out, not now. You don't chase them directly — you start with easier keywords, build up authority on the topic, and work your way toward them over time. Trying to win them from scratch is a waste of effort.

Our cluster map shows what this looks like in practice. The generic "VPS" cluster has almost all the volume (234k), but it's also the most competitive — a pillar you grow into, not a place to begin. The smart first moves are the niche silos: anonymous VPS (KD ~7), DDoS protection (KD ~19), and offshore hosting (KD ~8). All three pair real buyer intent with low difficulty — the quick wins to start with. The cheap/budget and best/comparison clusters sit in the middle: decent volume, medium difficulty (KD ~24–41), worth doing once the easy niches are live.

Two clusters drop out completely — brand/navigational (competitor names, no point chasing) and the foreign/off-topic bucket (leftover junk from cleanup).

Step 8. Mapping onto Structure and Defending Against Cannibalization

Lay the finished clusters onto the site architecture: a pillar page — child pages — deliberate internal linking between them. This turns scattered clusters into a coherent topical structure that Google reads as expertise on the subject.

The key thing at this stage is to make sure two URLs don't hit the same intent. Cannibalization eats positions: pages compete with each other and Google can't tell which one to show. The principle holds here too: one intent — one page.

For our virtual-server site, thearchitecture falls out of the cluster map almost on its own. The generic "VPS" cluster becomes the pillar — the broad category page that anchors the topic — and the specialized silos become child pages beneath it: anonymous VPS, DDoS-protected VPS, offshore hosting, with cheap/budget, best/comparison, and the OS-specific variants around them.

The informational clusters ("what is a VPS") turn into supporting guides that link up to their matching category. Each cluster maps to exactly one page, so nothing competes: the anonymous-VPS landing and the "what is anonymous VPS" guide serve different searchers and reinforce each other.

Step 9. From Brief to Content, and the Refresh Cycle

A cluster gives birth to a content brief, and the brief gives birth to a page. But the work doesn't end at publication. Keyword research isn't a one-off project — it's a cycle:

  • Position tracking — through a single reference tracker, so you can see the trend.

  • GSC mining — regularly pull the new queries you've started being found for and turn them into new clusters.

  • Refreshing and expanding — double down on and deepen what worked; revisit what slipped.

This cycle is what separates a living semantic core from a dead export gathered once and forgotten.

The 2026 Layer: AEO and GEO

A new layer sits on top of the classic framework — optimization for AI answers. More and more users ask their questions directly to AI assistants, and the share of AI Overviews in the SERP keeps growing. What this changes in practice:

  • Conversational question clusters — the share of long, natural phrasings is rising; build separate clusters for them.

  • Entity work — AI systems operate on entities and relationships, not just keywords; this affects whether you get cited.

  • AI-result visibility — add it to your tracking alongside classic positions.

How SemDash can help you? 

Common Mistakes

  • Clustering by words instead of SERP — the source of cannibalization and dilution.

  • Blind trust in a single volume figure — it's an estimate, not a fact; always look at the order of magnitude and the trend.

  • Mixing metrics from different tools — incomparable scales produce false priorities.

  • Starting with a tool instead of a goal — a core untied to the funnel doesn't make money.

  • Page type not matching intent — a commercial query on a blog article won't rank.

Conclusion

A good keyword research framework is defined by one principle: SERP and intent first, numbers second, and always a single reference source for your metrics. Move through the sequence in order — goal, seeds, expansion, cleanup, metrics, SERP-based clustering, intent, prioritization, mapping, refresh cycle — and add the AEO/GEO layer for the realities of 2026.

Most failures in keyword research come down to two things: clustering by words instead of SERP, and blind trust in a single number. Avoid those two mistakes and your core will work toward results, rather than sit there as a pretty table.

Back to all articles