koira
schema markuplocal seostructured data

How to Add Schema Markup to Your Local Business Website (Step-by-Step)

KOIRA Team8 min read1,458 words
Diagram showing JSON-LD schema markup code on the left transforming into a rich Google search result with star ratings and opening hours on the right
Intro
Breakdown
Solution
FAQ
◆ Key takeaways
  • Schema markup is structured data that speaks directly to search engine crawlers — not your human visitors — and it directly influences rich results like star ratings, hours, and FAQs in Google.
  • LocalBusiness schema is the single most important schema type for any brick-and-mortar or service-area business and should be on every local business website.
  • JSON-LD is the format Google recommends: it lives in a script tag, doesn't touch your visible HTML, and is the easiest format for non-developers to edit.
  • You can generate, validate, and deploy basic schema markup in under 30 minutes using free tools — no coding background required.
  • Schema markup increasingly feeds AI search engines (ChatGPT, Perplexity, Google AI Overviews) that pull structured facts about businesses directly from your site.
  • Common mistakes — mismatched NAP data, missing required properties, and untested markup — cancel out the benefit entirely, so validation is non-negotiable.

What Schema Markup Actually Is (And Why Most Local Businesses Skip It)

Schema markup is code you add to your website that describes your content to search engines in a standardised vocabulary. It doesn't change what visitors see — it changes what Google, Bing, and AI search tools understand about your page.

The vocabulary comes from Schema.org, a collaborative project maintained by Google, Microsoft, Yahoo, and Yandex. Think of it as a shared dictionary that every major search engine has agreed to read. When you label your business's phone number with the right schema property, Google doesn't have to guess whether that string of digits is a phone number, a product SKU, or a reference code. You've told it explicitly.

For local businesses, this matters more than almost any other technical SEO lever. Google's local results — the map pack, knowledge panels, and AI Overviews — are heavily influenced by how clearly your site communicates structured facts. If your competitor has clean schema and you don't, their hours, star rating, and service area can appear directly in search results while yours is invisible.

The reason most local businesses skip it: it sounds technical. Words like "structured data," "JSON-LD," and "schema vocabulary" are enough to make most owners close the tab. This guide exists to remove that barrier entirely.


The Schema Types That Actually Matter for Local Businesses

Not all schema types are created equal. You don't need to implement 30 different types — you need to implement the right four or five, and do them well.

1. LocalBusiness (and its subtypes)

This is the foundation. LocalBusiness schema tells search engines your business name, address, phone number, URL, hours, price range, and geographic coordinates. It directly reinforces your Google Business Profile signals.

Schema.org has over 100 subtypes of LocalBusiness — Restaurant, MedicalBusiness, AutoRepair, LegalService, and more. Always use the most specific subtype that fits. A general contractor should use HomeAndConstructionBusiness, not just LocalBusiness. A dentist should use Dentist. Specificity improves relevance matching.

2. OpeningHoursSpecification

This is technically a property within LocalBusiness, but it deserves its own attention because it's one of the most commonly broken implementations. Structuring your hours correctly — including special holiday hours — lets Google display them directly in search results and voice answers. An incorrect hours display is worse than no display at all, so keep this synced with your Google Business Profile.

3. Review and AggregateRating

If your website hosts customer reviews — even a handful — you can mark them up with Review schema and AggregateRating. This is what powers the gold star ratings that appear under search results. Important: Google prohibits marking up third-party reviews scraped from other platforms as your own. Only mark up reviews that genuinely live on your site.

4. FAQPage

FAQPage schema marks up questions and answers on your page. When implemented correctly, Google can display those Q&A pairs as expandable sections directly in search results, doubling or tripling your visual footprint on the SERP. For local businesses answering common questions ("Do you offer free estimates?", "Do you accept insurance?"), this is one of the highest-ROI schema types available.

5. BreadcrumbList

If your site has multiple pages — service pages, location pages, blog posts — BreadcrumbList schema helps Google understand your site's hierarchy. It also displays a breadcrumb trail under your page title in search results, which increases click trust.


JSON-LD: The Format You Should Use

Schema markup can be written in three formats: JSON-LD, Microdata, and RDFa. Google explicitly recommends JSON-LD, and it's by far the easiest for non-developers to work with.

Why JSON-LD wins:

  • It lives inside a <script type="application/ld+json"> tag — you paste it into your site's <head> or just before </body>
  • It doesn't touch your visible HTML at all — a typo in your schema can't break your page layout
  • You can copy, edit, and validate a complete block in a text editor before touching your site
  • Most website platforms (WordPress, Squarespace, Wix, Shopify) let you paste raw HTML into a header code block, so you don't need FTP or developer access

A minimal LocalBusiness JSON-LD block looks like this:

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "Riverside Plumbing Co.",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "142 Oak Street",
    "addressLocality": "Austin",
    "addressRegion": "TX",
    "postalCode": "78701",
    "addressCountry": "US"
  },
  "telephone": "+15125550192",
  "url": "https://www.riversideplumbing.com",
  "openingHours": ["Mo-Fr 08:00-18:00", "Sa 09:00-14:00"],
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 30.2672,
    "longitude": -97.7431
  },
  "priceRange": "$$"
}

Every property here maps to a real Schema.org specification. You can verify what's required vs. recommended for your specific type at Schema.org's documentation.


The NAP Rule: Your Schema Must Match Everything Else

Your business Name, Address, and Phone number (NAP) in your schema must be character-for-character consistent with your Google Business Profile, your website footer, and your major citations (Yelp, Bing Places, Apple Maps).

This is where most local businesses silently sabotage themselves. "St." vs. "Street." "(512) 555-0192" vs. "+15125550192." A suite number present on one listing but missing on another. Google's reconciliation algorithm interprets inconsistency as unreliability. NAP consistency is foundational to local rankings — your schema reinforces or undermines it.

Rule of thumb: copy your business name and address exactly as they appear on your Google Business Profile. Don't embellish, abbreviate, or reformat.


Schema Markup and AI Search: Why This Is Becoming More Important, Not Less

This is where schema's value compounds over the next few years. AI search engines — Google's AI Overviews, ChatGPT's web browsing, Perplexity — pull structured facts from web pages when generating answers. A page with clean, machine-readable schema is materially easier for an AI system to cite accurately than a page full of prose.

When someone asks an AI assistant "What are the hours for the best plumber near me?" the system is looking for pages that communicate hours in a structured, unambiguous format. Your JSON-LD block is exactly that.

As covered in the new schema types post for small businesses, Google continues to expand the schema properties it actively uses in both traditional and AI-powered results. Getting your foundation right now means you're positioned to layer on newer types — ServiceArea, hasOfferCatalog, SpecialAnnouncement — as they become standard.


What Schema Markup Cannot Do

Let's be clear about what schema is not:

  • It is not a ranking shortcut. Schema doesn't make a weak page rank above a strong one. It helps Google better understand and display your content — but relevance, authority, and user experience still determine rank.
  • It does not replace your Google Business Profile. Your GBP is a separate entity that Google controls. Schema on your website reinforces it but doesn't replace it.
  • It is not a one-time set-and-forget task. If your hours change, your phone number changes, or you add services, your schema needs to be updated. Stale schema is actively harmful.
  • It will not instantly show rich results. Google typically takes days to weeks to re-crawl and re-index schema changes. Don't panic if you don't see stars in your SERP listing the next morning.

Common Mistakes That Waste Your Effort

1. Marking up content that doesn't exist on the page. If your FAQPage schema contains questions that aren't actually visible on the page, Google will ignore or penalise it.

2. Using the wrong business type. LocalBusiness is a fallback. Always use the most specific subtype available. Google uses type specificity in relevance scoring.

3. Skipping the geo coordinates. Latitude and longitude are optional in the spec but highly recommended for local businesses. They directly support map-based discovery.

4. Never testing the markup. The Google Rich Results Test is free and takes 30 seconds. Use it every time you make a change.

5. Duplicating schema across every page. Your LocalBusiness block belongs on your homepage and contact page. Don't paste it onto every blog post — it creates signal dilution and can confuse crawlers about which page represents your business.


How Schema Fits Into a Broader Local SEO Strategy

Schema markup is one layer in a multi-layer local SEO stack. On its own, it won't move the needle dramatically. Combined with a verified and fully populated Google Business Profile, consistent citations, and location-relevant on-page content, it closes the gap between what Google can guess about your business and what it knows.

The businesses that show up reliably in local results — map pack, voice search, AI Overviews — aren't doing anything exotic. They've done the boring fundamentals correctly and kept them maintained. Schema is one of those fundamentals. It takes less than an hour to implement correctly, costs nothing, and compounds over time as search engines lean harder on structured data to power their AI-driven answers.

Schema markup doesn't change what visitors see — it changes what Google understands about your page, and that distinction is worth more to local rankings than almost any other technical move.

Save this for later
Get a PDF copy of this post →
Drop your email, we’ll send you the full piece as a clean PDF. Plus the weekly KOIRA roundup.
Title: Schema Markup for Local Businesses: A Beginner's Guide
Schema Markup
Code added to a website in a standardised vocabulary (Schema.org) that communicates structured facts about a page's content directly to search engine crawlers.
JSON-LD
JavaScript Object Notation for Linked Data — Google's recommended format for schema markup, written inside a script tag and separate from the page's visible HTML.
LocalBusiness Schema
A Schema.org type that describes a physical or service-area business, including its name, address, phone number, hours, and geographic coordinates, to support local search results.
Rich Results
Enhanced search result displays — such as star ratings, FAQ dropdowns, or opening hours — that Google surfaces when it detects valid structured data on a page.
AggregateRating
A Schema.org property that marks up an overall review score (average rating and count) for a business, enabling gold star ratings to appear in Google search results.
Schema Markup: Unstructured Website vs. Fully Marked-Up Local Business Site
AreaNo schema markupWith correct schema markup
Business hours in search resultsNever shown — Google guesses or omitsDisplayed directly under the search result title
Star ratings visibilityNo stars visible unless you rank on third-party platformsAggregateRating stars shown for reviews hosted on your own site
FAQ contentBuried on a page — requires a click to discoverExpandable Q&A pairs shown directly in Google SERP, increasing SERP footprint
AI search answer eligibilityAI tools must infer facts from unstructured prose — high error rateStructured facts are machine-readable, improving citation accuracy in AI Overviews and Perplexity
NAP consistency reinforcementGoogle reconciles your name/address from inconsistent sourcesYour own domain authoritatively asserts your NAP, reducing reconciliation errors
Time to implementN/A — nothing to do but miss out on features30–60 minutes for a complete LocalBusiness + FAQ block using free tools

How to Add Schema Markup to Your Local Business Website

  1. 01
    Identify your most specific LocalBusiness subtype. Visit schema.org/LocalBusiness and browse the hierarchy of subtypes. Choose the most specific category that accurately describes your business — 'Dentist,' 'AutoRepair,' or 'LegalService' will outperform the generic 'LocalBusiness' type for relevance matching.
  2. 02
    Gather your NAP data and match it to your Google Business Profile. Before writing a single line of code, open your Google Business Profile and copy your exact business name, address, and phone number. Your schema must match these character-for-character to avoid inconsistency signals that hurt local rankings.
  3. 03
    Generate your JSON-LD block using a free schema generator. Use a tool like Merkle's Schema Markup Generator (technicalseo.com/tools/schema-markup-generator) or RankRanger's LocalBusiness generator to fill in your details and output a valid JSON-LD block. This removes the need to write code manually.
  4. 04
    Add FAQPage schema for your top 3–5 customer questions. Identify the most common questions your customers ask before hiring you, write concise answers on a dedicated FAQ section of your homepage or services page, then add FAQPage JSON-LD that matches those exact questions and answers.
  5. 05
    Validate your markup before publishing. Paste your JSON-LD into Google's Rich Results Test (search.google.com/test/rich-results) to confirm there are no errors or warnings. Fix any flagged issues — especially missing required properties — before adding the code to your site.
  6. 06
    Paste the script tag into your website's header or HTML block. In your website platform (WordPress, Squarespace, Wix, Shopify), find the option to add custom HTML or header code. Paste your complete JSON-LD block there. For WordPress, the free Rank Math or Yoast SEO plugins can handle this through a settings panel without touching code.
  7. 07
    Request indexing and monitor in Search Console. Open Google Search Console, use the URL Inspection tool on your homepage, and click 'Request Indexing.' Then monitor the 'Enhancements' section over the following weeks to see when Google has recognised your structured data and whether any new rich result features have been activated.
FAQ
Does schema markup directly improve my Google rankings?
Not directly — schema markup doesn't function as a ranking signal in the traditional sense. What it does is help Google correctly understand and categorise your content, which improves eligibility for rich results (star ratings, FAQs, opening hours in SERPs). These rich results improve click-through rates, which does influence rankings indirectly. Think of schema as unlocking features that were always available but invisible without the right code.
Do I need a developer to add schema markup to my website?
No. JSON-LD schema is a self-contained block of code that you paste into your website's header or a custom HTML section. Most major platforms — WordPress, Squarespace, Wix, Shopify, Webflow — have a way to inject custom HTML without touching template files. WordPress users can also use free plugins like Rank Math or Yoast SEO, which generate LocalBusiness schema through a settings UI without any code.
What's the difference between schema markup and a Google Business Profile?
Your Google Business Profile (formerly Google My Business) is a listing that Google hosts and controls on its own platform. Schema markup lives on your own website and is code you write and maintain. They serve complementary roles: your GBP handles your presence in Google Maps and the Knowledge Panel, while schema markup signals the same information from your own authoritative domain. Inconsistency between the two is a common source of local SEO errors.
How long does it take for schema markup to show in Google results?
Google needs to recrawl and reindex your page after you add or change schema. For established sites with regular crawl frequency, this typically takes between a few days and three weeks. New sites with low authority may take longer. Use Google Search Console's URL Inspection tool to request indexing immediately after adding your schema, and check the Rich Results Test to confirm the markup is valid before you wait.
Can I use schema markup for a service-area business that has no physical storefront?
Yes. Schema.org has a ServiceArea property within LocalBusiness that lets you define geographic regions your business serves without publishing a physical address. You can also use the areaServed property to list cities, counties, or regions. This is particularly useful for mobile businesses (mobile dog groomers, electricians, cleaners) that serve a defined area but don't want to — or can't — publish a street address.
What happens if my schema markup has errors?
Minor errors, like a missing optional property, usually just mean Google won't display that specific rich result feature — not a penalty. However, significant errors — marking up content that doesn't exist on the page, using prohibited review markup, or creating conflicting structured data — can result in manual actions or rich result ineligibility. Always validate your schema using Google's Rich Results Test and Schema.org's validator before and after any changes.
Written with AI assistance and reviewed by the KOIRA team before publishing.
Find KOIRA on
LinkedInCrunchbaseWellfoundF6S
Keep reading
Updates
New Schema Types That Boost Small Business Visibility
8 min read
Guides
How to Do Local SEO Without an Agency in 2026
8 min read
Guides
NAP Consistency: Why Wrong Info Destroys Local Rankings
8 min read
Guides
Rank for 'Near Me' Searches With No Physical Office
8 min read
Stay in the loop
New posts, straight to your inbox.
Marketing and sales insights from the KOIRA team. No filler.
Schema Markup for Local Businesses: A Beginner's Guide
Get KOIRA