Home / Blog / LocalBusiness schema for AI search: what to include, with JSON-LD examples

Blog

LocalBusiness schema for AI search: what to include, with JSON-LD examples

By Visibility Audit Co. Published October 28, 2026.

Get a $49 Snapshot of your site

Short answer: Add LocalBusiness structured data as JSON-LD, using the most specific subtype that fits, such as Dentist, Plumber or LegalService. Include your name, full address, phone, hours, URL and links to your profiles. Make it match what's on the page and your Google Business Profile. Schema won't force AI recommendations, but it removes ambiguity about who you are.

What LocalBusiness schema is

Schema is a shared vocabulary, published at schema.org, for describing things in a way software can read. LocalBusiness is the type for a business with a physical location or service area. You add it to your site as a small JSON-LD script. Visitors don't see it, but search engines and other tools can read it. Google's LocalBusiness structured data docs explain which properties Google uses.

What schema can and can't do for AI search

Let's be straight about this, because a lot of articles oversell it. Google's guide to AI features and your website says there's "no special schema.org structured data that you need to add" to appear in AI Overviews or AI Mode. It also says to make sure "your structured data matches the visible text on the page."

So schema isn't a ranking lever for AI. What it does is state your facts (name, address, phone, hours, type of business) in one clear, consistent format. When those facts match your page and your Business Profile, there's less for any system to get wrong. That's worth an hour of work. It's not worth paying someone who promises it will get you recommended.

Pick the right subtype

Google says to "use the most specific LocalBusiness sub-type possible." Common ones for local service businesses:

If you do more than one thing, Google says to list the types as an array, for example "@type": ["Plumber", "HVACBusiness"]. It notes that additionalType isn't supported for this.

Required and recommended properties

Google lists two required properties: name and address. Recommended ones include telephone (with country and area code), url, geo (latitude and longitude to at least 5 decimal places), openingHoursSpecification and priceRange (under 100 characters). Schema.org also offers sameAs for links to your profiles elsewhere and areaServed for the places you cover.

Three examples you can adapt

These are for made-up businesses. Swap in your own details, and only include what's true and shown on the page.

A law firm

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LegalService",
  "name": "Example Injury Law",
  "url": "https://www.example.com/",
  "telephone": "+1-555-010-0000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example St",
    "addressLocality": "Tampa",
    "addressRegion": "FL",
    "postalCode": "00000",
    "addressCountry": "US"
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "09:00",
    "closes": "17:00"
  }],
  "sameAs": ["https://www.example-directory.com/example-injury-law"]
}
</script>

A plumber that serves an area

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Example Plumbing",
  "url": "https://www.example.com/",
  "telephone": "+1-555-010-0001",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Riverview",
    "addressRegion": "FL",
    "addressCountry": "US"
  },
  "areaServed": ["Riverview", "Brandon", "Apollo Beach"],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
    "opens": "00:00",
    "closes": "23:59"
  }]
}
</script>

A dental practice

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Example Smile Dental",
  "url": "https://www.example.com/",
  "telephone": "+1-555-010-0002",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "200 Example Ave",
    "addressLocality": "Sarasota",
    "addressRegion": "FL",
    "postalCode": "00000",
    "addressCountry": "US"
  },
  "geo": {"@type": "GeoCoordinates", "latitude": 27.00000, "longitude": -82.00000},
  "priceRange": "$$"
}
</script>

For hours, Google's docs say "00:00" to "23:59" means open 24 hours, and "00:00" to "00:00" means closed all day.

Service-area businesses and multiple locations

If customers don't come to you, you still need an address for Google's rich results, but you don't have to show a street address you keep private. Use the city and state and list the places you cover in areaServed, and make sure that matches how your Business Profile is set up. If you have several locations, Google says to define each one as its own LocalBusiness, so give each location its own page with its own block.

Pair it with FAQPage and Organization

LocalBusiness is a subtype of Organization, and Google recommends following the Organization fields too. If your page has a real question-and-answer section, mark it up with FAQPage as well. In our sample audit, missing FAQPage schema was one of the two findings, and it was a quick fix. You can see a real schema and crawler-access scan there.

Validate it and keep it in sync

  1. Test the page in Google's Rich Results Test and fix any critical errors.
  2. Check the syntax with the Schema Markup Validator at validator.schema.org.
  3. Compare name, address, phone and hours against your Google Business Profile. They should match exactly.
  4. Re-check whenever your hours, phone or locations change.

Other AI-readiness checks

Not sure your schema matches your Google profile? The $49 Snapshot includes an AI-readiness scan of schema, crawler access, llms.txt and crawlable text. For local businesses, see our local AI visibility audit.

FAQ

Does schema markup help with ChatGPT or AI Overviews?

Not directly. Google says no special schema is needed to appear in AI Overviews or AI Mode. Schema helps by stating your business facts clearly and consistently, which reduces the chance of errors.

Which LocalBusiness subtype should I use?

The most specific one that fits, as Google recommends: for example Dentist, Plumber, RoofingContractor, HVACBusiness or LegalService. If you offer several services, list the types as an array.

Should a service-area business include its address?

Google lists address as required for LocalBusiness rich results. If you don't serve customers at your location, use city and state and list your coverage in areaServed, matching your Business Profile.

Can I use AggregateRating for my own reviews?

Google only recommends aggregateRating and review markup for sites that capture reviews about other local businesses. Don't mark up reviews of your own business in LocalBusiness schema.

Where should I put the schema on my site?

Google says you can add it to any page, but it makes most sense on a page about the business, such as your homepage, contact page or a location page. Use one block per location.

How do I test my schema?

Use Google's Rich Results Test for errors and eligibility, and the Schema Markup Validator for general syntax. Then check the details match your page and Business Profile.

Is llms.txt a replacement for schema?

No. They're different things, and neither is required for Google's AI features. Schema states business facts in a standard format. llms.txt is an optional summary file for AI tools.