Overview

Keyword research decides which questions a site tries to rank for and in what order. The output is a prioritized list of terms tied to a page format and a target cluster. Volume alone is a trap; pair it with intent and difficulty or the list rots inside a spreadsheet.

Run the tool stack in pairs, never solo

One tool overstates its own database; two tools agreeing is a useful signal.

  • Ahrefs and SEMrush for volume, keyword difficulty (KD), and competitor gap reports. Both for confirmation; pick one as the source of truth.
  • Google Search Console for terms a site already ranks for on page 2 or 3. These are the cheapest wins; the page exists and Google has already decided it is relevant.
  • Reddit and Quora for the phrasing humans actually use. Search a topic, read the top three threads, and copy the question titles. These are zero-volume in Ahrefs and high-converting in practice.
  • Google autocomplete and the “People also ask” box on every target SERP. Free, real-time, and ranked by recent query frequency.

Classify every term by intent before ranking it

Four intent buckets. The page format follows the intent, not the keyword.

  • Informational: “what is X,” “how does X work.” Definition-led explainer with H2-per-subquestion structure.
  • Navigational: “X login,” “X docs.” Send the reader to the destination; do not write an article.
  • Transactional: “buy X,” “X pricing,” “download X.” Price, plan, CTA above the fold.
  • Commercial investigation: “X vs Y,” “best X for Y.” Comparison table, criteria, verdict.

Mismatched intent loses the slot. See content for the format-per-intent rules.

Verify intent by scraping the live SERP

Tools guess intent; the live SERP confirms it. For every shortlisted term, open the first ten organic results and classify what Google has already rewarded.

  • Nine listicles? The slot is “best X.” Do not ship a 600-word explainer.
  • Nine docs pages? Informational. A comparison post will not rank.
  • Mixed formats? The intent is ambiguous; pick a different term.
  • A r/Reddit thread or a Stack Overflow answer in the top five? The intent is informal; ship a direct, conversational answer.

Automate this with a SERP API (Serper, ScrapingBee, or DataForSEO) if the shortlist exceeds 50 terms.

Trade volume for difficulty deliberately

A 10,000-volume term at KD 80 is worth less than ten 800-volume terms at KD 20.

  • New site, fewer than 100 referring domains: target KD 0 to 20. Long-tail only.
  • Established site, 100 to 1,000 referring domains: target KD 20 to 50.
  • Authority site, over 1,000 referring domains: KD 50+ is reachable, slowly.
  • Never chase a KD-90 term as a primary topic. Build the cluster underneath first.

Prefer long-tail terms with three or more words

Long-tail terms convert better, rank faster, and aggregate into authority on a topic.

  • “Postgres” is a head term: high volume, KD 80+, navigational and informational both compete.
  • “Postgres backup pg_dump parallel jobs” is long-tail: 50 to 200 monthly volume, KD under 10, one clear intent.
  • Ten long-tail wins rank a site for the head term within 12 months. Chasing the head term directly does not.

Tie every term to a target page in a cluster

A keyword list with no page assignments is a wishlist. Each term maps to one URL, owned by one cluster.

  • Pillar page: the head term of the cluster. One per cluster.
  • Cluster pages: the long-tail variants and sub-questions. Five to fifteen per cluster.
  • Never assign two URLs to the same term; the pages will cannibalize each other.

Pair the list with the architecture rules in content-clusters and the inbound link plan in internal-linking.