Schema markup for local businesses

By the Pickgap team · Updated Oct 15, 2026 · 3 min read

LocalBusiness schema markup is a block of structured data, usually JSON-LD, that states your business name, type, address, phone, hours, website and other facts in a format machines read reliably. It doesn't guarantee any search feature or AI mention, but it backs up the facts on your page and helps systems connect your website to your business.

What schema markup does

Schema markup is a vocabulary (from schema.org) for describing things on a web page in a structured way: this is a business, this is its address, these are its hours. Search engines read it to understand pages, and Google uses some of it for features like business details in results.

For AI search, its value is clarity. A language model can usually work out your hours from plain text, but structured data removes ambiguity and ties your website to your business as one entity. Google says structured data isn't required for its AI features; treat it as backup for your visible content, not a shortcut.

Choose the right type

Use the most specific schema.org type that fits, for example:

BusinessType
Dental practiceDentist
Law firmLegalService
PlumberPlumber
HVAC companyHVACBusiness
RooferRoofingContractor
ElectricianElectrician
General contractorGeneralContractor
Moving companyMovingCompany
Auto repair shopAutoRepair
Hair salonHairSalon
GymExerciseGym
Veterinary clinicVeterinaryCare
AccountantAccountingService
Insurance agencyInsuranceAgency
Real estate agentRealEstateAgent

If nothing fits, use LocalBusiness.

A JSON-LD example

Put this in a script tag of type application/ld+json on your homepage, and change every value to yours:

{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Bright Smile Dental",
  "url": "https://www.brightsmiledental.example",
  "telephone": "+1-919-555-0142",
  "image": "https://www.brightsmiledental.example/office.jpg",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "4200 Six Forks Rd, Suite 210",
    "addressLocality": "Raleigh",
    "addressRegion": "NC",
    "postalCode": "27609",
    "addressCountry": "US"
  },
  "areaServed": ["North Raleigh", "Wake Forest", "Brier Creek"],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "07:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "08:00",
      "closes": "12:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/brightsmileraleigh",
    "https://www.instagram.com/brightsmileraleigh"
  ]
}

Fields worth including

For several locations, put one block on each location page, with that location's details.

Rules to follow

How to test it

Run your page through Google's Rich Results Test and the Schema Markup Validator at schema.org. Fix errors; warnings about optional fields are fine.

What to expect

Markup alone won't make AI recommend you. It's a small, one-time job that makes your facts unambiguous. The bigger levers are still reviews, listings on the sites AI cites, and clear page content. See does schema markup help AI search?

Questions

Does my website builder add schema automatically?
Some do, often with only the basics. Check with the Rich Results Test. If it's missing or wrong, most builders let you add custom code to the page header.
Should I add FAQPage markup too?
You can, for FAQs visible on the page. Google only shows FAQ rich results for some government and health sites, but the markup is harmless and machine-readable.