AI Summary
Schema markup tells Google and AI answer engines your business facts: name, address, phone, hours, service area and services. For a local business, LocalBusiness and Service markup do the real work. Two older tactics no longer earn rich results: Google doesn't show stars for reviews a business publishes about itself, and since August 2023 FAQ rich results only appear for well-known government and health sites. FAQPage markup still helps AI engines pull answers. This guide has copy-paste code and a testing checklist.
What Is Schema Markup and Why Does It Matter for Local Businesses?
Schema markup is structured data that tells search engines what your content means, not just what it says. For a local business, this is the difference between Google guessing that your page is about a plumbing company and Google knowing your hours, service area, phone number, and exact service categories. The schema types that do the work for service businesses are LocalBusiness (or its industry subtypes like Plumber, Dentist, HVACBusiness), Service (for each offering), andFAQPage on pages with a visible FAQ, which AI engines use to pull answers even though Google no longer shows FAQ rich results for most sites. Review stars are not on that list: Google ignores reviews a business marks up about itself. In our experience, adding LocalBusiness schema alone usually doesn't move rankings overnight, but it materially improves how AI search engines describe your business when they cite you.
Which Schema Types Should a Local Business Prioritize?
Most local businesses are best served by adding schema in priority order: LocalBusiness first, Service second, Person schema for authors and key staff third, and FAQPage on pages that show a FAQ fourth. Leave Review and AggregateRating off your own business. Trying to add everything at once usually leads to mismatched data and Search Console warnings.
| Schema Type | Required Properties | Use Case | SERP Impact |
|---|---|---|---|
| LocalBusiness | name, address, telephone | Homepage and contact page | Knowledge panel, map pack signals |
| Service | serviceType, provider, areaServed | Service pages | Improved category match in AI Overviews |
| FAQPage | question, acceptedAnswer | Pages with visible Q&A content | No FAQ rich result unless you're a well-known government or health site (since Aug 2023); AI engines still read it |
| Review / AggregateRating | ratingValue, reviewCount, itemReviewed | Not for your own business (self-serving reviews) | None for LocalBusiness or Organization; get stars from Google Business Profile reviews |
| Person | name, jobTitle, worksFor | Team and author pages | E-E-A-T signals for content |
What Is Schema Markup?
Schema markup is structured data code that tells search engines exactly what your content means, not just what it says. As Google's structured data documentation explains, when Google encounters a phone number on your page, it might not know if it's for sales, support, or something else. Schema markup removes that ambiguity.
What Schema Enables:
- • Rich results: Enhanced listings for the types Google supports, such as products, events, and articles
- • Knowledge panels: Business information boxes in search results
- • Voice search: Better answers for voice assistants like Google Assistant
- • Google Maps: Enhanced business listings with services, hours, and more
- • AI features: Powers AI-generated summaries and answers
For local businesses, schema is particularly valuable because it reinforces the information in your Google Business Profile and gives Google and AI engines one consistent version of your business details. Google's local business structured data documentation lists the properties it reads.
How Do You Set Up LocalBusiness Schema?
LocalBusiness schema provides Google with essential information about your business: name, address, phone, hours, service area, and more. This is the most important schema type for any local business.
Basic LocalBusiness Implementation
Here's a complete LocalBusiness schema example for a plumbing company:
LocalBusiness Schema (JSON-LD):
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Plumber",
"name": "ABC Plumbing Services",
"image": "https://example.com/logo.png",
"url": "https://example.com",
"telephone": "+1-555-123-4567",
"email": "info@example.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Denver",
"addressRegion": "CO",
"postalCode": "80202",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 39.7392,
"longitude": -104.9903
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "07:00",
"closes": "18:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Saturday"],
"opens": "08:00",
"closes": "14:00"
}
],
"areaServed": {
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 39.7392,
"longitude": -104.9903
},
"geoRadius": "50000"
},
"priceRange": "$$",
"paymentAccepted": "Cash, Credit Card, Check",
"sameAs": [
"https://facebook.com/abcplumbing",
"https://twitter.com/abcplumbing",
"https://yelp.com/biz/abc-plumbing-denver"
]
}
</script>Specific Business Types
Instead of generic "LocalBusiness," use a specific type when available. This helps Google understand exactly what your business does.
Common Business Type Schema:
- • Plumber
- • Electrician
- • HVACBusiness
- • RoofingContractor
- • Locksmith
- • MovingCompany
- • Dentist
- • Attorney
- • Physician
- • RealEstateAgent
- • InsuranceAgency
- • FinancialService
Find the full list at schema.org/LocalBusiness
Critical:
Your schema data must match your Google Business Profile exactly. Same business name, same address format, same phone number. Inconsistencies can hurt your local SEO by confusing Google about your business identity.
Is FAQPage Schema Still Worth Adding?
Yes, but not for rich results. In August 2023 Google announced the change: FAQ rich results now show only for well-known, authoritative government and health websites, so a plumber's FAQ markup won't add dropdowns under its listing. The markup is still valid, and Google's FAQPage guide still documents it. Keep it on pages with a visible FAQ: it hands Google, ChatGPT, Perplexity and other answer engines clean question-and-answer pairs to quote.
FAQPage Schema Example
FAQPage Schema (JSON-LD):
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How much does a plumber charge per hour?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Plumbers typically charge between $75-150 per hour,
depending on the complexity of the work and your location.
Emergency and after-hours calls may cost more."
}
},
{
"@type": "Question",
"name": "Do you offer emergency plumbing services?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we offer 24/7 emergency plumbing services.
Call our emergency line at 555-123-4567 for immediate assistance
with burst pipes, severe leaks, or sewage backups."
}
},
{
"@type": "Question",
"name": "What areas do you service?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We serve the entire Denver Metro area including Aurora,
Lakewood, Arvada, Westminster, and surrounding communities
within a 30-mile radius of downtown Denver."
}
}
]
}
</script>FAQ Schema Best Practices:
- • The FAQ content must be visible on the page (not hidden or in collapsed sections)
- • Each Q&A should provide genuine value, not promotional content
- • The markup must match the visible questions and answers word for word
- • Don't use FAQ schema for support forums or user-generated content
- • Lead each answer with the direct answer, so an AI engine can quote the first sentence
Should You Add Review or AggregateRating Schema?
Not to your own business. Since September 2019, Google changed review rich results: star ratings no longer appear for reviews that a LocalBusiness or Organization publishes about itself on its own site. The review snippet guidelines spell it out: self-serving reviews aren't allowed for LocalBusiness and Organization. That covers testimonials you wrote up yourself and Google or Yelp reviews you embed with a widget.
Important Warning:
Marking up your own reviews earns no stars, and review markup that breaks Google's guidelines can lead to a structured data manual action. The stars local customers see come from your Google Business Profile reviews, so put the effort there.
Where AggregateRating Still Applies
Review and AggregateRating markup still earn stars on types Google supports for review snippets, such as products, recipes, books, courses, and software apps, when the reviews are shown on the page. If your business sells a product and shows its reviews on the product page, mark up the product, not your company:
AggregateRating on a Product (not on your LocalBusiness):
{
"@context": "https://schema.org",
"@type": "Product",
"name": "ABC Water Heater Flush Kit",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"bestRating": "5",
"worstRating": "1",
"ratingCount": "127"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "John Smith"
},
"datePublished": "2026-01-15",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"reviewBody": "Easy to use. Flushed our tank in twenty
minutes with the included hose adapter."
}
]
}How Does Service Schema Help Describe Your Offerings?
Service schema helps Google understand the specific services your business offers, which can improve visibility for service-specific searches.
Service Schema Example:
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Emergency Drain Cleaning",
"provider": {
"@type": "Plumber",
"name": "ABC Plumbing Services"
},
"areaServed": {
"@type": "City",
"name": "Denver, Colorado"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Drain Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Drain Snaking",
"description": "Clear minor clogs with professional drain snaking"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Hydro Jetting",
"description": "High-pressure water jetting for severe blockages"
}
}
]
}
}How Do You Implement Schema Markup?
Method 1: JSON-LD (Recommended)
JSON-LD is Google's recommended format. Add the schema code in a script tag, typically in your page's <head> section or just before </body>.
JSON-LD Advantages:
- • Separate from your HTML, so it doesn't clutter your markup
- • Easy to update without touching page content
- • Can be added via Google Tag Manager without developer help
- • Easier to generate dynamically from your CMS
Method 2: WordPress Plugins
If you're using WordPress, these plugins can generate schema automatically:
Recommended Schema Plugins:
Yoast SEO (Local SEO add-on)
Comprehensive SEO plugin with local business schema. The Local SEO add-on ($99/year) adds detailed LocalBusiness schema with multiple locations support.
RankMath
Free plugin with built-in schema generator. Supports LocalBusiness, FAQ, and many other schema types.
Schema Pro
Dedicated schema plugin ($79/year) with extensive schema type support and automatic generation.
Method 3: Google Tag Manager
You can add schema via GTM without touching your website code:
- 1.Create a new Custom HTML tag in GTM
- 2.Paste your schema script (including the <script> tags)
- 3.Set the trigger to fire on the appropriate pages (e.g., All Pages for LocalBusiness, specific pages for FAQs)
- 4.Preview, test with Rich Results Test, then publish
How Do You Test Your Schema Markup?
Always test your schema after implementation. Invalid schema won't trigger rich results and can cause errors in Search Console.
Testing Tools:
- Google Rich Results Test
Test any URL or code snippet. Shows which rich results are eligible and any errors. - Schema Markup Validator
Validates syntax against the Schema.org vocabulary. Good for catching technical errors. - Google Search Console
Enhancements section shows schema across your entire site. Check for errors, warnings, and valid items.
Pro Tip:
Even if your schema passes validation, it doesn't guarantee rich results. Google decides whether to display rich results based on many factors including content quality, user behavior, and search intent. Schema is necessary but not sufficient for rich results.
What Are the Most Common Schema Mistakes?
Most schema errors fall into three buckets. First, wrong @type: using genericLocalBusiness when a specific subtype likePlumber or HVACBusiness is available. Second, missing required properties: Google's rich result requirements differ from Schema.org's minimums, and skipping a required field disables rich results even if the markup validates. Third, mismatched data: schema that lists one phone number while the visible page lists another, or hours that don't match the Google Business Profile. Google treats this as a trust signal problem. The fourth is outdated markup: AggregateRating on the business's own LocalBusiness node, which Google ignores as a self-serving review, and FAQPage added in the hope of FAQ dropdowns that Google stopped showing for most sites in 2023.
How Does Schema Affect AI Search Visibility?
Schema isn't just for Google's blue-link rich results anymore. Google's AI Overviews, ChatGPT search, and Perplexity all parse structured data to extract facts quickly. When an AI engine cites your business, schema helps it answer questions like "what hours are they open" or "what service area do they cover" without misquoting your site. In our experience, businesses with clean LocalBusiness + Service schema get cited more accurately by AI engines than businesses that rely on page text alone. Schema also feeds Google's Knowledge Graph, which is the layer that AI Overviews pull from when summarizing local options. None of this is a guarantee of citation, but it removes the most common reason AI engines skip you: ambiguous business identity.
Local schema is usually bundled into a local SEO retainer rather than sold on its own. Seewhat SEO costs per month, or how ourSacramento local SEO services add LocalBusiness, Service and FAQ schema to every service and area page.
Frequently Asked Questions
What is schema markup and why does it matter for SEO?
Schema markup (also called structured data) is code you add to your website that helps search engines understand your content better. It uses a standardized vocabulary from Schema.org to describe your business, products, reviews, FAQs, and more. Schema matters because it removes guesswork: Google and AI answer engines can read your business name, hours, service area and services as facts instead of inferring them from page text. Some types also make a page eligible for rich results, but for a local business the main payoff is accurate business details, not stars or extra listing space.
Does schema markup directly improve rankings?
Schema markup is not a direct ranking factor—adding schema won't automatically boost your position in search results. It helps indirectly: it makes some pages eligible for rich results, it helps Google understand what your content is about, and it gives voice assistants and AI answer engines clean facts to quote. Don't expect review stars or FAQ dropdowns from it, though. Google doesn't show stars for reviews a business publishes about itself, and it limited FAQ rich results to well-known government and health sites in August 2023.
What types of schema are most important for local businesses?
For local businesses, prioritize: LocalBusiness schema (or a specific subtype like Plumber, Dentist, Attorney) for your business information, Service schema for each offering, Article/BlogPosting and Person schema for blog content and authors, and FAQPage schema on pages with a visible FAQ so AI answer engines can extract the answers. Skip AggregateRating on your own business: Google doesn't show stars for self-serving reviews on LocalBusiness or Organization markup. LocalBusiness is the most critical, because it gives Google your name, address, phone, hours and service area.
How do I add schema markup to my website?
There are several ways to add schema: 1) JSON-LD (recommended): Add a script tag with JSON-formatted schema in your page's head or body. This is Google's preferred format and doesn't affect your visible content. 2) Plugins: WordPress plugins like Yoast SEO, RankMath, or Schema Pro can generate schema automatically. 3) Google Tag Manager: Add schema scripts without touching your website code. 4) Manual HTML: Add microdata attributes to existing HTML elements (not recommended due to complexity).
How do I test if my schema markup is working?
Use these free tools to validate your schema: 1) Google Rich Results Test (search.google.com/test/rich-results): Shows if your markup is eligible for a Google rich result and highlights errors. It only reports types Google uses for rich results. 2) Schema Markup Validator (validator.schema.org): Validates every type against the Schema.org vocabulary, including types Google doesn't use for rich results. 3) Google Search Console: the enhancement reports show markup issues across your site. Test after adding new schema, and check Search Console for warnings.
Can I add review schema if my reviews are on Google or Yelp?
No. Review markup has to describe reviews that are visible on the page, and Google's review snippet guidelines rule out self-serving reviews for LocalBusiness and Organization: reviews of your own business, published on your own site, don't earn star rich results even when you collected them through Google or Yelp and embed them with a widget. Marking them up anyway can lead to a structured data manual action. Put that effort into getting reviews on your Google Business Profile, which is where local star ratings show up.
What's the difference between JSON-LD, Microdata, and RDFa?
These are three formats for implementing schema markup: JSON-LD uses JavaScript Object Notation in a script tag, separate from your HTML content—Google recommends this format as it's easiest to implement and maintain. Microdata adds attributes directly to HTML elements, tying schema to specific content but making code harder to manage. RDFa is similar to Microdata, using attributes on HTML elements. For most websites, JSON-LD is the best choice because it's cleaner, doesn't interfere with your HTML, and is easier to update.
How often do I need to update my schema markup?
Update your schema whenever the underlying information changes: business hours, address, phone number, or services offered. For LocalBusiness schema, ensure it always matches your Google Business Profile exactly. For FAQ schema, update when you add or modify FAQ content. Static schema like business info should be reviewed quarterly to make sure it still matches the page and your Business Profile.
Schema Implementation Checklist
Essential Schema (Do First)
- □LocalBusiness schema on homepage with complete NAP
- □Business type matches your Google Business Profile category
- □Opening hours included and accurate
- □Test with Rich Results Test - no errors
Additional Schema
- □FAQPage schema on pages with a visible FAQ (for AI answers, not rich results)
- □Service schema on service pages
- □No AggregateRating on your own business; ask customers for Google Business Profile reviews instead
- □Article schema on blog posts
Ongoing Maintenance
- □Check Search Console monthly for schema errors
- □Update schema when business info changes
- □Add schema to new pages as they're created
- □Monitor rich results in Search Console Performance
Need Help With Schema Implementation?
At Verlua, we implement comprehensive schema markup as part of every website we build. Our technical SEO services include schema audits, implementation, and ongoing monitoring to ensure your business gets maximum visibility in search results.
Get a Schema AuditFounder & Technical Director
Mark Shvaya runs Verlua, a web design and development studio in Roseville, California. He builds conversion-focused websites for service businesses, e-commerce brands, and SaaS companies.
California real estate broker, property manager, and founder of Verlua.
Stay Updated
Get the latest insights on web development, AI, and digital strategy delivered to your inbox.
No spam, unsubscribe anytime. We respect your privacy.
Comments
Comments section coming soon. Have questions? Contact us directly!
Related Articles
The Complete Guide to Local SEO for Small Businesses
Master local SEO strategies to dominate your market and attract more local customers.
Read More about The Complete Guide to Local SEO for Small BusinessesHow to Get More Google Reviews for Your Business
Get more Google reviews with a proven system. Templates, timing, automation tools, and the rules you must follow to build reviews that boost rankings and trust.
Read More about How to Get More Google Reviews for Your BusinessWebsite Speed Optimization: A Business Owner Guide
A 0.1-second speed gain lifts retail conversions 8.4% (Deloitte/Google). Speed guide: images, hosting, code, caching, Core Web Vitals for owners.
Read More about Website Speed Optimization: A Business Owner Guide