Why doesn’t AI mention your brand? Find out which half is brokenGet a free report
LLMention
Study

22 of 30 sites leave AI guessing who they are

A model that cannot bind a name to a domain has to guess, and a guess is not a citation. The markup that fixes it is four lines of JSON, and most of the sample does not have it.

By Alex XuUpdated 24 October 20269 min read

Twenty-two of the 30 homepages in the study declare no Organization, WebSite, Person or LocalBusiness entity at all. That is 73% of the sample, and it includes several companies whose names a model certainly knows, because knowing a name and being told which domain owns it are different problems.

Nineteen of the 30 — 63% — have neither an entity node nor asameAs list. For those pages, every consumer has to infer the brand from the visible text, and inference is the part that goes wrong quietly: a model can know the company perfectly and still not attach its name to your domain.

What counts as declaring an entity?

One parsed JSON-LD block containing an @type of Organization, WebSite, Person or LocalBusiness. That is the whole rule, worth four points.

It is deliberately shallow. The scanner reads the types that appear anywhere in a graph that parsed, including nested ones, so a Person node inside an article’s author property satisfies it without an Organization node existing anywhere on the page. The evidence line names the types that matched, so a pass says what it saw rather than asserting that a brand entity exists.

How many of the 30 declare one?

Eight declare an entity type, nine carry a sameAs, six do both, and nineteen do neither. The overlap is the interesting part: the two properties are often added together, and the sites that have one without the other are the ones worth looking at.

SignalSitesShare of 30Where it is scored
Declares an entity type827%Machine readability, 12% of total
Carries a sameAs list930%Trust and authority, 10% of total
Both620%Both dimensions
Neither1963%Both dimensions

What do the passing and failing pages look like?

The pattern is not the one people expect. Some of the highest-scoring pages have an entity and no sameAs; some of the lower-scoring ones have sameAswithout an entity.

HomepageScoreEntitysameAs
salesforce.com83YesNo
vercel.com79YesYes
shopify.com72NoYes
bbc.com61NoYes
github.com60NoNo
microsoft.com48NoNo

Two of those rows are instructive. Salesforce scores highest in the whole sample and has no sameAs: the entity node is doing the identification work, and the profile links were never added. Shopify passes sameAs while declaring no entity, so the profiles point at something the page never names — a join without an anchor.

What does a model actually do with this markup?

It uses it to resolve a string to one thing. Organization withname, url and sameAs is the shape that says “this name, this domain, these profiles are the same entity”.

Without it, a consumer resolving your brand has to use the page text and whatever it already believes. That is not nothing — a large document with the company name written plainly is not invisible — but it is inference, and inference has failure modes a declaration does not: the wrong namesake, an abbreviated name, a rebrand, or a model that knows the company and not the domain.

This is why the two rules are scored in different dimensions. The entity node is a machine-readability property: can the parser see a thing to point at. ThesameAs list is a trust property: does the thing point at accounts that exist elsewhere. The first is about this page, the second is about your brand in the world.

Does the check prove the entity is correct?

No, and the rule pages say so. Presence is all that is tested: nothing fetches thesameAs profiles, and nothing compares the declared name to the page title.

That limit is worth knowing before optimising for it. A page can pass by declaring a Person node whose name appears nowhere in the visible copy, and a model reading both will notice the disagreement. The rule is a floor for parsability, not a certificate of identity.

What is the smallest markup that passes both rules?

One Organization node, one WebSite node that references it, and asameAs array. Replace the placeholders; do not leave them.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://your-domain.com/#organization",
      "name": "Your Brand Name",
      "url": "https://your-domain.com",
      "sameAs": [
        "https://github.com/your-account",
        "https://www.linkedin.com/company/your-brand"
      ]
    },
    {
      "@type": "WebSite",
      "@id": "https://your-domain.com/#website",
      "url": "https://your-domain.com",
      "name": "Your Brand Name",
      "publisher": { "@id": "https://your-domain.com/#organization" }
    }
  ]
}
</script>

Two things about that snippet are deliberate. The @id values are fragments on the real origin, so every page can reference the same node rather than restating the brand. And the array is not padded: two profiles that exist are worth more than six that do not, because the property is a claim a consumer can check.

Which is worth doing first?

The entity node, because it is scored twice over — once directly and once as the anchor that makes sameAs mean something.

  1. Add the Organization node to every page, or to a layout that wraps every page. Both work; one file is easier to keep true.
  2. Add sameAs with the profiles you actually maintain. A dead profile is a broken claim, and a claim a model can disprove costs more than an absent one.
  3. Validate the block parses. A syntax error is indistinguishable from absent markup to a consumer, and worse than nothing to a reader who thinks they added it.
  4. Re-run the scan. The evidence line names the types that matched, so a pass is observable rather than assumed.

The guide with the full walkthrough is the Schema.org JSON-LD guide, and the arithmetic behind the weights is on the methodology page.

Questions about entity markup

Is entity markup a ranking factor?

Not directly. It is a resolution aid: it gives a model a name, a URL and a set of external profiles it can check the name against. Whether a page is cited depends on far more than that, and no markup guarantees a citation.

Does more JSON-LD always help?

No. A valid graph that describes the page truthfully helps; a large graph full of types the page does not support is the same liability as keyword stuffing, and a consumer that finds it in conflict with the visible page will trust neither.

What is the smallest change that moves the number?

One Organization node with name, url and sameAs, plus a WebSite node that references it. That is enough to pass both rules on this site, and it is the markup most of the sample is missing.

Evidence and sources

GEO can boost visibility by up to 40% overall in generative engine responses, and in the paper's Table 1 the best of the tested methods improve on the no-optimization baseline by 41% and 28%. — Generative Engine Optimization, KDD 2024

Every figure in this piece comes from the published study or from the rule set the scanner executes; both are linked, and both can be re-run.

Primary sources

Alex Xu — Maintainer, LLMention

I build and maintain LLMention: the scanner, the rule set and the study behind it. The work is published as source, so the method can be checked rather than taken on trust.

How this site is written and funded →

Read next