Keyword Gap Analysis: Competitor Keywords You Don't Rank For avatar

Keyword Gap Analysis: Competitor Keywords You Don't Rank For

Pricing

from $1.00 / 1,000 gap keywords

Go to Apify Store
Keyword Gap Analysis: Competitor Keywords You Don't Rank For

Keyword Gap Analysis: Competitor Keywords You Don't Rank For

Compare your domain with up to 5 competitors and get the keywords they rank for on Google and you don't, with search volume, CPC, keyword difficulty, intent and each competitor's position and URL. Also finds keywords where they outrank you. No API key needed.

Pricing

from $1.00 / 1,000 gap keywords

Rating

0.0

(0)

Developer

VNCNT Labs

VNCNT Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 hours ago

Last modified

Share

Put in your domain and up to 5 competitors and get the Google keywords they rank for and you don't. Every keyword comes back as one row with its monthly search volume, CPC, keyword difficulty (0-100) and search intent, how many of your competitors rank for it, each competitor's position and ranking URL, and the best one to copy. Two more modes show keywords where a competitor outranks you (usually the quickest wins) and every keyword you share.

It's the keyword gap report from the big SEO suites, without the monthly subscription. No API key, no login, $0.02 per competitor plus $1 per 1,000 keywords.

Built for:

  • SEO freelancers and agencies: a content plan for a client in one run, backed by what their competitors already rank for.
  • Shopify, Etsy and print-on-demand store owners: see which product and gift searches bring traffic to the bigger stores in your niche.
  • Bloggers and KDP authors with their own site: find the topics similar sites rank for that you've never written about.
  • Developers and AI agents: one call returns clean JSON you can sort, filter and feed into a content brief.

What you get

Row (type)What's in itCharged
keywordkeyword, gapType, searchVolume, cpc, competition, keywordDifficulty, intent, searchVolumeTrendYearly, competitorsRanking, bestCompetitor, bestPosition, bestUrl, yourPosition, yourUrl, positionsBehind, competitorTraffic, positions (domain to position), competitors (domain, position, URL, estimated traffic)gap-keyword
competitorcompetitor, yourDomain, mode, country, status, totalKeywords (the full size of the gap with your filters), keywordsReturned, keywordsDeliveredcompetitor-compared
skippedinputs that weren't valid or weren't compared, with the reasonfree

When several competitors rank for the same keyword, it's merged into one row, so a keyword with competitorsRanking: 3 is one all three of them get traffic from.

Input examples

The classic gap, top 100 keywords:

{ "yourDomain": "example.com", "competitors": ["competitor-one.com", "competitor-two.com"], "maxKeywords": 100 }

Page-one keywords only, easiest first, without other brands:

{ "yourDomain": "example.com", "competitors": ["competitor-one.com"], "maxCompetitorPosition": 10,
"sortBy": "difficulty", "excludeKeywordsContaining": ["amazon", "etsy"] }

Keywords where you already rank but a competitor beats you, in the UK:

{ "yourDomain": "example.co.uk", "competitors": ["competitor.co.uk"], "mode": "behind", "country": "GB" }

Tips

  • Max keyword rows is your cost cap: 100 rows = $0.10, 1,000 rows = $1.00, plus $0.02 per competitor and the $0.005 run start.
  • Branded keywords (ones that contain your brand or the competitor's, taken from the domain) are skipped by default, since you can't really win "competitor login".
  • totalKeywords on the competitor row tells you how big the whole gap is, even if you only asked for 100 rows.
  • Runs take a few seconds. Data is DataForSEO's Google keyword database, refreshed monthly, so positions are a recent snapshot, not a live check of today's results.
  • To see the competitor's full keyword list (not just the gap), use Website Traffic Checker.

Output examples

A missing row (the competitor ranks, you don't):

{
"type": "keyword", "keyword": "customised tshirt", "gapType": "missing",
"searchVolume": 135000, "cpc": 7.82, "competition": "HIGH", "keywordDifficulty": 51, "intent": "transactional",
"competitorsRanking": 1, "bestCompetitor": "printful.com", "bestPosition": 7,
"bestUrl": "https://www.printful.com/make-your-own-shirt",
"yourDomain": "gelato.com", "yourPosition": null, "competitorTraffic": 5.5,
"positions": { "printful.com": 7 }, "country": "US"
}

A behind row (you both rank, they're ahead):

{
"type": "keyword", "keyword": "print on demand", "gapType": "behind",
"searchVolume": 22200, "cpc": 8.78, "keywordDifficulty": 76, "intent": "commercial",
"bestCompetitor": "printify.com", "bestPosition": 3, "bestUrl": "https://printify.com/print-on-demand/",
"yourPosition": 4, "yourUrl": "https://www.gelato.com/print-on-demand", "positionsBehind": 1
}

A competitor summary row:

{ "type": "competitor", "competitor": "printful.com", "yourDomain": "gelato.com", "mode": "missing",
"country": "US", "status": "ok", "totalKeywords": 17299, "keywordsReturned": 50, "keywordsDelivered": 48 }

The dataset has two views, Gap keywords and Competitor summary. Export to CSV, Excel or JSON, or send results to Google Sheets, Slack or email with Apify integrations.

Pricing (pay per event)

EventPriceWhen it is charged
Actor start$0.005once per run
competitor-compared$0.02one competitor compared with your domain that returned keywords
gap-keyword$0.001one keyword row delivered (merged across competitors)

So 1 competitor with 100 keywords costs $0.125, and 3 competitors with 300 keywords cost $0.365.

You are not charged for:

  • competitors with no matching keywords, and competitors the data provider couldn't answer for;
  • skipped inputs, and anything beyond your run's maximum charge. The run lowers the keyword limit to fit your maximum charge and says so in the log.

Apify free plan: 2 competitors and 50 keywords per run. Any paid Apify plan unlocks 5 competitors and 1,000 keywords.

Use from AI agents (MCP)

AI assistants such as Claude, ChatGPT and Cursor can run this Actor through Apify's MCP server (https://mcp.apify.com). The agent can look up the Actor, read its input schema, run it and read the results. Runs use your own Apify account and are charged at the prices on this page.

  • Actor name: vncntlabs/keyword-gap-finder
  • Server URL with only this tool: https://mcp.apify.com?tools=vncntlabs/keyword-gap-finder. The default https://mcp.apify.com also works; the agent can then search Apify Store and call the Actor by name.
  • Claude (desktop app or claude.ai): Settings > Connectors > Add custom connector, paste the server URL, then sign in to Apify.
  • ChatGPT: turn on Developer mode, then Settings > Apps & Connectors > Create, paste the server URL and choose OAuth.
  • Cursor: run /add-plugin apify in Cursor chat and connect the Apify MCP server under Cursor Settings > Tools & MCPs, or add the server to mcp.json:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=vncntlabs/keyword-gap-finder" } } }

Example prompt: "Use the Apify Actor vncntlabs/keyword-gap-finder to find 50 keywords competitor.com ranks for in the top 10 that example.com doesn't, easiest first, and group them into blog post ideas."

To cap the cost of an agent's run, it can pass maxTotalChargeUsd in the run options.

FAQ

Where does the data come from? DataForSEO's Google keyword and ranking database (DataForSEO Labs), the same kind of data the big SEO suites use. Search volume is Google Ads monthly volume; difficulty and positions are DataForSEO's estimates.

Why is my domain showing no gap? Very new or very small sites may not be in the keyword database yet. The competitor row then says no-data and you aren't charged for it.

Can I compare more than 5 competitors? Not in one run. Run it again with the next batch; each competitor costs the same either way.

Does it check subdomains? It compares whole domains, so blog.example.com rankings count for example.com.

Related tools: Keyword Search Volume for volume on your own list, Google Rank Tracker to track the keywords you go after, and Website SEO Audit to fix your pages first.

Questions or a filter you'd like added? Email hello@vncntlabs.com.

Not affiliated with Google, Semrush or Ahrefs.