Back to Tools

Keyword Difficulty Checker

Use cases

Finding low-competition keyword opportunities Matching page types to search intent Prioritising keywords by winnability

Fetches keyword difficulty scores (0-100) from the DataForSEO Labs Bulk Keyword Difficulty endpoint and search intent (informational, navigational, commercial, transactional, plus secondary intents) from the Search Intent endpoint, in batches of 1,000 keywords per request.

Grades each keyword from Very Easy to Very Hard, shows an estimated cost before running, and exports a two-sheet Excel workbook.

Streamlit App

Platform

Browser-based (no installation required)

Input

DataForSEO login and password

Keywords CSV/TXT

Output

Excel with keyword difficulty, grade, and search intent

Launch App View Source

Features

  • DataForSEO Labs Bulk Keyword Difficulty endpoint (1,000 keywords per request)
  • Search intent classification with primary and secondary intent labels
  • Six difficulty grades from Very Easy (0-14) to Very Hard (85-100)
  • Maximum difficulty filter (0-100 slider) and optional question keyword filter
  • Cost and batch count estimate shown before running
  • Summary metrics: average difficulty, Easy or Below count, Hard or Above count

How to use

  1. 1 Enter your DataForSEO login and password in the sidebar (or set the DATAFORSEO_LOGIN and DATAFORSEO_PASSWORD environment variables)
  2. 2 Upload a CSV or TXT and select the keyword column
  3. 3 Choose a search location (11 options) and set the maximum difficulty filter
  4. 4 Review the keyword count, batch count and estimated cost
  5. 5 Run the analysis
  6. 6 Download Excel with two sheets: Keyword Analysis and Questions Only

Frequently asked questions

What does a run cost?
The tool estimates $0.002 per unique keyword ($0.001 for difficulty plus $0.001 for search intent) and shows the total, along with the number of API batches, before you click Run Analysis. Keywords are deduplicated first and sent to the DataForSEO Labs Bulk Keyword Difficulty and Search Intent endpoints in batches of 1,000 per request.
What do the difficulty grades mean?
The 0 to 100 difficulty score from DataForSEO is banded into six grades: 0 to 14 Very Easy, 15 to 29 Easy, 30 to 49 Possible, 50 to 69 Difficult, 70 to 84 Hard, and 85 to 100 Very Hard. Results are sorted by difficulty ascending so the easiest targets appear first.
What does the maximum difficulty slider do?
Keywords whose difficulty score exceeds the slider value (0 to 100, default 100) are removed from the results after fetching. Keywords that come back without a difficulty score are kept rather than dropped, so you can see which ones the API had no data for.
How is search intent classified?
Each keyword is sent to the DataForSEO Labs Search Intent endpoint, which returns a primary intent label (informational, navigational, commercial or transactional) and any secondary intents, which the tool joins into a comma-separated column. Both endpoints are queried with the English language code.
Why did a non-question keyword end up in the Questions Only sheet?
The question filter is a substring match on words followed by a space ('who ', 'is ', 'can ' and so on) anywhere in the keyword. That means 'tennis shoes' matches because 'tennis ' ends in 'is ', and 'canvas prints' matches 'can '. Treat the Questions Only sheet as a starting point, not a clean list.

Need something built for your business?

This tool started as bespoke client work. I build custom scripts, data pipelines, and full apps for SEO and product data problems that off-the-shelf tools don't solve.

Book a Call