
When Google or ChatGPT looks at your website, it reads text the way a fast but literal reader would. Is "Mon–Fri 8–5" your hours or the hours of a supplier you mention? Is "Naples" where you're based or one of many cities you list? Schema markup removes the guesswork.
What is schema markup?
Schema markup is a standard vocabulary, maintained at schema.org and supported by Google, Bing and others, for labeling information on a web page. Instead of hoping a search engine figures out that a string of numbers is your phone number, you state it: this is the business name, this is the telephone, these are the opening hours.
Visitors never see it. It sits in the page's code.
Why does it matter for a local business?
- Fewer mistakes: search engines and AI tools are less likely to mix up your hours, address or services.
- Consistency: it confirms the same facts as your Google Business Profile, Bing Places and directory listings.
- Eligibility for richer results: some types of markup can make your pages eligible for enhanced displays in search.
- AI answers: assistants that summarize businesses rely on clear, consistent facts. If you're working on getting recommended by ChatGPT, schema is one of the technical pieces.
Which details should you include?
Start with what describes your business, and only include what's true and visible on your site:
- @type: the most specific type that fits, such as
Plumber,Dentist,HVACBusiness,RestaurantorLegalService. UseLocalBusinessif nothing more specific fits. - name: exactly as it appears on your Google Business Profile
- url and logo
- telephone
- address: for businesses customers visit
- areaServed: the cities or counties you serve, especially for service-area businesses
- openingHoursSpecification: your regular hours
- sameAs: links to your Business Profile, Facebook, Instagram, LinkedIn and other official profiles
- priceRange (optional), like
$$
An example you can adapt
Here's a simplified example for a fictional plumbing company. Replace every value with your real details:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "Example Plumbing Co.",
"url": "https://www.exampleplumbing.com/",
"logo": "https://www.exampleplumbing.com/logo.png",
"telephone": "+1-239-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Example Ave",
"addressLocality": "Naples",
"addressRegion": "FL",
"postalCode": "34102",
"addressCountry": "US"
},
"areaServed": ["Naples", "Marco Island", "Bonita Springs"],
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "17:00"
}],
"sameAs": [
"https://www.facebook.com/exampleplumbing",
"https://www.instagram.com/exampleplumbing"
]
}
</script>
If you're a service-area business that doesn't show its address publicly, leave out the street address and use areaServed instead, matching what your Google Business Profile shows.
How do you add it to your site?
- Website builders and SEO plugins: many add LocalBusiness markup from your business settings. Fill those settings in completely.
- Manually: paste the JSON-LD block into the
<head>of your home or contact page, or ask whoever manages your site to add it. - Custom sites: your developer can generate it from the same data that shows your hours and address, so they never get out of sync.
How do you test it?
- Run the page through Google's Rich Results Test to check for errors.
- Use the Schema Markup Validator to check the full vocabulary.
- After publishing, watch the Enhancements section in Google Search Console for warnings.
Common mistakes
- Details that don't match the page or the Business Profile (old phone, old hours)
- Marking up reviews you wrote yourself or reviews that aren't shown on the page
- Using a generic type when a specific one exists
- Several plugins each adding their own, conflicting markup
- Adding markup once and never updating it when hours or services change
What we'd do first
We'd check what markup your site already has, remove duplicates, then add one accurate LocalBusiness block that matches your Business Profile, plus Service markup on each main service page. It's part of the technical work in our SEO and search visibility service.
Frequently asked questions
Does schema markup improve rankings?
It isn't a direct ranking boost. It helps search engines understand your business correctly and can make your pages eligible for richer results. Clear understanding is also what AI tools need to describe and recommend a business accurately.
Can I add schema markup without a developer?
Often, yes. Many website builders and SEO plugins add basic LocalBusiness markup from your settings. For anything custom, you can paste a JSON-LD block into your site's header, as long as the details are correct and match the page.
What's the difference between JSON-LD, Microdata and RDFa?
They're different ways of writing the same information. JSON-LD keeps it in a single block of code instead of mixing it into your page's HTML, which makes it easier to add and maintain. Google recommends JSON-LD.
Should every page have LocalBusiness schema?
Put the full LocalBusiness markup on your home page or contact page. Service pages can use Service markup that refers back to your business. Repeating conflicting versions on every page creates confusion.
Will FAQ schema still give me rich results?
Google shows FAQ rich results mainly for well-known government and health sites now. FAQ markup still helps describe your content clearly, but don't expect the expandable questions to appear in search for a typical business site.


