Skip to main content
SEO Fundamentals·Lesson 2 of 5

Keyword Research

Keyword research is figuring out what your audience searches for and which terms you can realistically rank for. It's the foundation of every SEO strategy.

What Is a Keyword?

A keyword is any word or phrase someone types into a search engine. These are all keywords:

  • "how to make coffee"
  • "best laptop 2026"
  • "nextjs tutorial"
  • "plumber near me"

Your goal is to find keywords that:

  1. Your target audience actually searches for
  2. Are relevant to your content or business
  3. You have a realistic chance of ranking for

Search Intent

Every search has an intent — the reason behind the query. Understanding intent is more important than the keyword itself.

IntentWhat They WantExamples
InformationalLearn something"what is SEO", "how to center a div"
NavigationalFind a specific site"GitHub login", "Netflix"
CommercialResearch before buying"best react frameworks 2026", "Vercel vs Netlify"
TransactionalTake an action"buy domain name", "sign up Figma"

Match your content to intent. If someone searches "what is Terraform", they want an explanation — not a pricing page. If they search "Terraform pricing", they want costs — not a tutorial.

How to Determine Intent

Search the keyword yourself and look at what Google shows:

  • Blog posts and guides → Informational intent
  • Product pages and comparisons → Commercial intent
  • Login pages and brand sites → Navigational intent
  • Pricing pages and signup forms → Transactional intent

If the top 10 results are all blog posts, don't try to rank a product page for that keyword. Google has already decided what users want.

Keyword Metrics

Search Volume

How many times a keyword is searched per month. Higher isn't always better — a keyword with 100 monthly searches but perfect relevance is better than one with 10,000 searches and no relevance.

Keyword Difficulty (KD)

How hard it is to rank on page 1. This is based on the authority of sites currently ranking.

KD ScoreDifficultyWhat You Need
0-20EasyGood content, basic SEO
21-40MediumQuality content, some backlinks
41-60HardGreat content, strong backlinks
61-80Very hardAuthoritative site, lots of backlinks
81-100Extremely hardMajor brand or top authority site

New sites should target KD 0-30. You can go after harder keywords as your site builds authority.

Click-Through Rate (CTR)

Some keywords have low CTR even with high volume because Google answers the question directly (featured snippets, knowledge panels). Check if the keyword actually drives clicks.

Long-Tail vs Short-Tail

Short-tail keywords are broad, high-volume, and very competitive:

  • "javascript" — 500k searches/month, extremely hard to rank
  • "SEO" — 200k searches/month, extremely hard to rank

Long-tail keywords are specific, lower-volume, and easier to rank:

  • "javascript array filter examples" — 2k searches/month, much easier
  • "SEO for Next.js blog" — 500 searches/month, very easy

Long-tail keywords are where you should start. They:

  • Have clear intent (you know exactly what the person wants)
  • Are less competitive (fewer sites targeting them)
  • Convert better (the searcher knows what they need)
  • Add up (100 long-tail keywords can drive more traffic than 1 short-tail)

Keyword Research Process

Step 1: Brainstorm Seed Keywords

Start with topics you know your audience cares about:

  • What questions do they ask?
  • What problems do they have?
  • What terminology do they use?

For a web development blog, seed keywords might be: "react", "nextjs", "CSS", "javascript", "web performance", "deployment".

Step 2: Expand with Tools

Use keyword tools to find related terms:

ToolFree/PaidBest For
Google Search ConsoleFreeKeywords you already rank for
Google AutocompleteFreeReal user searches
Google "People Also Ask"FreeQuestion-based keywords
UbersuggestFreemiumBeginners
AhrefsPaidComprehensive research
SemrushPaidCompetitor analysis

Google Autocomplete trick: Type your seed keyword and note the suggestions. Add letters after it to get more:

"nextjs a..."  nextjs api routes, nextjs authentication
"nextjs b..."  nextjs blog, nextjs best practices
"nextjs c..."  nextjs caching, nextjs components

Step 3: Analyze Competitors

Find sites ranking for your target topics. Look at:

  • What keywords they rank for that you don't
  • What content format they use (guides, tutorials, comparisons)
  • Where they have weak content you could improve on

Step 4: Filter and Prioritize

For each keyword, evaluate:

  1. Relevance — Can you create genuinely useful content for this?
  2. Volume — Is there enough search demand?
  3. Difficulty — Can you realistically rank?
  4. Intent — Does it match the content you'd create?

Prioritize keywords where you score high on all four.

Keyword Mapping

Assign one primary keyword to each page. Don't target the same keyword on multiple pages — they'll compete with each other (keyword cannibalization).

Homepage          "web development blog"
Blog post 1       "nextjs best practices"
Blog post 2       "react server components guide"
Course page       "learn typescript online"

Each page should also have 2-3 secondary keywords that are variations or subtopics.

Summary

  • Every keyword has an intent — match your content to it
  • Start with long-tail keywords (specific, lower competition)
  • Use search volume and keyword difficulty to prioritize
  • Analyze competitors to find content gaps
  • Map one primary keyword per page to avoid cannibalization
  • Use free tools (Google Search Console, Autocomplete) before paying for premium tools