Overview
Keyword research produces a prioritized list of terms, each tied to a page format and a target cluster. Volume alone is a trap; pair it with intent and difficulty or the list rots in a spreadsheet.
Cross-check two tools
Use two sources for volume and difficulty, since each tool estimates from its own database; pick one as the source of truth.
- Ahrefs or Semrush for volume, keyword difficulty (KD), and competitor gaps. KD is a third-party score, not a Google metric, and each tool computes it differently.
- Google Search Console for queries a site already ranks for on page 2 or 3. The page exists and Google already finds it relevant, so these are the cheapest wins.
- Reddit and Quora for the phrasing people use. Copy the question titles from the top threads; they often show zero volume in tools.
- Google autocomplete and “People also ask” on each target SERP, which draw on real searches.
Classify every term by intent
Tag each term informational, navigational, transactional, or commercial investigation, with example queries and formats in content. Mismatched intent loses the slot.
Confirm intent on the live SERP
Tools guess intent; the SERP shows what Google already rewards. Open the first ten organic results for each shortlisted term.
- Mostly listicles means the slot is “best X”; a 600-word explainer will not rank.
- Mostly documentation means informational; a comparison post will not rank.
- Mixed formats mean the intent is ambiguous; pick a different term.
- A Reddit or Stack Overflow answer in the top five means the intent is informal; answer directly and conversationally.
For a shortlist beyond a few dozen terms, collect SERPs through a SERP API such as DataForSEO instead of by hand.
Pick terms you can win
Choose terms by what the top ten look like, not by KD alone. If the first page holds only sites with far larger link profiles, the term is out of reach today; build the cluster underneath it first. A new site wins on long-tail terms; a head term follows once the cluster has earned links, and there is no fixed timeline.
Prefer long-tail terms
Long-tail terms usually rank sooner, carry one clear intent, and add up to topical depth.
- “Postgres” is a head term: broad intent and heavy competition.
- “Postgres backup pg_dump parallel jobs” is long-tail: one task, one intent, few competing pages.
Assign every term to one page
A keyword list with no page assignments is a wishlist. Each term maps to one URL in one cluster.
- Pillar page: the head term. One per cluster.
- Cluster pages: the long-tail variants and sub-questions.
- Never assign two URLs to one term; the pages will cannibalize each other. See cannibalization.
Pair the list with content-clusters and the link plan in internal-linking.