Schema markup is JSON code you add to your website that tells Google explicitly: this is a local business, this is what type, this is their service area, these are their hours, this is their rating. Without it, Google has to infer all of that from your page content — and it often gets it wrong or misses it entirely.
Here are the five schema types that matter for small business owners. You can add these to any HTML page by pasting the code in a <script type="application/ld+json"> block before your closing </body> tag.
1. LocalBusiness + Contractor
This is the foundation. It tells Google you're a local business in the contractor category. Here's what it looks like for a small business owner:
{
"@context": "https://schema.org",
"@type": ["LocalBusiness", "Small business owner"],
"name": "ABC Service work Co.",
"telephone": "+1-816-555-0100",
"email": "[email protected]",
"url": "https://abcplumbing.com",
"description": "Emergency small business owner serving Kansas City metro. Licensed and insured.",
"address": {
"@type": "PostalAddress",
"streetAddress": "1234 Main St",
"addressLocality": "Kansas City",
"addressRegion": "MO",
"postalCode": "64106"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "39.0997",
"longitude": "-94.5786"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "07:00",
"closes": "18:00"
}
],
"priceRange": "$$",
"areaServed": ["Kansas City","Overland Park","Lenexa","Shawnee","Liberty","Lee's Summit"]
}
Replace the @type value with the right schema.org type for your business: "Service business," "RoofingContractor," "HVACBusiness," or "LandscapingBusiness."
2. AggregateRating
This pulls your review stars into Google search results — the gold stars you see under some business names in search. To display them, Google needs to see schema markup telling it you have reviews. Add this inside your LocalBusiness schema:
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "47",
"bestRating": "5",
"worstRating": "1"
}
Update the ratingValue and reviewCount monthly or whenever you hit a new milestone. This won't magically generate stars if Google hasn't indexed reviews, but it signals that reviews exist and where to find them.
3. Service
For each major service you offer, add a Service schema. This helps Google match your site to searches for specific services, not just your business name:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Emergency Pipe Repair",
"serviceType": "Service work",
"provider": {
"@type": "LocalBusiness",
"name": "ABC Service work Co."
},
"areaServed": {
"@type": "City",
"name": "Kansas City"
},
"description": "24/7 emergency pipe repair for residential and commercial properties in the Kansas City metro."
}
Add one Service block per major service offering. If you do 8 services, add 8 blocks. Each one adds keyword coverage Google can match to specific searches.
4. FAQPage
If your site has a FAQ section — and it should — add FAQPage schema. Google can display your FAQ answers directly in search results as expandable dropdowns. This takes up more real estate on the results page and drives more clicks:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Do you offer same-day service work service?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. For emergencies, we typically arrive within 2 hours during business hours. For non-emergency same-day service, call by noon and we'll do our best to get there that day."
}
},
{
"@type": "Question",
"name": "Are you licensed and insured?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. We hold a Missouri Master Small business owner license and carry full liability and workers comp insurance. License number available on request."
}
}
]
}
5. BreadcrumbList
Breadcrumb schema tells Google your site's hierarchy, which helps with site structure and can show the path (Home > Services > Emergency Service work) in search results. Simple and quick to add on any service page:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://abcplumbing.com"
},
{
"@type": "ListItem",
"position": 2,
"name": "Services",
"item": "https://abcplumbing.com/services"
},
{
"@type": "ListItem",
"position": 3,
"name": "Emergency Pipe Repair",
"item": "https://abcplumbing.com/services/emergency-pipe-repair"
}
]
}
How to verify it's working
After you add schema markup, use Google's Rich Results Test (search.google.com/test/rich-results) to confirm it parses correctly. Paste your URL or your code directly. It will show you which schema types Google found and flag any errors. Fix the errors before you launch — malformed schema is worse than no schema.
Schema won't fix a broken site. But on a site that's already reasonably well-built, adding these five schema types is one of the highest-leverage things you can do for local SEO. Most of your competitors haven't done it.
Want a site that does this for your small business?
We build mobile-first, SEO-ready business sites for $500. Live in 14 days. $129/month after that. Start with a free mockup.
Get my free mockup