Skip to content
All articles

Schema Markup Guide for Local Business Websites: JSON-LD Examples, Testing and What to Avoid

How local businesses should use structured data in 2026: LocalBusiness, Organization, Service and BreadcrumbList with JSON-LD examples, what changed for FAQ rich results, how to test, and the review markup mistakes to avoid.

M By Max · 6 min read
Schema Markup Guide for Local Business Websites: JSON-LD Examples, Testing and What to Avoid

Schema markup (structured data) is a small block of code, usually JSON-LD, that tells search engines in a precise, machine-readable way what a page is about: your business name, phone, service area, the services you offer and where a page sits in your site. For a local business, the useful core is a LocalBusiness (or more specific subtype) entity on the home or contact page, Organization details such as your logo and social profiles, Service markup on service pages and BreadcrumbList on inner pages. Test everything with Google's Rich Results Test and the Schema Markup Validator, mark up only what visitors can see, and never add made-up reviews or star ratings. Also note that Google stopped showing FAQ rich results in May 2026, so FAQ markup no longer earns the expandable questions it once did.

What structured data does, and what it doesn't

Google says structured data helps it understand page content and can make a page eligible for rich results. Two limits matter:

  • It is not a ranking shortcut. Google states it does not guarantee that structured data will show up in search results.
  • It must describe the page truthfully. Google's general guidelines say markup must be a true representation of the page content, and you should not mark up content that isn't visible to readers.

Google recommends JSON-LD, a <script type="application/ld+json"> block in the page, because it is easiest to add and maintain without touching your visible HTML.

Choosing the right types

Type Where it goes Why
LocalBusiness (or a specific subtype) Home or contact page Name, address or area served, phone, hours
Organization Home or About page Logo, social profiles, contact points
Service Each service page Describes the service and who provides it
BreadcrumbList Inner pages Shows the page's position in your site
FAQPage Pages with a visible FAQ Still valid vocabulary, but no Google rich result now

LocalBusiness and its subtypes

Schema.org defines many LocalBusiness subtypes, such as Dentist, AccountingService, LegalService or HVACBusiness. Use the most specific one that fits. Schema.org notes that the general ProfessionalService type was deprecated because it was confused with Service; it is still recognized, but if a specific subtype fits, prefer it, and otherwise LocalBusiness is a safe choice.

For Google's local business feature, name and address are required, and recommended properties include telephone (with country and area code), url, openingHoursSpecification and geo.

Service-area businesses: if you hide your street address on your Google Business Profile because clients don't visit you, don't publish it in your markup either. Keep the details consistent with what you show publicly, use areaServed to list the cities or counties you serve, and accept that a business without a public address may not qualify for every local enhancement.

Example: LocalBusiness for a storefront office

{
  "@context": "https://schema.org",
  "@type": "AccountingService",
  "@id": "https://www.example.com/#business",
  "name": "Example Accounting Group",
  "url": "https://www.example.com/",
  "logo": "https://www.example.com/img/logo.png",
  "telephone": "+1-305-555-0100",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Ave, Suite 200",
    "addressLocality": "Miami",
    "addressRegion": "FL",
    "postalCode": "33131",
    "addressCountry": "US"
  },
  "areaServed": ["Miami-Dade County", "Broward County"],
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
    "opens": "09:00",
    "closes": "17:00"
  }],
  "knowsLanguage": ["en", "es"],
  "sameAs": ["https://www.linkedin.com/company/example"]
}

The @id gives the business a stable identifier, so other blocks on the site (such as a Service) can refer to it instead of repeating every detail.

Example: Organization details

Google's Organization documentation has no required properties; it recommends whichever apply, such as name, url, logo (at least 112×112 pixels), sameAs, contactPoint, email and telephone. Place it on the home page or a single page that describes the organization; you don't need it on every page. Many small businesses combine Organization and LocalBusiness details into the single block above.

Example: Service and BreadcrumbList on a service page

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Service",
      "name": "Bookkeeping for Small Businesses",
      "serviceType": "Bookkeeping",
      "provider": { "@id": "https://www.example.com/#business" },
      "areaServed": "Miami-Dade County, FL",
      "url": "https://www.example.com/services/bookkeeping/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com/" },
        { "@type": "ListItem", "position": 2, "name": "Services", "item": "https://www.example.com/services/" },
        { "@type": "ListItem", "position": 3, "name": "Bookkeeping" }
      ]
    }
  ]
}

A few notes:

  • Service is schema.org vocabulary rather than a Google rich result. It still helps describe your offer clearly to search engines and other systems that read structured data.
  • Google's breadcrumb rules: the trail needs at least two items, and the last item can omit item, in which case Google uses the current page's URL.
  • Leave prices out of service markup unless they are actually shown on the page.

Developer writing structured data code on a laptop

FAQPage in 2026: what changed

FAQ markup used to produce expandable questions under a search result. Google first restricted the feature in 2023 to well-known, authoritative government and health websites. Google's documentation later added a notice that the FAQ rich result would no longer appear in Google Search starting May 7, 2026, and the FAQ documentation was then removed.

What that means for a business site:

  • A visible FAQ section is still valuable for visitors and for answering common questions clearly.
  • FAQPage remains a valid schema.org type. You don't have to remove existing markup, but don't expect a Google rich result from it.
  • Industry reports note that FAQ support was removed from Search Console reporting and the Rich Results Test as part of the change.
  • As with all markup, only mark up questions and answers that appear on the page.

HowTo rich results were retired by Google earlier, so step-by-step markup is not worth adding for Google either.

Testing your markup

  1. Rich Results Test (search.google.com/test/rich-results): shows which Google rich result features a page is eligible for, with errors and warnings. Fix critical errors first.
  2. Schema Markup Validator (validator.schema.org): checks any schema.org markup, including types Google doesn't use for rich results, such as Service.
  3. URL Inspection in Search Console: confirms how Google sees the live page and that it isn't blocked.
  4. Search Console enhancement reports: watch for new errors after site changes.

Validate after every template change. One broken comma in JSON-LD invalidates the whole block.

What not to do

  • Don't add star ratings or reviews about your own business. Google states that when a business controls the reviews about itself, its pages using LocalBusiness or Organization markup are ineligible for star review snippets, whether the reviews are entered directly or through an embedded widget. Google's local business documentation recommends review properties only for sites that capture reviews about other businesses.
  • Never invent reviews or ratings. Google's guidelines name fake reviews as an example of misleading markup, and structured data problems can lead to a manual action that removes rich result eligibility.
  • Don't mark up hidden content or content that doesn't match the page.
  • Don't stuff areaServed with every city in Florida; list where you really work.
  • Don't let markup and visible details disagree: phone, hours and address in your JSON-LD should match your page, your footer and your Google Business Profile.

A short implementation plan

  1. List your page types: home, about, contact, service pages, blog posts.
  2. Decide the type for each using the table above.
  3. Add JSON-LD through your site's templates so details stay consistent everywhere.
  4. Test with both tools, then request indexing of key pages in Search Console.
  5. Recheck after any change to phone, hours, services or site structure.

For the rest of your site's technical health, see our guide to website speed and Core Web Vitals. If you would like structured data added correctly to your site, our custom websites and performance optimization services include it. Request a free IT assessment and Core Florida IT will review your website and technology for businesses across Miami-Dade and South Florida.

Sources

Keep reading

Let's make your IT the strongest part of your business.

Book a free, no-obligation IT assessment. We'll show you exactly where you stand and what to fix first.

Call Free assessment