How to add Organization schema for entity clarity
You add 1 Organization node in JSON-LD on your homepage: name, url, logo, and sameAs links to the profiles that prove which entity you are. Google's organization structured data documentation says the markup can “help Google better understand your organization's administrative details and disambiguate your organization in search results.” Disambiguation is the point. Engines meet many businesses with similar names. This block tells them, in typed data, which one is you.
The symptom: engines cannot tell which entity you are
Your business name is not unique. There is an Acme Roofing in your city and four more across the country, plus a defunct one with a similar domain. When an engine assembles what it knows about "Acme Roofing," it has to decide which facts belong to which company. If your site never declares its identity in typed data, the engine is matching on strings, and strings collide. The visible symptoms are a knowledge panel that is missing, wrong, or blended with someone else, and AI answers that attribute another company's details, reviews, or location to you.
This page covers the markup half of that problem. The broader failure, where your name, address, and identity signals disagree across the web, is its own fix. Our page on entity clarity covers that side. Read both if the engines are confusing you with someone else.
The cause: your identity was declared nowhere, or five times
Two versions of this failure show up in audits. The first is absence. The site has no Organization node at all, so the engine has nothing typed to anchor your identity to and falls back to inference. The second is noise. A theme emits one Organization node, an SEO plugin emits another, a schema plugin emits a third, and they disagree on the name, the logo path, or the URL. Five conflicting declarations are not five times the clarity. They are a contradiction, and an engine reading contradictions trusts none of them.
The cause behind both versions is the same: nobody owns the identity block. It gets emitted as a side effect of whatever tools happen to be installed, instead of being written once, deliberately, in one place.
The fix: one node, on the homepage, with sameAs
Write one Organization node and put it where the documentation says identity lives. Google's guidance is direct: “We recommend placing this information on your home page, or a single page that describes your organization, for example the about us page.” One page, one node. Then remove or disable every duplicate node your plugins emit, so the deliberate one is the only one.
Give it your real name, your canonical url, and a logo at a stable address. Then add sameAs, the property that does the disambiguation work. The doc defines it as “The URL of a page on another website with additional information about your organization,” and you can provide multiple. Point it at profiles that verifiably belong to you: your LinkedIn company page, your social profiles, and your Wikipedia or Wikidata entry if one exists. Each link is a corroborating record. An engine that finds the same name, site, and profiles agreeing with each other can resolve which Acme you are. We keep a short definition of the property in our glossary entry on sameAs.
<!-- One Organization node, on the homepage, and only one --> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "Organization", "name": "Acme Roofing", "url": "https://acmeroofing.com/", "logo": "https://acmeroofing.com/logo.png", "sameAs": [ "https://www.linkedin.com/company/acme-roofing", "https://www.facebook.com/acmeroofing", "https://www.instagram.com/acmeroofing" ] } </script>
If a more specific type fits, use it. A storefront roofing company is a RoofingContractor, which is still an Organization to the engine but says more. The properties above carry over. What matters is that the node is singular, accurate, and placed on the page that represents the whole business.
Be honest: only claim profiles that exist
The failure mode with sameAs is wishful linking. Do not point it at a Wikipedia article that does not exist, a Wikidata entry for a different company, or a social profile you abandoned in 2019 with a different business name on it. Every URL in that array is a claim that the engine can check, and a claim that fails checking damages the credibility of the ones that pass. Three real, active, matching profiles beat ten aspirational ones. The same rule applies to the rest of the node. The markup describes the organization you are, not the one you would like the engines to believe in.
Verify: validate, then re-audit
Run your homepage through Google's Rich Results Test and confirm exactly one Organization node is detected and parses cleanly. Open each sameAs URL and confirm it resolves, belongs to you, and shows the same business name your site does. Then check the pages your plugins touch and make sure no second node crept back in.
Then verify it the way the engines will. Re-run an audit on the live URL and confirm one typed Organization node with name, url, logo, and sameAs is what a crawler actually receives. You can do this by hand, or paste your link into our GEO audit or the full Brimm audit and we will read the page the way a crawler does, count the Organization nodes, and print what is missing in fix order. For why entity resolution decides AI citations, our guide on answer engine optimization covers it, and the rest of the fix library walks through the other failures we find most.