Keyword Difficulty Checker
Pricing
from $0.50 / 1,000 results
Keyword Difficulty Checker
Estimate SEO keyword difficulty in bulk from live Google SERP signals. Find low-competition keywords, easy-win topics, and SERP risks before writing.
Pricing
from $0.50 / 1,000 results
Rating
0.0
(0)
Developer
Group Oject
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Estimate SEO keyword difficulty in bulk from live Google SERP signals — and surface your easiest ranking opportunities first.
Drop in a list of keywords and get back a 0–100 difficulty score for each, based on what's actually ranking on Google right now: how many high-authority sites hold the top 10, how optimized their titles are, how many ads and SERP features crowd the page, and how concentrated the domains are.
🔑 Setup in 60 seconds: get a free SerpApi key (100 SERP lookups/month free), paste it into
serpApiKey, add keywords, and run.
What it does
For each keyword, the Actor pulls the live Google SERP (via SerpApi) and computes a transparent difficulty estimate from observable signals:
| Signal | What it measures |
|---|---|
| Authority | Share of the top 10 held by high-authority domains (Wikipedia, Amazon, Forbes, .gov/.edu, …) |
| Title optimization | Share of top-10 titles containing your exact keyword |
| SERP features | Featured snippet + People-Also-Ask boxes that push organic results down |
| Ads | Number of paid results (commercial competition) |
| Domain concentration | How few unique domains control the top 10 |
These combine into a 0–100 difficulty score and a plain-English rating (very easy → very hard) with a recommended action.
Why it's honest
This is a SERP-based estimate, not a backlink-based metric like Ahrefs/SEMrush KD. It answers "how contested and well-optimized is this SERP?" — which is exactly what you can observe without proprietary link data. Every weight is in plain code in src/difficulty.ts:
difficulty = authority*0.35 + titleOptimization*0.25 + serpFeatures*0.15+ ads*0.15 + domainConcentration*0.10 (clamped 0–100)
No black box. Tune the weights to your niche if you want.
Who it's for
- Content & SEO teams — prioritize the keywords you can actually rank for.
- Bloggers & affiliates — find low-competition "easy win" topics.
- Agencies — bulk-qualify a client's keyword list before committing hours.
- PPC marketers — gauge commercial competition (ad density) per term.
Popular SEO use cases
- Easy-win keyword finder - sort large keyword lists by low difficulty and clear recommended action.
- Affiliate keyword qualification - check buyer-intent keywords before writing reviews or comparison pages.
- SaaS content prioritization - compare solution, alternative, and "best software" SERPs.
- Local SEO difficulty checks - estimate competition for city + service keywords.
- eCommerce category planning - score product, category, and modifier keywords before building pages.
- Agency keyword audits - turn client keyword exports into a transparent opportunity report.
Input
| Field | Type | Default | Description |
|---|---|---|---|
keywords | string[] | — | Keywords to check |
keywordsText | string | — | Keywords as text (one per line / comma-separated) |
serpApiKey | string (secret) | — | Required. Free key from serpapi.com |
geo | string | "US" | Google country code |
language | string | "en" | Language code |
maxKeywords | integer | 100 | Max keywords to process |
requestDelayMs | integer | 500 | Delay between lookups |
maxConcurrency | integer | 3 | Parallel lookups |
One SERP lookup is consumed per keyword.
Example input
{"keywords": ["best coffee maker", "ai seo tools", "how to start a blog"],"geo": "US","language": "en","serpApiKey": "@SERPAPI_KEY"}
More in examples/.
Output
One dataset row per keyword:
{"keyword": "ai seo tools","difficultyScore": 64,"difficultyLabel": "hard","authorityScore": 70,"titleOptimizationScore": 80,"serpFeatureScore": 50,"adsScore": 100,"domainConcentrationScore": 10,"highAuthorityCount": 7,"exactTitleMatches": 8,"uniqueDomains": 9,"adsCount": 4,"hasFeaturedSnippet": true,"peopleAlsoAskCount": 4,"topDomains": ["hubspot.com", "semrush.com", "..."],"recommendedAction": "Hard — only with strong domain authority and link building.","source": "serpapi-google","error": null}
Key-value store outputs
EASY_WINS— your lowest-difficulty keywords (the money output)SUMMARY— counts by rating, average difficulty, easiest + hardestERRORS— any failed lookups
Limitations & honesty
- This is a SERP-signal estimate, not a backlink-authority score. Treat it as directional.
- Results vary by
geoandlanguage— a keyword can be easy in one market, hard in another. - The authority-domain list is curated + TLD heuristics (
.gov/.edu); it won't recognize every strong niche site. - One SerpApi lookup per keyword — mind your monthly quota on big lists.
Related tools
- Google Autocomplete Keyword Scraper — discover the keywords to check here.
- Google Trends Keyword Monitor — see which of them are rising.
- Google Trends Content Calendar Generator — schedule the winners.
A natural workflow: discover (Autocomplete) → qualify (this) → prioritize (Trends) → schedule (Calendar).
Changelog
See CHANGELOG.md.