Coverage Gap Checker

Paste the pages that already rank for your term, and your own draft. The tool extracts the vocabulary those pages share and shows what yours is missing. It compares you against real competitors rather than against a fixed list of categories.

Live v2.0 · Updated September 2026 Free · No login
Coverage gap Idle
Used for labelling only. Nothing is inferred from it, which is deliberate: the previous version guessed a topic category from this field and got it wrong.
Paste the body text of each, separated by a line containing only ===. A term counts as expected when it appears in at least two of them.
Checked against the shared vocabulary, with light stemming, so “ranks” matches “ranking”.
Runs locally · nothing sent to a server

How it works

It compares you against real pages, not against a list I made up. Paste the body text of two or three pages that already rank for your term. The tool tokenises them, strips stopwords, and keeps every term that appears in at least two. That shared vocabulary is what pages on this subject actually talk about.

Your draft is then checked against it, with light stemming so ranks, ranking and ranked count as one term. What comes back is two lists: the terms you already carry, and the ones every competitor uses that you do not.

The gaps are a prompt, not a checklist. Some will be irrelevant to your angle and some will be the reason your draft reads as thinner than it is. The tool cannot tell which, and says so rather than scoring you on it.

This replaces a previous version that guessed your topic category from the term you typed. It matched on substrings, so email deliverability matched an “ai” category through the letters in “email”, and a page about email was scored against ChatGPT and Perplexity. That is fixed by not guessing at all.

Frequently asked

It should not have been. Semantic matching means recognising that “inbox placement” and “deliverability” are the same idea, which needs embeddings and cannot run in a browser block. The old version matched words and called the result a semantic coverage score, and its own FAQ then admitted it only checks term presence. Renaming it was more honest than rewriting the description around a claim the code could not support.
Because it is the only way to get a real answer without a server. A tool that runs in your browser cannot fetch the results page or crawl anything. The alternative is a built-in list of expected terms, which is what the previous version had, and it collapsed to nothing for any topic outside eight hardcoded categories. Pasting three pages takes two minutes and works for any subject in any language.
One page using a word tells you that page’s author liked it. Two or more independent pages using it suggests the subject requires it. It is a crude consensus test and it is the whole reason to paste more than one competitor. Terms appearing in all of them are shown separately, because those are the ones worth taking seriously.
No. Some gaps exist because your angle is different, and that is often the point of the piece. The useful ones are the terms where you realise the competitors are covering something you simply forgot. Adding words to hit a number produces exactly the padded, hedge-everything writing that this is supposed to help you avoid.