◀ All articles

AEO

Entity SEO: one brand name, one entity

August 21, 2026 · 4 min read

Machines do not read your brand as a story. They read it as a record with a name, a URL, a logo and a set of profiles — and every inconsistency splits that record in two.


A person reading your website assembles one company out of everything on it. They see "Northstar" in the logo, "Northstar Analytics Inc." in the footer, @northstarhq on Twitter, and they never think about it again. It is obviously the same company.

A machine does not do that for free. It builds a record, and every time your name appears in a slightly different form with nothing connecting the two, it either merges them on a guess or keeps them apart. Both outcomes are bad, and the second is worse, because you end up with two half-described companies where you meant to have one well-described one.

What an entity is

Strip away the jargon and an entity is a row in a table. Something like:

FieldValue
NameNorthstar Analytics
TypeOrganization
URLhttps://northstar.example
Logohttps://northstar.example/logo.png
DescriptionProduct analytics for B2B SaaS teams
Same asLinkedIn, Crunchbase, Wikidata, X, GitHub

That is it. Search engines keep something like it, model training pipelines derive something like it, and a retrieval step at answer time reconciles what it finds against something like it.

Your job in entity SEO is to make that row easy to fill in, and to make sure every source anyone checks fills it in the same way.

The four things that split an entity

Name drift. The title tag says "Northstar", the JSON-LD says "Northstar Analytics Inc.", the About page says "Northstar Labs" because that was the name two years ago. Pick the name you want to be known by, use it everywhere, and put the legal name in a legalName field rather than in your title.

URL drift. northstar.example, www.northstar.example and northstar.io all resolving without a canonical winner. Choose one, redirect the rest with 301s, and use that exact form in your schema and every profile.

No declared connections. You have a LinkedIn page and a Crunchbase record, and nothing on your site says they are yours. sameAs exists for precisely this, and it is the cheapest high-value markup there is.

Description drift. Your homepage says one thing, your LinkedIn tagline says another, your Crunchbase blurb was written by an intern in 2023. When a model has three different definitions of what you do, it writes a vague sentence that names nobody, or picks the crispest one — which might be a competitor's description of you.

Fixing it, in order

  1. Decide the canonical form. One brand name, one primary domain, one one-sentence description. Write them down. This takes an afternoon and it is the actual work; everything below is transcription.
  2. Put it in JSON-LD on the homepage. name, url, logo, description, and sameAs at minimum. Details in the schema guide.
  3. Make the visible page agree. Title tag, H1, meta description and About page all using the same name and the same definition. Not identical prose — the same facts.
  4. Update every profile to match. Same name, same URL, same one-sentence description. LinkedIn, X, GitHub, Crunchbase, your Google Business Profile if you have one.
  5. Point at them from your schema. Add each profile URL to sameAs, so the connection is declared rather than inferred.

Step 4 is the one people skip, and it is the one that does the most, because those profiles are heavily crawled and heavily trusted.

The rebrand trap

If you have renamed the company in the last two years, you have a specific problem: the old name is in the training data and the new name is not. An assistant asked about your category may still be describing you under a name you retired.

The fix is not to hide the old name — it is to state the relationship explicitly. Keep an alias in your schema, say "formerly X" in the About page, keep the old domain redirecting rather than parked, and get the profiles updated with a line that connects the two. You want a machine that encounters the old name to arrive at the current record, not to hit a dead end.

How to tell if it worked

The honest test is not a score. Ask an assistant, in a fresh session with no context, "what is <your brand name>?" and read the answer. Three things to look for: does it get the category right, does it name the right website, and does it hedge? A hedge — "there are several companies by this name" or "I don't have specific information" — means the record is not resolving, and that is the exact thing this work fixes.

See how your own site scores

One scan checks your homepage, robots.txt, llms.txt, About page and JSON-LD, then hands you the copy-paste fixes. Free, no account needed for the first run.

Keep reading