Back to Blog
Technical SEO 14 min read 28 May 2026

Schema Markup for Local Businesses: Implementation Guide with Examples

Schema markup tells Google exactly what your business is. Here's how to implement LocalBusiness, FAQ, and Review schema — with real code examples you can use today.

Schema markup for local businesses guide — JSON-LD implementation with examples, by Viserno
TL;DR: Schema markup is structured code added to your website that tells Google — in explicit, machine-readable language — exactly what your business is, what it does, where it’s located, and how to contact it. It doesn’t directly guarantee higher rankings, but it enhances how your business appears in search results, feeds AI systems with reliable information, and eliminates the ambiguity that causes Google to under-represent your business. This guide covers the most important schema types for local businesses, how to implement them in JSON-LD format, real code examples, and how to test that everything is working.

Why Most Websites Leave Google Guessing

When Google visits your website, it reads the page and tries to understand what your business is. It looks at your content, your page titles, your navigation, and the patterns in your text.

But reading a page the way a human reads it — inferring meaning, understanding context, recognising a phone number as a phone number — is imperfect. Google is sophisticated, but it still makes assumptions. And assumptions introduce uncertainty.

Schema markup eliminates that uncertainty. Instead of asking Google to infer that the text “+387 33 123 456” on your contact page is a phone number, schema markup explicitly tells it: this is a phone number, and it belongs to this business, at this address, in this category.

Instead of hoping Google infers that your business is a dental clinic because the page mentions teeth, schema markup states: @type: Dentist. This explicitness is valuable for two reasons. First, it makes your information more reliably surfaced in search results — as rich snippets, knowledge panels, and enhanced listings. Second, and increasingly important in 2026, it makes your business data more reliably extracted by AI systems that answer local queries.

This connects directly to the local ranking factors Google uses — schema is one of the clearest relevance signals you can give.


What Is Schema Markup?

Schema markup is a standardised vocabulary of tags — defined at Schema.org — that you add to your website’s HTML to provide explicit, machine-readable information about your content and business.

Schema.org is a collaborative project backed by Google, Microsoft, Yahoo, and Yandex. It provides a shared vocabulary that all major search engines understand. When you implement schema, you’re speaking a language that every major search engine reads natively.

The Recommended Format: JSON-LD

Schema markup can be written in three formats, but use JSON-LD. Google explicitly recommends it, it’s the easiest to implement and maintain, and it won’t interfere with your page design or existing HTML. It’s placed in a <script> tag in your page’s <head> or <body> — separate from the visible HTML content. This means you can add or edit it without touching your page design.


The Most Important Schema Types for Local Businesses

1. LocalBusiness Schema — The Foundation

This is the single most important schema type for any local business. It explicitly identifies your business to Google, establishes its location and contact information, and defines its category. Note that your NAP data in schema must exactly match your citations and GBP listing — any discrepancy undermines the consistency signals Google relies on.

Basic LocalBusiness Schema (JSON-LD):

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Viserno",
  "description": "Sarajevo-based SEO agency specialising in local search visibility, Google Business Profile optimisation, and AI SEO strategy for service businesses.",
  "url": "https://viserno.com",
  "telephone": "+387-33-000-000",
  "email": "hello@viserno.com",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Ferhadija 1",
    "addressLocality": "Sarajevo",
    "postalCode": "71000",
    "addressCountry": "BA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "43.8563",
    "longitude": "18.4131"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$",
  "image": "https://viserno.com/images/office.jpg",
  "logo": "https://viserno.com/images/logo.png",
  "sameAs": [
    "https://www.facebook.com/viserno",
    "https://www.instagram.com/viserno",
    "https://www.linkedin.com/company/viserno"
  ]
}

What each field does

FieldPurpose
@typeTells Google the business category
nameBusiness name — must match GBP exactly
descriptionBusiness description for knowledge panels
telephonePhone number for click-to-call rich results
addressFull structured address
geoPrecise coordinates for Maps integration
openingHoursSpecificationHours for rich snippets
priceRangePrice indicator for rich results
sameAsSocial profiles — reinforces entity connections

Use the Most Specific Business Subtype

LocalBusiness is the parent type. Schema.org has hundreds of specific subtypes. Using the most specific subtype available makes your schema more precise.

Business TypeSchema @type
Dental clinicDentist
Medical clinicMedicalClinic
RestaurantRestaurant
Auto repairAutoRepair
Law firmLegalService
Real estate agencyRealEstateAgent
HotelHotel
Hair salonHairSalon
Gym / fitnessSportsClub
PharmacyPharmacy
Accounting firmAccountingService
Veterinary clinicVeterinaryCare

2. FAQPage Schema — Claim the “People Also Ask” Box

FAQPage schema is one of the highest-ROI schema types available. When implemented correctly, it can make your FAQ content appear as expandable question-and-answer pairs directly in Google search results. This gives you additional visual real estate without additional ranking, captures informational searches related to your services, and feeds AI systems with structured Q&A data. It works alongside the Q&A seeding strategy for your Google Business Profile — structured questions on both your website and GBP reinforce each other.

FAQPage Schema example (dental clinic):

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does a dental cleaning cost in Sarajevo?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A standard dental cleaning in Sarajevo typically costs between 50 and 100 BAM depending on the clinic and whether X-rays are included."
      }
    },
    {
      "@type": "Question",
      "name": "Do you accept walk-in patients without an appointment?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, we accept walk-in patients for emergency dental care during opening hours. For routine treatments, we recommend booking in advance."
      }
    }
  ]
}

Important rules: Questions and answers must actually appear on the page. Answers should be complete and specific. Don’t duplicate the same FAQ schema across multiple pages. Maximum ~10 Q&A pairs per page.

3. AggregateRating Schema — Show Stars in Search Results

AggregateRating schema can display your star rating directly in search results as rich snippets. Stars in results consistently improve click-through rate — making this one of the most visible trust signals available. It pairs naturally with a strong Google reviews strategy: the more reviews you collect, the more credible your AggregateRating schema becomes.

{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Dental Clinic Example",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "124",
    "bestRating": "5",
    "worstRating": "1"
  }
}

Critical note: Google’s guidelines require that AggregateRating schema reflect reviews that are actually visible on the page — not just pulled from Google Maps or third-party platforms. Do not add AggregateRating schema that references reviews the user cannot see on the page — this is a spammy practice that can result in a manual penalty.

4. Service Schema — Make Individual Services Findable

Service schema describes the specific services your business offers. Add this to individual service pages — one Service schema per page. This is particularly valuable for service-area businesses: clearly defining areaServed tells Google and AI systems the geographic scope of each service.

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Search Engine Optimisation",
  "name": "Local SEO Service",
  "description": "Comprehensive local SEO for small businesses including GBP optimisation, citation building, review management, and local keyword strategy.",
  "provider": {
    "@type": "LocalBusiness",
    "name": "Viserno",
    "url": "https://viserno.com"
  },
  "areaServed": {
    "@type": "City",
    "name": "Sarajevo"
  },
  "url": "https://viserno.com/services/local-seo"
}

5. BreadcrumbList Schema — Improve Site Navigation in Results

BreadcrumbList schema tells Google the hierarchical structure of your website. It enables the display of breadcrumb navigation in search results — showing the path to the current page (e.g., Home > Blog > Schema Markup Guide).

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://viserno.com" },
    { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://viserno.com/blog" },
    { "@type": "ListItem", "position": 3, "name": "Schema Markup Guide", "item": "https://viserno.com/blog/schema-markup-local-businesses-guide" }
  ]
}

6. BlogPosting Schema — Optimise Your Blog Content

For every blog article you publish, add BlogPosting schema. This explicitly tells Google the article’s title, author, date, and content — improving how it’s indexed. All Viserno blog posts already include this schema by default.


Where to Add Schema Markup on Your Website

Page TypeRecommended Schema
HomepageLocalBusiness (or specific subtype)
Contact pageLocalBusiness (with full address and hours)
Service pagesService + BreadcrumbList
Blog articlesBlogPosting + BreadcrumbList
FAQ pageFAQPage
About pageLocalBusiness + Person (for team members)
Location pagesLocalBusiness with specific location data

The golden rule: LocalBusiness schema with your complete NAP information should be present on every page — typically added to a site-wide template so it loads on all pages automatically. All other schema types are page-specific.


How to Implement Schema: Four Methods

Method 1: WordPress SEO Plugins (Easiest)

If your site runs on WordPress, plugins like Yoast SEO, Rank Math, or Schema Pro handle most schema automatically. Rank Math is particularly strong for local business schema — it includes dedicated fields for business name, address, phone, hours, and social profiles that map directly to LocalBusiness schema. Configure your business information once and the plugin generates the correct JSON-LD on every page.

Method 2: Paste JSON-LD into <head> (Manual)

For any CMS or website builder, paste the JSON-LD <script> block directly into your page’s <head> section. Most website builders have a “custom code” or “head scripts” option in settings.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Your Business Name"
}
</script>

Method 3: Google Tag Manager

Deploy schema through a custom HTML tag in GTM — useful for larger sites or agencies managing multiple clients. Allows schema management without touching page code directly.

Method 4: Schema Generator Tools

Free tools that generate JSON-LD code for you: Merkle Schema Markup Generator is the most comprehensive free option. Generate the code, verify it (see Testing below), then paste it into your site.


Testing Your Schema Markup

Implementation without testing is incomplete. Two essential tools:

Google’s Rich Results Test (search.google.com/test/rich-results) — Enter any page URL and Google shows whether the page is eligible for rich results, which schema types were detected, and any errors. This is the most important test. If Google’s tool shows errors, your schema may not be processed correctly.

Schema Markup Validator (validator.schema.org) — A more technical validator that checks schema against the full Schema.org specification. Useful for catching errors the Rich Results Test doesn’t flag.

Google Search Console — Rich Results Report: After deployment, check Search Console’s “Search Appearance” section. This takes 2–4 weeks to populate after initial implementation.

Schema testing is just one layer of a full technical audit — it works alongside Core Web Vitals optimisation as part of a complete technical SEO foundation.


Schema Markup and AI Search in 2026

The relationship between schema markup and AI search has become significantly more important. When AI systems — Google AI Overviews, ChatGPT, Perplexity — answer local queries, they don’t just read visible page content. They process structured data as priority information because it’s explicit, unambiguous, and machine-readable.

A local business with complete LocalBusiness schema gives AI systems a clear, authoritative data source for: business name, category, and description; exact address and contact details; opening hours; services offered; and price range. This is precisely the information AI systems need when answering “What are the best dentists in Sarajevo that are open on weekends?” Your schema tells the AI: @type: Dentist, location: Sarajevo, openingHours: includes Saturday and Sunday.

FAQPage schema is especially powerful for AI retrieval — it pre-formats your content as questions and answers, which is exactly the format AI systems need to extract and cite information. The businesses with comprehensive schema markup in 2026 are building an AI-discoverable presence that businesses without it simply cannot match.


Common Schema Mistakes to Avoid

MistakeWhat HappensFix
Adding schema for information not on the pageGoogle may ignore it or apply a manual actionOnly mark up visible content
NAP in schema doesn’t match GBPContradicts your consistency signalsKeep schema NAP identical to GBP
Using outdated @type valuesSchema not recognised correctlyCross-reference current schema.org types
Missing required fieldsRich results ineligibleCheck Google’s Rich Results Test for required fields
Multiple conflicting LocalBusiness schemas on one pageConfuses Google’s parserOne LocalBusiness schema per page
Fabricating review counts in AggregateRatingManual penalty riskOnly schema reviews visible on the page
Never testing after implementationErrors go unnoticed for monthsTest every implementation with Rich Results Test
Copying schema from another site without editingWrong business data in markupAlways customise every field

AI Answer Engine Snapshot

What is schema markup? Schema markup is structured code added to a website using the standardised Schema.org vocabulary that allows search engines and AI systems to read business information explicitly and unambiguously. It uses JSON-LD format placed in a <script> tag. For local businesses, the most important schema types are: LocalBusiness (and subtypes like Dentist, Restaurant, or AutoRepair), FAQPage, AggregateRating, Service, and BreadcrumbList.

Why does schema markup matter for local SEO? Schema markup helps Google understand a local business precisely — its category, location, services, hours, and contact details — without having to infer this information from general page content. This improves eligibility for rich results (star ratings, FAQ boxes, enhanced knowledge panels), strengthens local relevance signals, and makes the business more easily referenced by AI search systems that answer local queries in natural language.


Frequently Asked Questions

What is schema markup for local businesses?

Schema markup is structured code added to a website using the Schema.org vocabulary that explicitly tells Google what a business is, where it’s located, what it does, and how to contact it. For local businesses, LocalBusiness schema and its subtypes (Dentist, Restaurant, AutoRepair, etc.) are the most important types to implement.

Does schema markup directly improve Google rankings?

Schema markup is not a direct ranking signal. However, it influences ranking indirectly by improving how Google understands your business, enabling rich results that improve click-through rate, and feeding AI systems with reliable data that influences recommendation inclusion.

What is JSON-LD and why should I use it?

JSON-LD (JavaScript Object Notation for Linked Data) is the recommended format for schema markup. It’s placed in a <script> tag in your page’s code, separate from visible content, making it easy to add and edit without affecting your page design. Google explicitly recommends JSON-LD over alternative formats.

How do I know if my schema is working?

Use Google’s Rich Results Test to check any URL. It shows whether schema was detected, which types were found, and any errors. After 2–4 weeks, check Google Search Console’s Rich Results report.

Can I add multiple schema types to the same page?

Yes — and for most pages, you should. A dental clinic’s homepage might have LocalBusiness (Dentist), AggregateRating, and BreadcrumbList schema simultaneously. Each schema type can coexist in separate <script> blocks or combined in a single block.

Is schema markup free?

Yes. Schema.org is a public vocabulary maintained by the major search engines. Implementing schema yourself is free.


Schema markup is the layer that makes everything else you’ve built machine-readable. Combined with consistent NAP data, a fully optimised Google Business Profile, and solid Core Web Vitals, it forms the complete technical foundation of a dominant local search presence — and the bedrock of your AI SEO strategy, since schema markup is one of the clearest signals AI systems use when deciding which businesses to retrieve and cite — including in Google AI Overviews, where FAQPage and LocalBusiness schema are two of the most reliable citation signals. Want schema markup implemented correctly on your website? Talk to Viserno →

Free for a limited time

Want us to do this for your business?

Get a free local SEO audit and see exactly where your business stands, and what it would take to rank above your competitors.

Muhammed Ćuprija

Muhammed Ćuprija

Founder & Local SEO Specialist · Viserno

LinkedIn
About me