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:
- Your target audience actually searches for
- Are relevant to your content or business
- 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.
| Intent | What They Want | Examples |
|---|---|---|
| Informational | Learn something | "what is SEO", "how to center a div" |
| Navigational | Find a specific site | "GitHub login", "Netflix" |
| Commercial | Research before buying | "best react frameworks 2026", "Vercel vs Netlify" |
| Transactional | Take 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 Score | Difficulty | What You Need |
|---|---|---|
| 0-20 | Easy | Good content, basic SEO |
| 21-40 | Medium | Quality content, some backlinks |
| 41-60 | Hard | Great content, strong backlinks |
| 61-80 | Very hard | Authoritative site, lots of backlinks |
| 81-100 | Extremely hard | Major 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:
| Tool | Free/Paid | Best For |
|---|---|---|
| Google Search Console | Free | Keywords you already rank for |
| Google Autocomplete | Free | Real user searches |
| Google "People Also Ask" | Free | Question-based keywords |
| Ubersuggest | Freemium | Beginners |
| Ahrefs | Paid | Comprehensive research |
| Semrush | Paid | Competitor 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 componentsStep 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:
- Relevance — Can you create genuinely useful content for this?
- Volume — Is there enough search demand?
- Difficulty — Can you realistically rank?
- 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