Articles

Business and store details AI agents can trust: Organization and LocalBusiness data

Usually fixed by: Developer · Typical effort: days

Before an AI agent recommends a store, it wants to know who it's dealing with: the business name, how to contact it, where it ships from, when it's open, and what happens if something goes back. Organization data puts those facts in one place, in a form an agent can read without piecing them together from your footer.

Why business details matter to AI agents

People ask AI assistants questions like "is this a real shop?", "do they have a phone number?", "are they open on Sunday?" and "can I return it if it doesn't fit?". To answer, an agent has to find those facts somewhere on your site. Usually they're scattered: the phone number in the footer, the address on a contact page, the returns window in a policy page, the opening hours in an image.

An agent can often work it out, but every guess is a chance to get it wrong or to give up and recommend someone whose details are easier to confirm. Structured data about your business gives it one trusted summary, on the page it's most likely to visit first: your home page.

Product markup describes what you sell. Organization markup describes who is selling it. Agents use both. For products, see product data that AI shopping agents can read.

Pick the right type

Schema.org has a family of types for businesses. Use the most specific one that's true.

TypeUse it when
OrganizationThe general case: any company, brand or nonprofit
OnlineStoreYou sell online and have no shop customers can walk into. It's a more specific kind of Organization
LocalBusiness or a subtype such as StoreCustomers can visit you at a physical address, such as a shop, showroom or clinic

If you have an online store and physical shops, describe the company as an Organization or OnlineStore on the home page, and give each shop its own LocalBusiness (or Store) markup on its own location page, with its own address and hours.

A complete example

Here's JSON-LD for the home page of a fictional online coffee store. It goes in the page's HTML, inside the <head> or <body>:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "OnlineStore",
  "@id": "https://northwind.example/#organization",
  "name": "Northwind Coffee",
  "legalName": "Northwind Coffee Ltd",
  "url": "https://northwind.example/",
  "logo": "https://northwind.example/images/logo.png",
  "description": "Specialty coffee roasted to order and shipped across the US.",
  "email": "help@northwind.example",
  "telephone": "+1-555-010-0199",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "120 Harbor Street",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97201",
    "addressCountry": "US"
  },
  "contactPoint": [{
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "help@northwind.example",
    "telephone": "+1-555-010-0199",
    "availableLanguage": ["en"],
    "hoursAvailable": {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  }],
  "sameAs": [
    "https://www.instagram.com/northwindcoffee.example",
    "https://www.linkedin.com/company/northwind-coffee-example"
  ],
  "hasMerchantReturnPolicy": {
    "@type": "MerchantReturnPolicy",
    "applicableCountry": "US",
    "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
    "merchantReturnDays": 30,
    "returnMethod": "https://schema.org/ReturnByMail",
    "returnFees": "https://schema.org/FreeReturn",
    "merchantReturnLink": "https://northwind.example/returns"
  }
}
</script>

What each part tells an agent

  • Name, legal name, URL and logo. Confirms which business this is, and that this website belongs to it. Use the name customers know you by in name, and your registered company name in legalName.
  • Contact points. A ContactPoint for each way to reach you, with contactType saying what it's for ("customer service", "sales", "technical support"). Add the hours it's staffed and the languages it covers, so an agent can tell someone whether they'll get an answer today.
  • Address. A full PostalAddress answers "where are they based?" and helps an agent judge shipping times and which country's consumer rules apply. Only include it if you're happy for it to be quoted.
  • sameAs. Links to your official profiles elsewhere: social accounts, marketplace storefronts, a Wikipedia or business-register entry. They help an agent connect your site to what others say about you, and make it harder to confuse you with a similarly named business.
  • Return policy. hasMerchantReturnPolicy on the organization sets a default for everything you sell. Google added support for return policies at the organization level, so you don't have to repeat it on every product. Product-level policies can still override it where they differ.

Opening hours for places customers visit

For a shop, showroom or other location, the most common question is "are they open now?". Use openingHoursSpecification on the LocalBusiness, one entry per set of days with the same hours:

"openingHoursSpecification": [
  { "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "08:00", "closes": "18:00" },
  { "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Saturday", "opens": "09:00", "closes": "16:00" }
]

Leave out days you're closed. For holidays, add an entry with validFrom and validThrough dates, so an agent doesn't send someone to a locked door on December 25. Add geo coordinates and a telephone for each location too.

Rules that keep it trustworthy

  • Match what people see. The phone number, address, hours and return window in your markup must match your contact and policy pages. If they disagree, an agent can't tell which is right, and may say so.
  • One source of truth. Generate the markup from the same settings as your footer and contact page, so a change in one place updates both. Hand-written markup goes stale the first time your hours change.
  • Put it in the HTML. Markup added by a tag manager or other JavaScript after the page loads is invisible to agents that don't run JavaScript.
  • Describe it once. Use a stable @id (like https://northwind.example/#organization) so other markup on your site, such as a product's brand or a WebSite's publisher, can point to the same organization instead of repeating it.
  • Keep the policy pages too. Markup summarizes; your returns and shipping pages explain. Agents read both. See policy pages AI assistants can quote.

What AgentScore checks

The AgentScore check "Structured data describes your business and products" reads your home page's HTML for schema.org JSON-LD:

  • It passes when JSON-LD is in the HTML before any JavaScript runs, and lists the types it found, such as Organization and WebSite.
  • It warns if the JSON-LD only appears after JavaScript runs, or if the page only has microdata.
  • It fails if there's no schema.org structured data on the home page at all.

The check confirms the markup is there and readable. It doesn't judge whether your hours or phone number are right, so validate the content yourself.

How to add it

  1. See what you have. View your home page's source and search for application/ld+json. Many platforms and themes already output a basic Organization block with just a name and logo.
  2. Collect the facts. Ask customer service for the contact details and hours they actually want shared, and check the return window against your current policy.
  3. Extend the markup. Your developer can extend the theme template, or an SEO app or plugin can add the fields. Prefer one that reads from your store settings.
  4. Validate. Run the page through the Schema Markup Validator, and Google's Rich Results Test for the fields Google uses.
  5. Re-check after changes. Add "update the structured data" to the checklist for changing hours, phone numbers or policies.

Business details are one part of being readable to AI agents. For the rest, see the agent readiness guide, and for the details shoppers ask about most, reviews and ratings AI agents can read.

← All articles Test your site with AgentScore →

Can AI agents use your site?

Get your free AgentScore in under a minute. No sign-up needed.