GEO Academy › Module 5 of 10
🏷 Module 5 / 10

Module 5 — Structured data and entities

🏷This module turns your site into something AI understands "with proper nouns." It is a subtle but

Why AI needs proper nouns

There is a huge difference between a system understanding what topic you are talking about and understanding which concrete entity you mean. A model can perfectly grasp that your page is about "pricing plans" — that is topic — and at the same time be unable to distinguish your "Pro plan" from your "Team plan" or mix features from one with the other — that is entity. The GEO of the first modules makes you visible and readable; the GEO of this module makes you unmistakable.

An agent works far better when every important thing in your business has three stable attributes: a unique canonical name, a canonical URL where it lives, and a stable definition that does not change from page to page. When those three anchors are missing, classic problems begin: the system confuses plan A with plan B, attributes feature X to the wrong product, or merges two terms that "sound" similar into one thing that does not exist. These "mixed answers" are among the most damaging errors because they are subtle: the answer looks coherent and confident, but it is false, and the user has no way to know.

The invisible cost of inconsistency

It is worth understanding why name inconsistency does so much damage, because it is a problem almost nobody sees until they look for it. Imagine you call the same thing three ways depending on the page: on the home page it is "Professional Plan," on pricing it is "Pro," and on an old blog post it was "Business Plan." To you they are obviously the same thing, because you have the full context in your head. For a language model, they are three different text strings, and it has no guarantee they refer to the same entity. In the best case it treats them as synonyms with some doubt; in the worst, it treats them as three different products and builds an answer that invents a catalog you do not have.

This gets worse with the fragment retrieval mechanism you already know: if three different chunks use three different names for the same entity, none reinforces the others, and the signal of "this entity exists and matters" spreads and dilutes instead of adding up. Name consistency is not a stylistic obsession; it is what lets all your mentions of an entity accumulate into one strong signal instead of scattering into several weak ones.

Where BotPass fits: start with entities AI already touches

As in every module, BotPass keeps you from working blind. Not all your entities deserve the same canonization effort; the priority ones are those bots are already consuming. Use BotPass to find which pages about plans, policies, and key features are being read, because those pages define the entities that most need canonical names and URLs to avoid mixed answers. Starting there means starting where the risk of confusion is real and current.

There is also a concrete signal to watch: if BotPass shows bots consuming several different pages about the same entity, treat it as a consistency problem to resolve now. It means AI is receiving multiple versions of the same truth, probably with slightly divergent names or data — the exact recipe for a mixed answer. The solution is always the same: consolidate into one canonical source and point toward it, along the lines of what you worked on in Module 3.

The Entity Sheet: your business dictionary

If you only did one thing after reading this module, it should be building your Entity Sheet. It is, literally, your business dictionary: the master document where you define, once and for all, what each thing is called, where it lives, and what it means. Its power is that it is the source everything else in GEO drinks from: it feeds consistent copy, consistent schema, consistent clean views, and a consistent llms.txt. Without it, each of those pieces is built separately and ends up contradicting each other; with it, they all sing the same song.

The Entity Sheet also has an organizational benefit beyond GEO: it forces your team to agree on what things are called. Often the exercise of filling it in reveals there was not even internal consensus — marketing called it one way, product another, sales a third — and that consensus, once fixed, improves far more than AI visibility alone. This is the table that anchors it:

EntityTypeCanonical nameCanonical URLDefinition (1 sentence)Critical attributesSource of truth
Organization / Service / Plan / Feature / PolicyPrice, currency, country, limits, requirements

What schema is and why it really helps

If the Entity Sheet is the dictionary that lives in your head and documentation, schema is how you tell that dictionary to machines in their own language. Schema — structured data, usually in JSON-LD format — is a machine-readable block that explicitly declares "what is what": this is an organization, this is a product, this is a FAQ with its answer, this is a guide with these steps. Instead of forcing the system to infer structure from visible text, you serve it already digested.

Schema is especially useful in concrete situations: when you have real FAQs, a FAQPage makes them unambiguous; when you have clear steps, a HowTo orders them; when you want to reinforce who you are, an Organization fixes your identity; and when you describe services or plans, Service or Product delimits them. But there is a golden rule you cannot skip, and ignoring it will do more harm than good: schema must match visible content. If your schema says one thing and your page says another, it does not just fail to help — it lowers trust, because the system detects the inconsistency and learns to distrust your signals. Schema is a mirror of content, never independent decoration.

Implementing schema without breaking anything

Schema scares many people with its technical look, but with an orderly procedure it is approachable without being a developer, especially with BotPass's generator. The sequence is simple.

First, choose three pages to start, without trying to cover the whole site at once: a source of truth like pricing, policy, or documentation; a product landing; and a guide. This trio covers the most useful schema types and teaches you the pattern. Second, decide which schema applies to each: on pricing, FAQPage combined with BreadcrumbList usually fits; on the landing, site-level Organization along with Service or Product; and on the guide, HowTo or Article, with FAQPage if applicable. Third, and this is mandatory, do QA: verify names match your Entity Sheet, URLs are canonical, and conditions — currency, region, dates — are correct. That quality control is what guarantees schema is a faithful mirror and not a new source of contradictions.

What a well-defined entity looks like

To land it, look at how an entity reads when you apply everything above. Take "Pro plan." Its type is Plan; its canonical name is "BotPass Pro," and that name is used everywhere without exception; its canonical URL is /pricing#pro; its one-sentence definition is "Plan for teams that need X, includes Y, with limit Z"; its critical attributes are price in euros per month, optional annual billing, number of domains included, and support level; and its source of truth is /pricing. When an entity is defined like this, something almost magical happens: your copy, your schema, and your clean views stop contradicting each other, because they all drink from the same single definition. AI no longer has to choose between versions; there is only one version.

🎓

🎓 Academy Level — Entities and schema AI understands "with proper nouns"

Everything above is open level. From here: full methodology, templates, hands-on labs, module checklist, and the 🏁 Certification milestone — free when you register at botpass.io.

🔒 Academy Level content

Register free at botpass.io (or sign in) to unlock the full module, templates, and certification milestone.

Sign in Create free account

🎓Academy Level. Everything above is open level. Here you unlock the extended Entity Sheet,

The Knowledge Graph, KGMID, and the invisible ceiling

Here we reach one of the most important concepts in the entire Academy, and one of the least known outside advanced GEO circles. Google maintains a Knowledge Graph, a vast database of entities — people, companies, products, places, concepts — and the relationships between them. When an entity is in the Knowledge Graph, it receives a unique identifier, the KGMID, and a measure of how confidently the system recognizes it, the resultScore. This graph does not only feed Google; it is one of the pillars many AI systems lean on to know an entity truly exists and is not an invention.

Here is the hard consequence, and it is worth saying plainly: if LLMs do not recognize you as an entity — if you have no KGMID), all your content has a visibility ceiling with AI. You can write the most citable pages in the world, with the best schema, and still hit a hard limit, because the system does not quite "believe" you are a real, reliable entity. It is like having a brilliant speech but nobody knows who you are: however good the message, the lack of recognized identity drags it down. That is why entity work is not technical decoration, but the lever that raises the ceiling on everything else — and why Module 8 (authority) and this one are so intertwined.

The good news is that this recognition is built, and BotPass gives you both the diagnosis — look up your KGMID and resultScore — and the tools to build it: entity schema, the sameAs chain, and the Entity Home we will see now.

The Entity Gap: the gap versus what the engine expects

A recognized entity is not "complete" just by existing; engines expect an entity of your type to have certain attributes and certain relationships. The Entity Gap is precisely the difference between what your entity has and what the engine expects it to have. If you are a software company, the engine expects to know who founded it, where it is headquartered, what products it offers, which other entities it relates to; each of those gaps weakens your recognition. BotPass's entity toolkit measures that gap across several axes — recognition, semantic coverage, topical authority, interconnectivity — and tells you, concretely, what your entity lacks versus the competition. Closing the three main gaps usually moves resultScore measurably, which is why it is one of this module's milestones.

📋 Templates

Template A — Extended Entity Sheet. This is the working version of the dictionary, the one you keep alive throughout the program. Every time you create or rename an entity, update it here first and let the change propagate from this document to your copy, your schema, and your llms.txt.

EntityTypeCanonical nameCanonical URLDefinition (1 sentence)Critical attributesSource of truth
Organization / Service / Plan / Feature / PolicyPrice, currency, country, limits

Template B — Entity Home + sameAs. The Entity Home is the canonical URL that represents your entity to the world — your official "home" — and the sameAs chain is the set of authorized profiles that confirm, from outside, that the entity is real and consistent. Connecting your Entity Home with Wikidata, Wikipedia, LinkedIn, or Crunchbase is the cross-verification that reduces omissions and raises your recognition.

ProfileURLAligned with canonical name/definition?
Entity Home (canonical)
Wikipedia/WikidataYes/No
LinkedInYes/No
Crunchbase / otherYes/No

🧪 Hands-on labs

Lab 1 — Schema on 1 page (45 min). Generate schema with BotPass's JSON-LD generator for a source of truth — FAQPage, Organization, or Product as appropriate — publish it, and obsessively validate that it matches visible content. Do not move on until the mirror is perfect: schema that contradicts the page is worse than no schema.

Lab 2 — KGMID — Entity Gap (30 min). Look up your KGMID and resultScore in the entity toolkit. Record whether Google recognizes your brand and with what strength — that number is your identity starting point — and close the three main Entity Gap gaps the tool flags. Note resultScore before and after: it is one of the most satisfying evolutions to watch across the program.

⚡ Hacks

Three entity hygiene reflexes. Schema as mirror: repeat until it sticks that schema must reflect exactly what is visible, because the moment it diverges, instead of adding trust it subtracts it. Authoritative sameAs: connect only profiles that truly reinforce your identity (Wikidata, LinkedIn, Crunchbase—) and not weak or abandoned profiles, because a quality sameAs chain is worth more than a long noisy one. And identical NAP: keep Name, Address, and Phone exactly the same across the entire site and all directories, down to the last comma, because any variation fragments your entity and tells the engine there may be two distinct entities where there is only one.

💎 Additional value content

On the Knowledge Graph and KGMID, you already have it developed above: understanding that a recognized entity has an identifier and a confidence score, and that without that recognition your content hits a ceiling, reorders your GEO priorities. On the Entity Gap: internalize that the engine has concrete expectations about which attributes and relationships an entity like yours should have, and that detecting and closing those gaps is measurable work. And on why entities prevent mixed answers: the logic is simple and powerful — one canonical name per concept means Plan A never gets confused with Plan B, and that disambiguation is, in the end, what this entire module is about.

📚 References and recommended reading

Wikidata / Wikipediaverifiable identityLinkedIncorporate profileCrunchbasecompany profileJSON-LD schema@id + sameAs on your siteConsistent NAPsame name everywhereKGMID + resultScoredoes Google recognize you?Your brandEntity Home (canonical URL)
The entity chain: an Entity Home connecting your authorized profiles via sameAs.

🏁 Certification milestone (Module 5)

🏁BotPass milestone (verifiable): KGMID + resultScore recorded from the entity toolkit + schema

📣 Share your progress (optional): "Did you know you can check whether Google recognizes your brand as an entity? I just looked up my KGMID with BotPass: [exists / does not exist] with resultScore of (N). My 3 biggest entity gaps: … #GEOAcademy"

🏁 Module milestone reached?

When you have completed the practice and the milestone is recorded in your BotPass plugin, mark the module. After completing all 10, submission for review unlocks.