How I built a tool to identify gaps in entity coverage
A while back I created an end-to-end content refresh tool. It simply took in the URL of the content you wanted to refresh along with your target keyword and the workflow handled the rest. It combined steps like competitor research, internal linking, fact checking, meta generation, etc. But the greatest insights and greatest opportunities always came from the step that performed entity analysis on competitor content.
What are entities?
Entities are a crucial aspect of topical authority. They refer to real-world things (people, places, concepts, brands, etc) that Google understands as distinct objects with attributes and relationships. For example: “Frodo Baggins” is an entity, with relations to “Elijah Wood”, “Lord of the Rings,” and “JRR Tolkien.”
Instead of just matching keywords, Google maps how entities connect. Since Google ranks pages based on topical authority, not just keyword density, a page that signals “I’m about Frodo Baggins and its related entities, Gimli and Gandalf”, wins over a page that merely repeats “Frodo” repeatedly.
Why should I care about entities?
Thorough entity coverage signals a deep authority on a topic, leading to better rankings in search. Rather than writing for keywords, we are working for greater topical authority by demonstrating that we understand the relationship between our primary topic as it relates to surrounding entities.
When we apply this concept to competitor research, we can begin to parse out why specific pages rank higher and use that knowledge to identify gaps in our own content.
What this tool does
The entity gap analyzer tool automates the heavy lifting of topic mapping. The tool takes a URL and keyword pair and logs the entities found on the provided page.
Next, an AI agent performs a web search for that keyword. When the agent reaches the SERP, it clicks through the top 3 results and analyzes the entities on those pages as well.
At this point the tool has identified the entities found on four pages for your topic area including your own. Now we can create the entity matrix. This table allows us to compare which pages cover what entities, making it simple to see the topics you absolutely must cover and ones that may not be as relevant.
Using this matrix, the tool prioritizes entities according to many competitors that cover the same topic. If all competitors cover that topic, consider it table stakes. If only one other competitor covers that topic, it might be safe to skip. Alternatively, you could look at this as an opportunity to further differentiate your content by expanding your entity coverage beyond what other top competitors are doing. Widening the range of your competitor set will provide greater opportunities for identifying these kinds of opportunities.
Gotchas
Do not use this tool as a simple checklist. Be thoughtful about which entities actually apply to your site and throw out the ones that don’t match your value proposition.
Covering every topic that is surfaced will likely improve entity coverage, no doubt, but doing it blindly can lead to problems. For example, we wouldn’t want to cover competitor products in the same depth as the competitors themselves (if at all). For this tool I have removed specific products from the entity analysis.
Obstacles
Getting around bot protection Fetching accurate search results and competitor content Implementing the BYO API key field I forgot to activate the Cloudflare skill which cost me a few rounds of prompting


See the GitHub repository: https://seoplus.dev/tools/entity-gap-analyzer/