Keyword Research Tools

Discover the tools that reveal search volume, difficulty and related terms.

Keyword tools tell you what people actually search for and how hard each term is to rank for.

Free tools

  • Google Search Console - shows queries you already rank for.
  • Google autocomplete & People Also Ask - real phrasing from users.
  • Google Keyword Planner - volume ranges (aimed at advertisers).

Paid tools

  • Ahrefs, Semrush, Moz - volume, keyword difficulty, and competitor gaps.

Metrics to read

  • Search volume - monthly searches.
  • Keyword difficulty - how hard the top results are to beat.
  • Relevance - does it match your product and intent?

Example

Example · bash
# Mine free keyword ideas straight from Google
# Type your seed term and read the autocomplete suggestions:
seo tips for ...
seo tips for beginners
seo tips for small business
seo tips for wordpress

When to use it

  • An SEO analyst uses Google Keyword Planner to validate that 'cloud storage for small business' has enough monthly search volume before committing resources to a content piece.
  • A content team uses Ahrefs Keywords Explorer to identify which related terms have lower keyword difficulty so junior writers can realistically rank faster.
  • A startup uses Google Search Console's performance report as a free keyword tool to find existing queries it ranks on page 2 and can push to page 1.

More examples

Search Console API: page 2 opportunities

Queries ranking on page 2 are quick-win candidates: the page already has some authority, and focused optimisation can push it to page 1.

Example · bash
# Find queries where average position is 11-20 (page 2 — quick wins)
curl -s -X POST \
  'https://searchconsole.googleapis.com/v1/sites/https%3A%2F%2Fexample.com/searchAnalytics/query' \
  -H 'Authorization: Bearer YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "startDate": "2024-01-01", "endDate": "2024-03-31",
    "dimensions": ["query"],
    "rowLimit": 100
  }' | python3 -c "
import sys, json
rows = json.load(sys.stdin).get('rows', [])
for r in rows:
    if 11 <= r['position'] <= 20:
        print(f"{r['position']:.1f}  {r['clicks']}c  {r['keys'][0]}")
" | sort -n

Ahrefs API: low-difficulty related terms

Filtering keyword ideas by difficulty threshold surfaces realistic ranking targets when building a content roadmap for a newer domain.

Example · bash
# Fetch keyword ideas with KD < 30 for a seed keyword
curl -s \
  "https://apiv2.ahrefs.com/?target=cloud+storage+for+small+business\
&mode=phrase_match&output=json&from=keywords_explorer&kd_max=30&token=YOUR_TOKEN" \
  | python3 -c "
import sys, json
data = json.load(sys.stdin)
for kw in data.get('keywords', [])[:10]:
    print(kw['keyword'], '| KD:', kw['difficulty'], '| Vol:', kw['volume'])
"

Export Google Trends comparison

Comparing a head term against a long-tail variant in Trends shows relative search interest over time, helping prioritise content timing.

Example · bash
# Use pytrends to compare keyword interest over time
python3 - << 'EOF'
from pytrends.request import TrendReq
pt = TrendReq(hl='en-US', tz=360)
pt.build_payload(
    kw_list=['cloud storage', 'cloud storage for small business'],
    timeframe='today 12-m'
)
df = pt.interest_over_time()
print(df.tail(4).to_string())
EOF

Discussion

  • Be the first to comment on this lesson.
Keyword Research Tools — SEO with AI | SoundsCode