Organization schema markup is a block of JSON-LD code, usually on your homepage, that tells Google who runs your website: your name, logo, URL, social profiles, contact details and company identifiers. Google lists no required properties, recommends you add every one that applies, and for online stores it now also reads return, shipping and loyalty program policies from the same block.
This guide is for Shopify and e-commerce teams who want markup that is accurate, complete and easy to maintain. You'll get the type to choose, every property Google recommends, a copy-ready OnlineStore example with a return policy, what Shopify's Dawn and Horizon themes already output, a step-by-step install and the checks that catch the common mistakes.
What organization schema markup does
Organization markup is a machine-readable record of the business behind a website. Schema.org defines Organization broadly, covering companies, schools, NGOs and clubs, and offers dozens of properties. Google uses a subset of them.
According to Google's Organization structured data documentation (last updated September 8, 2026), the markup helps Google understand your administrative details and tell your organization apart from others with similar names. Some properties, such as iso6523Code and naics, work behind the scenes. Others can affect what people see, such as the logo Google shows in Search and your knowledge panel. Merchants can also use it to influence their merchant knowledge panel and brand profile, including return policy, address and contact information.
Three things it does not do:
- It doesn't guarantee a feature. Google states that valid markup does not guarantee any feature will appear in results.
- It doesn't create a knowledge panel by itself. Panels come from Google's understanding of the entity across the web. Our guide to the Google knowledge panel covers the rest of that work.
- It doesn't replace content. The markup should describe the same business a visitor sees on your homepage, About page and policy pages.
Organization is one of the most widely used types on the web. In the HTTP Archive's 2025 Web Almanac, it appeared on about a quarter of home pages, and it overtook WebPage for the first time.
View the data
| Value | |
|---|---|
| WebSite | 37% |
| SearchAction | 28% |
| Organization | 26.7% |
| WebPage | 25% |
| ListItem | 21% |
| BreadcrumbList | 21% |
| ImageObject | 21% |
Source: HTTP Archive, Web Almanac 2025, SEO chapter
If you're new to structured data in general, start with our schema markup guide and our explainer on JSON-LD for SEO, then come back here for the organization-specific details.
Organization, OnlineStore or LocalBusiness?
Google tells you to use the most specific schema.org subtype that fits. Pick the type that describes your business as it really is, not the one you think will win a search feature.
| Your business | Type to use | Why |
|---|---|---|
| Sells online only (most Shopify brands) | OnlineStore | Google says to use OnlineStore rather than OnlineBusiness for e-commerce. Schema.org places it under Organization, then OnlineBusiness. |
| Sells only through a marketplace storefront | OnlineStore with isStoreOn | Schema.org lets an OnlineStore point to the OnlineMarketplace it sells on. |
| Has a physical shop or showroom customers visit | Most specific LocalBusiness subtype, such as ClothingStore | Google says to use the most specific LocalBusiness subtype and follow its local business guidelines. |
| Brand with several retail locations | OnlineStore or Organization on the homepage, LocalBusiness on each location page | The homepage describes the company; each location page describes one place. |
| Agency, software or service company | Organization or a fitting subtype such as Corporation | Online store subtypes describe merchants, not service providers. |
Where the markup goes
Google says to put organization markup on your homepage or on one page that describes your organization, such as an About page, and that you don't need it on every page. Most stores use the homepage because it is the page Google associates most strongly with the brand. Pick one location and keep a single, complete block there.
The properties Google recommends
Google lists no required properties for Organization. It recommends adding every property that applies to you. The table groups them and adds the guidelines that trip people up.
| Group | Properties | Guideline to follow |
|---|---|---|
| Identity | name, alternateName, legalName, url, description | Use the same name and alternate name as your site name. Add legalName only when your registered name differs. |
| Logo | logo | At least 112 by 112 pixels, crawlable and indexable, in a format Google Images supports, and legible on a plain white background. |
| Profiles | sameAs | Full URLs of your official profiles on other sites: social accounts, Wikipedia, Wikidata, marketplace storefronts. |
| Contact | address, contactPoint, email, telephone | Fill in every address field that applies in your country. Multiple addresses are allowed. |
| Identifiers | iso6523Code, duns, leiCode, globalLocationNumber, naics, taxID, vatID | Google prefers iso6523Code with a prefix (0060 for DUNS, 0199 for LEI) over the separate fields. taxID must match the country in your address. |
| Company facts | foundingDate, numberOfEmployees | ISO 8601 date. Employees as a QuantitativeValue with an exact value or a min and max range. |
| Merchant policies | hasMerchantReturnPolicy, hasShippingService, hasMemberProgram | Covered in the policy section below. Each has its own Google documentation and required fields. |
Leave out what you can't verify
Every value should be true, current and visible somewhere a customer could check it. If you don't have a DUNS number, skip duns. If your support phone line is closed, don't list it. An empty or guessed property adds nothing and becomes one more thing to keep accurate.
We benchmark your schema, entity signals and rankings against your top three competitors on Google and AI answers, then hand you the prioritized fixes and the revenue math.
A complete OnlineStore JSON-LD example
Here is an OnlineStore block for a fictional US brand, with identity, logo, profiles, contact, company facts and a return policy. Replace every value with your own and delete any property that doesn't apply.
<script type="application/ld+json">{"@context": "https://schema.org", "@type": "OnlineStore", "@id": "https://www.example.com/#organization", "name": "Example Outdoor Co.", "alternateName": "Example Outdoor", "legalName": "Example Outdoor Company LLC", "url": "https://www.example.com/", "logo": "https://www.example.com/cdn/shop/files/logo.png", "description": "Example Outdoor Co. sells lightweight camping gear designed in Illinois.", "sameAs": ["https://www.instagram.com/exampleoutdoor", "https://www.youtube.com/@exampleoutdoor", "https://en.wikipedia.org/wiki/Example_Outdoor"], "address": {"@type": "PostalAddress", "streetAddress": "100 Example Avenue", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US"}, "contactPoint": {"@type": "ContactPoint", "contactType": "customer service", "email": "help@example.com", "telephone": "+1-217-555-0100"}, "foundingDate": "2015-04-01", "numberOfEmployees": {"@type": "QuantitativeValue", "minValue": 11, "maxValue": 50}, "hasMerchantReturnPolicy": {"@type": "MerchantReturnPolicy", "applicableCountry": "US", "returnPolicyCountry": "US", "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", "merchantReturnDays": 30, "returnMethod": "https://schema.org/ReturnByMail", "returnFees": "https://schema.org/FreeReturn", "refundType": "https://schema.org/FullRefund", "merchantReturnLink": "https://www.example.com/policies/refund-policy"}}</script>
What each part is doing
@idgives the organization a stable identifier. You can reference it from your WebSite markup or from thebrandorsellerof your Product schema, so every block points to the same entity instead of repeating it.nameandalternateNamematch the site name the brand uses everywhere else.sameAslists only profiles the brand controls or that are clearly about it.numberOfEmployeesuses a range, which Google's guidelines allow when you'd rather not publish an exact headcount.hasMerchantReturnPolicydescribes a 30-day, free, mail-in return window with a full refund, plus a link to the full policy page.
JSON-LD is now the dominant format for this kind of markup. In the 2025 Web Almanac, 43% of home pages used JSON-LD, far ahead of Microdata and RDFa, and Google recommends JSON-LD because it is the easiest to implement and maintain.
View the data
| Value | |
|---|---|
| JSON-LD | 43% |
| Microdata | 17% |
| RDFa | 1% |
| Microformats2 | 0.1% |
Source: HTTP Archive, Web Almanac 2025, SEO chapter
To build your own version without hand-writing JSON, use our free Schema Markup Generator, which outputs Organization JSON-LD, then paste the result into the validator described below.
Add return, shipping and loyalty policies
For merchants, the biggest change to organization markup in the last two years is the policy properties. Google's Search Central changelog shows organization-level return policy support added in June 2025, loyalty programs in July 2025 and organization-level shipping policies in November 2025. These let you describe a store-wide policy once instead of repeating it in every product's Offer.
Return policy
According to Google's merchant return policy documentation, an organization-level MerchantReturnPolicy needs one of two sets of required properties:
- Option A:
applicableCountryandreturnPolicyCategory, plusmerchantReturnDayswhen the category is a finite return window. - Option B:
merchantReturnLink, the URL of the page that explains your policy.
Recommended extras include returnFees, returnMethod, refundType, returnPolicyCountry, restockingFee, returnLabelSource and separate customer remorse and item defect variants. returnShippingFeesAmount becomes required when returnFees is set to return shipping fees.
Shipping and loyalty programs
An organization-level ShippingService has one required property, shippingConditions, which sets cost or delivery times for a destination, weight, order value or other conditions. A MemberProgram goes under hasMemberProgram and requires a name, description and at least one tier in hasTiers; each tier needs a name and hasTierBenefit.
Which source Google trusts first
Markup is the weakest of the places Google reads policies from. If you've also set policies elsewhere, those win.
| Priority | Returns and shipping source | What it means for you |
|---|---|---|
| 1 (strongest) | Content API for Shopping account-level settings | Used by large feeds managed through the API. |
| 2 | Merchant Center or Search Console settings | If these exist, Google uses them over any markup. Keep them in sync with your policy page. |
| 3 | Product-level merchant listing markup | Use it for products with a different policy from the rest of the store. |
| 4 (weakest) | Organization-level markup | The store-wide default when nothing above is set. |
For loyalty programs, Google says that when you provide both markup and Merchant Center loyalty programs, it uses the Merchant Center settings. If your store sends products to Google Merchant Center, check its return and shipping settings before adding policy markup, and make sure the two never contradict your published refund and shipping pages.
What Shopify themes output by default
Most Shopify stores already have some organization markup, so check what your theme prints before you add more. We read the theme source code on Shopify's public GitHub repositories and checked Shopify's official demo stores on October 27, 2026.
| Theme | Type and properties | Where it prints | Gaps |
|---|---|---|---|
| Dawn (demo store on version 15.0.0) | Organization with name, logo (500 px wide, when a logo is set), sameAs from the theme's social link settings and url | The header section, so it appears on every page, including product pages | No OnlineStore type, contact, address, identifiers or policies. Unset social links print as empty strings in sameAs. |
| Horizon (demo store on version 3.2.0) | Organization with name, logo (when set) and url | The header section | No sameAs, contact, identifiers or policies. |
| Paid and custom themes | Varies | Varies | Check the rendered HTML; some print nothing, some print rich blocks. |
Both themes also build url from the current domain plus page.url, and the name comes from your store name in Shopify settings. If your store name in admin is an internal label rather than your brand name, that is the name Google receives. Dawn also prints a separate WebSite block with a SearchAction on the homepage.
How to add organization schema on Shopify
The cleanest setup is one complete block in your theme, on the homepage, with the theme's thin default removed or replaced so you don't publish conflicting versions.
- Audit what exists. Test your live homepage and one product page. List every Organization, OnlineStore or LocalBusiness block and where it comes from: theme, app or a past developer.
- Collect verified facts. Brand name as customers know it, legal name, logo file (at least 112 by 112 pixels, readable on white), official profile URLs, support email and phone, address if you publish one, and your current refund and shipping policies.
- Duplicate your theme. In the Shopify admin, go to Online Store, then Themes, and duplicate the live theme so you can test safely.
- Write the block. Start from the example above or the generator. In Liquid you can pull values from Shopify instead of hard-coding them, for example
"name": {{ shop.name | json }}, and wrap the snippet in{% if request.page_type == 'index' %}so it prints only on the homepage. - Add it to the theme. Use Edit code on the duplicate theme, create a snippet such as
organization-schema.liquidand render it fromlayout/theme.liquidinside thehead. - Remove the duplicate. Delete or comment out the theme's default Organization script in the header section, and turn off organization markup in any app that prints its own. Keep exactly one.
- Validate on the preview. Test the preview URL in Google's Rich Results Test or the Schema Markup Validator. Fix syntax errors and any value that doesn't match the visible page.
- Publish and inspect. Publish the theme, then use URL Inspection in Search Console to confirm Google sees the new block in the rendered HTML.
If you'd rather not edit Liquid, many SEO apps can output organization markup. That's fine as long as you remove the theme's version and the app lets you fill every property you need.
Our free $100M AI Visibility Roadmap, built from 7,960 live pages and 197 A/B tests, shows how to get your brand cited by ChatGPT, Google AI Overviews and Perplexity.
How to validate and maintain it
Valid code is the minimum. Accurate code that stays accurate is the goal.
The checks to run
- Syntax. Google's Rich Results Test and the Schema.org validator both parse JSON-LD. Our Schema Markup Validator pulls every block from a URL or pasted snippet and checks the properties Google needs.
- Search Console reports. Google points to the unparsable structured data report, the structured data error list and URL Inspection. There is no dedicated Organization rich result report, so use URL Inspection to confirm what Google rendered.
- Manual actions. Google notes that a structured data manual action can cause markup to be ignored. Check the Manual Actions report if your logo or panel details never update.
- Visible match. Compare every value with your About, contact and policy pages. A return window of 30 days in markup and 14 days on the refund page is a trust problem, not just a markup problem.
When to update it
Treat the block like your business record. Update it when you rebrand, change your logo, open or close a profile, move address, change your support line or change your refund or shipping terms. Add it to your site migration checklist too, because a theme switch can silently drop custom snippets and bring back the theme default.
Common organization schema mistakes
| Symptom | Likely cause | Fix |
|---|---|---|
| Validator shows two or three Organization blocks | Theme default plus one or more apps | Keep one complete block and remove the rest. |
sameAs contains empty values | Dawn prints unset social link settings as empty strings | Fill the social settings or replace the theme block with your own list. |
| Wrong logo in Search | Logo is too small, mostly white, or blocked from crawling | Use a crawlable file of at least 112 by 112 pixels that reads well on white. |
| Brand name looks wrong | shop.name in Shopify settings is not the public brand name | Fix the store name or hard-code name to match your site name. |
| Return details in Search don't match markup | Merchant Center or Search Console settings take precedence | Update the policy where Google actually reads it, and keep markup consistent. |
| Stars or ratings in the block never show | Self-serving reviews on Organization aren't eligible | Remove them and put genuine product reviews in Product markup. |
Organization markup is one layer of a site Google can understand. The other layers are your site architecture and internal links, which decide whether the pages your organization block vouches for get crawled at all. Our free Internal Link Checker finds orphan and under-linked pages from a crawl export.
Get your organization markup right this week
Test your homepage, list every block, collect verified facts, ship one complete OnlineStore block and check your Merchant Center policies match it. That's an afternoon of work for most Shopify stores, and it removes a whole class of conflicting signals about who you are. If you want a second set of eyes on your schema and the rest of your technical SEO, talk to our team.
Book a free 30-minute call. We'll compare you with your top three competitors, show the pages ready to move and give you a prioritized fix list with the revenue math.