Skip to content

Technical setup

Schema markup for local businesses: a plain-English guide

What LocalBusiness schema markup is, which properties Google requires and recommends, which type to pick, a copy-ready example and how to test it.

The short answer

  • Schema markup (structured data) is a block of code that states your business facts (name, address, phone, hours, prices) in a format search engines and AI read reliably.
  • Google requires only name and address for LocalBusiness markup, and recommends phone, website, opening hours, map coordinates and price range.
  • Use the most specific type that fits (Restaurant, Dentist, Plumber) and JSON-LD, the format Google recommends.
  • Markup can make you eligible for richer results but never guarantees them, and it must match what visitors can see on the page.

What is schema markup?

Your page says “Open Tuesday to Sunday, 8 to 4” for people. Schema markup says the same thing in a fixed vocabulary from Schema.org, so software doesn't have to guess what “8 to 4” means or which number on the page is your phone.

The usual format is JSON-LD: a small block of code in your page that visitors never see. Google says it recommends JSON-LD when your site's setup allows it.

Do AI assistants need schema markup?

Not strictly. Google says there's no special structured data you need to add to appear in AI Overviews or AI Mode. But markup removes guesswork about the exact facts people ask assistants for: are you open now, where are you, roughly what does it cost. Clear facts are easier to repeat correctly, and harder to get wrong.

Which properties should I include?

LocalBusiness properties, from Google's local business documentation
PropertyWhat it saysGoogle's guidance
nameYour business name, as on your signRequired
addressStreet, town, postcode and country (a PostalAddress)Required; include as many parts as you can
telephoneYour main number, with country and area codeRecommended
urlThe page for this locationRecommended; must be a working link
openingHoursSpecificationDays, opening and closing timesRecommended
geoLatitude and longitudeRecommended; at least 5 decimal places
priceRangeA rough price level, like “££” or “$10–20”Recommended; under 100 characters
servesCuisine, menuCuisine and menu link (food places)Recommended for food establishments
aggregateRating, reviewStar ratings and reviewsOnly for sites that collect reviews about other businesses
LocalBusiness properties, from Google's local business documentation

Which type should I use?

Google asks for the most specific LocalBusiness type that fits. Some common ones:

Schema.org types for common kinds of business
Kind of businessType to use
Restaurant, café, bakery, barRestaurant, CafeOrCoffeeShop, Bakery, BarOrPub
Hotel, B&B, hostel, holiday letHotel, BedAndBreakfast, Hostel, VacationRental
Hair, beauty, nails, spaHairSalon, BeautySalon, NailSalon, DaySpa
Plumber, electrician, heating, rooferPlumber, Electrician, HVACBusiness, RoofingContractor
Gym or fitness studioExerciseGym, SportsActivityLocation
Dentist, physio, clinicDentist, Physiotherapy, MedicalClinic
Law firm, accountant, adviserLegalService, AccountingService, FinancialService
Shop with a counterStore (or a subtype such as ClothingStore)
Anything elseLocalBusiness, or Organization if you have no premises customers visit
Schema.org types for common kinds of business

What does an example look like?

Here's complete markup for a fictional bakery. Swap in your own details; every value must match what's written on your page.

LocalBusiness JSON-LD for a fictional bakery

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Bakery",
  "name": "Example Bakery",
  "url": "https://www.example.com/",
  "telephone": "+44 20 7946 0000",
  "priceRange": "££",
  "servesCuisine": ["Bakery", "Café"],
  "menu": "https://www.example.com/menu",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Example Street",
    "addressLocality": "London",
    "postalCode": "E8 1AA",
    "addressCountry": "GB"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": 51.54512, "longitude": -0.05531 },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
      "opens": "08:00",
      "closes": "16:00"
    }
  ]
}
</script>

Times use 24-hour hh:mm. For a day you're closed, leave it out of dayOfWeek. For seasonal hours, add validFrom and validThrough dates.

How do I add it to my site?

  • Generate it. The free schema generator builds the code from a short form.
  • WordPress: many SEO plugins add business markup from their settings. Check you don't end up with two conflicting blocks.
  • Wix, Squarespace, Webflow, Shopify: paste the code into the page's custom code or header code settings.
  • Any other site: paste it into the page's <head>, or anywhere in the page's HTML.

How do I test it?

  1. Paste your page address into Google's Rich Results Test (opens in a new tab). It shows errors and which rich results the page is eligible for.
  2. Use the Schema Markup Validator (opens in a new tab) for a full check against the Schema.org vocabulary.
  3. In Google Search Console, use URL Inspection to confirm Google can fetch the page at all.

What mistakes should I avoid?

  • Markup that disagrees with the page, such as different hours or an old phone number.
  • Plain LocalBusiness when a specific type exists.
  • Two or three plugins each adding their own, conflicting block.
  • Forgetting to update the markup when you change your hours.
  • Expecting guaranteed rich results. Valid markup makes you eligible; Google decides.

Questions people also ask

Type to search these questions, or ask anything about getting found on Google and AI.

Is schema markup a ranking factor?

Google describes structured data as a way to understand a page and to make it eligible for richer results, not as a ranking boost. Treat it as clarity, not a trick.

I have several locations. What do I do?

Give each location its own page with its own LocalBusiness markup: its own address, phone, hours and URL.

Do I need markup if I have a Google Business Profile?

They do different jobs. Your profile feeds Google Maps and your listing; markup describes your own website. Keep the facts in both identical.

Sources

  1. Local business (LocalBusiness) structured data(opens in a new tab) · Google Search Central
  2. Introduction to structured data markup in Google Search(opens in a new tab) · Google Search Central
  3. AI features and your website(opens in a new tab) · Google Search Central
  4. LocalBusiness(opens in a new tab) · Schema.org
  5. Rich Results Test(opens in a new tab) · Google
  6. Schema Markup Validator(opens in a new tab) · Schema.org

Checked on . AI products change quickly; the operators' own pages are the final word.

Terms in this guide

Be the business AI recommends.

Pick a plan, connect your site and let CiteMagnet fix what's in the way. Cancel any time.