sameAs is the schema.org property that lists other web pages identifying the same entity, such as a business's Google Maps listing, Yelp page, BBB profile, or LinkedIn page. For a multi-location service brand, the parent brand's profiles go in Organization markup on the homepage, and each branch's own profiles go in LocalBusiness markup on that branch's page. Google's Organization documentation, last updated September 8, 2026, recommends sameAs and says you can list multiple URLs, while its LocalBusiness page, updated the same day, requires only two properties (name and address) and never mentions sameAs.
Last verified: September 23, 2026.
That split tells you what the property is for. sameAs is an identity clue: it tells a parser which profiles on other sites describe this exact business. The two blocks below are the whole pattern, and both passed the Schema.org validator with zero errors and zero warnings on September 23, 2026. If the cleanup behind them spans dozens of branches and a few acquired brands, that's the work our multi-location local SEO program does; the rest of this page is how to do it yourself.
Example 1: the parent brand, on the homepage
Put this block once, on the homepage or the about page. Google's Organization guidance says, "You don't need to include it on every page of your site."
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Example Plumbing & Air",
"url": "https://www.example.com/",
"logo": "https://www.example.com/images/logo.png",
"telephone": "+1-800-555-0199",
"sameAs": [
"https://www.linkedin.com/company/example-plumbing-and-air",
"https://www.facebook.com/exampleplumbingandair",
"https://www.youtube.com/@exampleplumbingandair"
]
}The brand-level array holds profiles that represent the company as a whole: the LinkedIn company page, the corporate social accounts, and a Wikipedia or Wikidata entry if one genuinely exists. No branch listings go here. A parent-brand array that also carries 40 Google Maps links is telling a parser that one entity has 40 addresses.
Example 2: one branch, on its location page
Each location page gets its own block, with the branch's own profiles in sameAs and a pointer back to the brand.
{
"@context": "https://schema.org",
"@type": ["Plumber", "HVACBusiness"],
"@id": "https://www.example.com/locations/phoenix/#localbusiness",
"name": "Example Plumbing & Air Phoenix",
"url": "https://www.example.com/locations/phoenix/",
"telephone": "+1-602-555-0142",
"image": "https://www.example.com/images/phoenix-branch.jpg",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 E Example St",
"addressLocality": "Phoenix",
"addressRegion": "AZ",
"postalCode": "85004",
"addressCountry": "US"
},
"areaServed": ["Phoenix", "Tempe", "Scottsdale"],
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "07:00",
"closes": "18:00"
}
],
"parentOrganization": {
"@type": "Organization",
"@id": "https://www.example.com/#organization",
"name": "Example Plumbing & Air",
"url": "https://www.example.com/"
},
"sameAs": [
"https://maps.google.com/?cid=12345678901234567890",
"https://maps.apple.com/place?place-id=I0123456789ABCDEF",
"https://www.yelp.com/biz/example-plumbing-and-air-phoenix",
"https://www.bbb.org/us/az/phoenix/profile/plumber/example-plumbing-and-air-1126-1000002",
"https://www.facebook.com/exampleplumbingphoenix"
]
}Everything in both blocks is fictional, including the 555-01 phone numbers, which are reserved for fiction. Swap in your real values; keep the structure.
Three details carry most of the weight. The `@type` array uses two real Schema.org subtypes, because a branch that does both plumbing and HVAC is both; Google's LocalBusiness guidance says to use the most specific subtype you can. `parentOrganization` is Schema.org's link from a branch to "the larger organization that this organization is a subOrganization of," and it replaced the older `branchOf`. The `@id` values give each node a stable name, so the branch can point at the brand without repeating it.
The URL forms inside the branch's sameAs array are where most templates go wrong:
- Google Maps: use the `https://maps.google.com/?cid=` form. Google's Places API documentation describes that URL as "the official Google page for this place." If you already store Place IDs, Google's Maps URLs format with `query_place_id` is the documented alternative, which Google says gives "the best guarantee that you will link to the right place."
- Apple Maps: use `https://maps.apple.com/place?place-id=` with the branch's Apple Place ID, the format in Apple's unified Maps URLs documentation.
- Yelp, BBB, Facebook: the branch's own page. A brand-level Facebook page belongs in Example 1, not here.
- Bing Places and trade directories: add them only when the public URL opens that branch's own record, not a search result or a brand page.
If a branch is a service-area business that hides its street address on its Google profile, leave `streetAddress` out of the markup too. Google's service-area help page is blunt: "If you don't serve customers at your business address, remove your address from your Business Profile." Markup that shows what the profile hides is a mismatch you created on purpose. For the wider rollout across dozens of branch pages, the LocalBusiness schema rollout guide covers @id conventions and templates.
Where each URL goes
Two arrays, not one
Parent brand
Organization, homepage
- LinkedIn company page
- Corporate Facebook and YouTube
- Wikipedia or Wikidata, only if one exists
- No branch listings
One location
LocalBusiness, branch page
- Google Maps listing, maps.google.com/?cid=
- Apple Maps, maps.apple.com/place?place-id=
- That branch's Yelp, BBB, and Facebook pages
- parentOrganization points back to the brand
Schema.org sameAs and parentOrganization; Google Places API (legacy) place URL and Maps URLs; Apple unified Maps URLs. All checked September 23, 2026.
What sameAs does, and what it doesn't
Schema.org defines sameAs as the "URL of a reference Web page that unambiguously indicates the item's identity." The value is a URL, and the property sits on Thing, so every business type inherits it. Google's documented use is narrower: its Organization page says the markup "can help Google better understand your organization's administrative details and disambiguate your organization in search results."
That is the whole documented benefit. Google's guide to its generative AI features, last updated July 10, 2026, says "Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add." Its general structured data guidelines add that Google "does not guarantee that your structured data will show up in search results." We haven't measured a ranking effect from sameAs, Google doesn't document one, and this article doesn't claim one.
sameAs also can't fix the records it points to. It won't merge a duplicate Google profile, correct a wrong phone number on Yelp, or retire a BBB listing still filed under an acquired company's old name. Those are source problems, and pointing structured data at a broken source copies the error into machine-readable form. Clean the source first with the duplicate Business Profile workflow, then link it.
Next step
Is AI recommending your business?
Find out how visible you are across ChatGPT, Gemini, Perplexity, and AI Overviews.
Three checks before a URL goes into a branch array
A brand with 40 locations and five profiles per branch has 200 candidate URLs to sort, and a location-page template will copy every one of them in without checking any. Run each candidate through the same three checks first.
Before a URL enters a branch array
Three checks per link
- 01Identity
Opens this branch
Logged out, the URL lands on this location's own record, not a brand page or a search result.
- 02Status
Current and matching
Claimed and open, with the page's name, phone, and address. Not a duplicate, closed, practitioner, or old-brand profile.
- 03Visible
Visible on the page
Linked in the branch page's footer, because Google says not to mark up what users cannot see.
Schema.org sameAs definition; Google Search Central, Introduction to structured data markup (last updated December 10, 2025). Checked September 23, 2026.
- Three checks a profile URL must pass before it goes into a branch's sameAs array
- 1. Opens this branch: Logged out, the URL lands on this location's own record, not a brand page or a search result.
- 2. Current and matching: Claimed and open, with the page's name, phone, and address. Not a duplicate, closed, practitioner, or old-brand profile.
- 3. Visible on the page: Linked in the branch page's footer, because Google says not to mark up what users cannot see.
A URL that opens a brand search, a directory category page, or a national profile doesn't "unambiguously" identify the Phoenix branch, whatever it says about the brand.
The third check comes from Google's structured data introduction: "don't add structured data about information that is not visible to the user, even if the information is accurate." A short row of profile links in each location page's footer, labeled for customers, satisfies that rule and helps the person on the page at the same time.
Leave out duplicate profiles, closed-location profiles, practitioner or technician profiles that represent a person instead of the branch, and acquisition-era pages under a name the branch no longer uses. If a source is useful but ambiguous, put it on the cleanup list instead of in the markup. The entity fragmentation guide covers how those records drift apart after rebrands and acquisitions.
Validate before you roll it out
Parse the JSON first, because one trailing comma invalidates the whole block and the page will look fine to a person. Then run the page through the Schema.org validator for vocabulary errors and Google's Rich Results Test for the LocalBusiness fields Google reads. Open every sameAs URL in a logged-out browser and confirm it lands on that branch, then use URL Inspection in Search Console after deployment to confirm Google sees the rendered block.
Keep a register while you do it: branch, page URL, each sameAs URL, the check it passed, the owner of that profile, and the date checked. That register is more useful than the markup, because it is what tells you which link to change when a branch moves or closes. If the syntax itself is new to your team, What Is JSON-LD? covers the format.
What to do this week
Pick five branches: your oldest, your newest, one acquired location, one service-area branch, and one location with a known duplicate profile. Build the register for those five, run the three checks, ship Example 2 on those five pages, and validate. Then fix the template before it touches the other 35.
How we checked this
We checked every property in both blocks against the Schema.org vocabulary (version 30.1, released September 16, 2026) and against Google's Organization, LocalBusiness, and general structured data documentation on September 23, 2026. Both blocks parsed as JSON and returned zero errors and zero warnings in the Schema.org validator the same day. The URL formats come from Google's Places API and Maps URLs documentation and Apple's unified Maps URLs documentation. The business, addresses, IDs, and phone numbers in the examples are fictional.
Sources
- sameAs. Schema.org, version 30.1 released September 16, 2026. Definition of the property and its URL value type. Checked September 23, 2026.
- parentOrganization. Schema.org. Definition, inverse property subOrganization, and the note that it supersedes branchOf. Checked September 23, 2026.
- Organization structured data. Google Search Central, last updated September 8, 2026. sameAs as a recommended property, placement guidance, and the disambiguation purpose. Checked September 23, 2026.
- Local business structured data. Google Search Central, last updated September 8, 2026. Required name and address, most specific subtype guidance; no mention of sameAs. Checked September 23, 2026.
- General structured data guidelines. Google Search Central, last updated July 10, 2026. No guarantee of display; markup must be a true representation of the page. Checked September 23, 2026.
- Introduction to structured data markup. Google Search Central, last updated December 10, 2025. The rule against marking up information that is not visible. Checked September 23, 2026.
- Optimizing your website for generative AI features on Google Search. Google Search Central, last updated July 10, 2026. No special schema.org markup for generative AI search. Checked September 23, 2026.
- Place Details (Legacy) and Maps URLs. Google Maps Platform, last updated September 17, 2026. The cid place URL and the query_place_id search URL. Checked September 23, 2026.
- Manage your service areas. Google Business Profile Help, undated. The rule to remove the address when you don't serve customers there. Checked September 23, 2026.
- Adopting unified Maps URLs. Apple Developer Documentation. The maps.apple.com/place?place-id= format. Checked September 23, 2026.
- Schema Markup Validator, validator.schema.org. Schema.org. Both example blocks returned zero errors and zero warnings on September 23, 2026.
Amadeus Peterson is the CTO & Co-Founder of Cheers, the local search platform for multi-location service businesses.
