Skip to main content

LocalBusiness Schema Markup: Complete Guide

Schema markup is one of the last underused SEO advantages. Here is how to use it without hiring a developer.

Schema markup is structured data that you add to your website so Google and other search engines can understand exactly what kind of business you are, what you offer, and where you serve. It is invisible to human visitors and deeply useful to search crawlers and AI answer engines.

For local service businesses in 2026, schema is no longer optional. It is a foundational signal that affects eligibility for rich results, knowledge panels, and the growing number of AI-driven search experiences that read schema directly.

What LocalBusiness schema actually does

LocalBusiness is a Schema.org type that packages your core business data (name, address, phone, hours, services, geo coordinates, reviews, price range) into a machine-readable format called JSON-LD. Google reads that JSON-LD and uses it as a high-confidence signal about your business identity.

The practical benefits:

  • Helps Google confirm your NAP across the web (pairs with your Google Business Profile).
  • Gives Google structured facts such as hours, logo and location that it can use in search features.
  • Feeds AI answer engines (ChatGPT search, Perplexity, Google's AI Overviews) with structured facts about your business.
  • Disambiguates your business from similarly named companies elsewhere.

LocalBusiness vs its subtypes

LocalBusiness is the generic parent type. You should almost always use a more specific subtype if one fits. Schema.org has hundreds:

  • Plumber
  • Electrician
  • HVACBusiness
  • RoofingContractor
  • DentistOrDental Clinic
  • AutoRepair
  • LawyerOrLegalService
  • HomeAndConstructionBusiness
  • RealEstateAgent
  • And many more

Use the most specific one that fits. Specificity is a signal.

The required fields

At minimum, Google wants these fields on a LocalBusiness schema:

  • @type (the subtype above)
  • name
  • address (as a PostalAddress object)
  • telephone
  • url

That is the floor. To actually get value, you want more.

The high-value optional fields

  • geo (Latitude and longitude. Google uses this.)
  • openingHoursSpecification (Structured hours per day.)
  • areaServed (Service area as places or geometries.)
  • priceRange ($ to $$$$.)
  • image (Logo and other representative images.)
  • sameAs (Array of URLs to your Facebook, LinkedIn, Yelp, BBB, Google Business Profile. Critical for entity consolidation.)
  • aggregateRating (Your review rating and count. Google's review snippet guidelines say it does not show stars for reviews a business publishes about itself, so do not add this expecting stars in search.)
  • hasOfferCatalog (Structured service list.)
  • founder (Can help with E-E-A-T.)

A clean LocalBusiness example

Here is a reference structure you can adapt. Replace the bracketed values with your own.

{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "name": "[Your Business Name]",
  "url": "https://example.com",
  "telephone": "+1-555-123-4567",
  "priceRange": "$$",
  "image": "https://example.com/logo.png",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Henderson",
    "addressRegion": "NV",
    "postalCode": "89011",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 36.0395,
    "longitude": -114.9817
  },
  "areaServed": ["Henderson", "Las Vegas", "Summerlin"],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "07:00",
      "closes": "18:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/yourpage",
    "https://www.yelp.com/biz/your-biz",
    "https://g.co/kgs/yourkg"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "312"
  }
}

Generate clean schema in seconds

Fill out a short form. Download valid JSON-LD ready to paste into your site.

Generate My Schema Free

Where to put it

Wrap the JSON in a script tag with type "application/ld+json" and drop it in your site's head or body. Every important page (homepage, service pages, location pages) should carry it. The schema can be identical across pages for the same business, or tailored per service page using the Service schema type.

Service schema for service pages

For each service page, layer a Service schema on top of the LocalBusiness one. Fields that matter:

  • name
  • provider (references your LocalBusiness)
  • areaServed
  • description
  • offers (if you publish prices)

This gives search engines one more layer of context about what the specific page covers.

Validation

Two tools should be bookmarked:

  • Google's Rich Results Test (tests for eligibility)
  • Schema.org Validator (tests syntactic validity)

Run every schema change through both before deploying. A single broken comma can disable the whole schema block.

Common mistakes

  • Fake aggregate ratings. Marking up ratings that are not real reviews visible on the page breaks Google's structured data guidelines and can lead to a manual action. If you do not have real reviews visible on the page, leave this out.
  • Mismatched NAP. The schema NAP must match your website, footer, GBP, and citations.
  • Outdated hours. Update schema when you change hours. Stale data is worse than no data.
  • Multiple conflicting schemas. Only one LocalBusiness per page.
  • Ignoring sameAs. This is how you tell Google "this website and this Facebook and this Yelp are all the same entity." Do not skip it.

Schema for AI search

AI answer engines read pages for facts, and structured data is one of the clearest ways to state those facts. A thorough LocalBusiness schema with a complete sameAs array, hasOfferCatalog, and clear geo fields makes your name, services and service area easy to read correctly.

If you have not updated your schema in years, check it against your current hours, services and phone number before anything else.

The 20-minute schema upgrade

  1. Use our schema markup generator to create fresh JSON-LD.
  2. Paste it into the head of your homepage.
  3. Run Google's Rich Results Test on the URL.
  4. Fix any warnings.
  5. Deploy to service pages and location pages.

That is all it takes to get this right. If you handle it properly once, you do not have to touch it for a year unless your NAP changes.

Skip the hand-coding

Generate valid LocalBusiness schema in under 2 minutes. Completely free.

Use the Schema Generator

Related tools

  • GBP Audit: a 10-question self-check of your Google Business Profile.
  • NAP Citation Checker: compares the phone number on your Google Business Profile with the one you enter.
  • Landing Page Analyzer: scores a page against 16 local conversion signals, schema included.

Keep reading

Elmob helps local businesses run this playbook: an AI receptionist for inbound calls, a text back to new leads once you switch it on, and review requests with reply drafts for you to approve.

See Elmob in action
Elmob Assistant
AI assistant
Hey! Are you an agency or a local business?
Want us to reach out?
Drop your info and we'll follow up personally.