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
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:
- Law firms:
LegalService(schema.org also hasAttorney) - Dental practices:
Dentist - Trades:
Plumber,RoofingContractor,HVACBusiness,Electrician - Med spas and clinics:
MedicalBusiness,DaySpa
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
- Test the page in Google's Rich Results Test and fix any critical errors.
- Check the syntax with the Schema Markup Validator at validator.schema.org.
- Compare name, address, phone and hours against your Google Business Profile. They should match exactly.
- Re-check whenever your hours, phone or locations change.
Other AI-readiness checks
- Crawler access. Make sure robots.txt and your firewall allow Googlebot, OAI-SearchBot and PerplexityBot. OpenAI says sites that opt out of OAI-SearchBot won't be shown in ChatGPT search answers.
- Crawlable text. Key facts should be in the page's text, not only in images or scripts.
- llms.txt. Optional and unproven. It does no harm, but Google says you don't need AI text files for its AI features. More in our llms.txt guide.
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.