# LocalBusiness Schema: Which Fields Actually Matter

> The LocalBusiness type and its subtypes, the fields worth filling, the ones that change nothing, and a minimal working example.

URL: https://aiseocourse.net/guide/what-localbusiness-schema-is-and-which-fields-matter/
Last-Modified: 2026-09-20
Author: Adam Yong

would turn main into a scroll container and break every \`position: sticky\` inside it. --> 

Skip to main content

[#main-content →](#main-content)

definition Free guide

# What LocalBusiness Schema Is (and Which Fields Matter)

The LocalBusiness type and its subtypes, the fields worth filling, the ones that change nothing, and a minimal working example.

update Updated September 20, 2026 schedule 6 min read 

school Part of Schema and Structured Data for Local AI SEO

[/lessons/schema-and-structured-data-for-local-ai-seo/ →](/lessons/schema-and-structured-data-for-local-ai-seo/)

![Schema type hierarchy diagram from Thing down to a specific LocalBusiness subtype](/images/featured/schema-type-hierarchy-diagram-from-thing-down-to-a.webp)

## What it actually is

Schema.org is a shared vocabulary for describing things on the web. LocalBusiness is one type in that vocabulary, and it exists to describe an organisation that serves customers in a physical place.

Writing it into your page, usually as JSON-LD, hands an engine a structured statement of your facts instead of asking it to infer them from your layout. That is the entire purpose, and it is why 

Lesson 4: schema and structured data for local AI SEO

[/lessons/schema-and-structured-data-for-local-ai-seo/ →](/lessons/schema-and-structured-data-for-local-ai-seo/)

 treats it as an ambiguity-removal tool rather than a growth lever.

## Picking the right type

LocalBusiness has dozens of subtypes: Plumber, Electrician, Dentist, HVACBusiness, Restaurant, AutoRepair, AccountingService and so on. Use the most specific one that genuinely describes you.

Two rules keep this simple. If a subtype names what you do, use it. If nothing fits properly, use LocalBusiness rather than forcing a bad match, and let your services list and page content carry the specifics.

A wrong specific type actively misinforms. A correct general type plus clear content does not.

![Annotated JSON-LD code block with key LocalBusiness fields highlighted](/images/content/annotated-json-ld-code-block-panel-in-monospace-wi.webp)

## The fields that earn their place

| Field | Why it matters |
| --- | --- |
| name | Your exact trading name, matching every other listing |
| url | The canonical site URL |
| telephone | The public number, formatted as it appears everywhere else |
| address (PostalAddress) | For businesses customers visit |
| areaServed | For service-area businesses with no public address |
| openingHoursSpecification | The facts most often repeated in answers |
| geo (GeoCoordinates) | Helps with proximity understanding |
| sameAs | Connects your profiles so engines resolve one entity |
| image and logo | Gives the entity a visual reference |
| priceRange | A band, not a precise figure |
| hasOfferCatalog | Useful when you offer several distinct services |

Everything in that block must match your visible page and your business profile. Markup that disagrees with either is worse than none, because it manufactures the contradiction that 

Lesson 2

[/lessons/google-business-profile-for-ai-search/ →](/lessons/google-business-profile-for-ai-search/)

 exists to eliminate.

## Fields people add that change nothing

**`slogan`.** Nobody retrieves a slogan.

**`foundingDate`** on its own, with no other trust signals. Fine to include, not worth debating.

**Elaborate `makesOffer` structures** for a business with three services. The complexity outruns the benefit.

**`aggregateRating` from a third-party platform.** This is not merely useless, it is against the guidelines and can cost you rich result eligibility.

**Duplicated blocks from two plugins.** A common WordPress problem where the theme and an SEO plugin each emit their own LocalBusiness block, often disagreeing. One block, one source of truth.

## A minimal working example

```
{
  "@context": "https://schema.org",
  "@type": "Plumber",
  "@id": "https://example.com/#organization",
  "name": "Example Plumbing",
  "url": "https://example.com/",
  "telephone": "+61 3 9000 0000",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "14 Hammond Road",
    "addressLocality": "Dandenong",
    "addressRegion": "VIC",
    "postalCode": "3175",
    "addressCountry": "AU"
  },
  "geo": { "@type": "GeoCoordinates", "latitude": -37.9884, "longitude": 145.2148 },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "07:30",
      "closes": "17:00"
    }
  ],
  "sameAs": [
    "https://www.facebook.com/exampleplumbing",
    "https://www.linkedin.com/company/exampleplumbing"
  ]
}
```

The `@id` matters more than it looks. Giving your organisation a stable identifier lets other blocks on your site, such as a Service or Article block, reference the same entity instead of describing a second one.

## Getting it onto the site

Writing the block is the easy part. Installing it correctly, on the right pages, and confirming it renders is where things go wrong. The 

guide on adding JSON-LD to a local business site

[/guide/how-to-add-json-ld-to-a-local-business-site/ →](/guide/how-to-add-json-ld-to-a-local-business-site/)

 covers WordPress, site builders and hand-coded sites, plus the mistakes that silently invalidate a block.

And before you spend the afternoon: check whether schema is the right priority at all. If your pages have nothing specific to quote, correct markup will not create something. Work through 

Lesson 3

[/lessons/local-site-content-ai-can-cite/ →](/lessons/local-site-content-ai-can-cite/)

 first.

## Picking the right subtype for your trade

The subtype list is long and uneven. Some trades have an exact match, some do not, and the gap causes more hand-wringing than it deserves.

| Business | Subtype to use |
| --- | --- |
| Plumber | Plumber |
| Electrician | Electrician |
| HVAC or refrigeration | HVACBusiness |
| Dental practice | Dentist |
| Medical clinic | MedicalClinic |
| Accountant | AccountingService |
| Law firm | Attorney or LegalService |
| Cafe | CafeOrCoffeeShop |
| Restaurant | Restaurant |
| Retail shop | Store or a specific store subtype |
| Cleaning business | LocalBusiness, since no exact subtype exists |
| Mobile mechanic | AutoRepair |

When nothing fits, `LocalBusiness` with clear service content is the correct answer. Forcing a near-match that misdescribes you is worse, because structured data is the one place where you are explicitly telling a machine what you are.

## Where the block belongs

One organisation block, on the pages that describe the organisation. In practice that means the homepage and the contact page at minimum, and often sitewide through a shared template.

Service pages can carry an additional `Service` block that references the organisation by `@id`, rather than repeating a second full business description. That keeps one entity definition and avoids the duplication problem that plugin stacks create.

FAQ blocks are separate and can coexist on the same page, as long as the questions genuinely appear in the visible content. The 

guide on adding JSON-LD

[/guide/how-to-add-json-ld-to-a-local-business-site/ →](/guide/how-to-add-json-ld-to-a-local-business-site/)

 covers installation and validation for each platform.

## Fields worth adding once the basics are right

After name, address or areaServed, phone, hours, URL, geo and sameAs, a handful of properties earn their place for specific situations.

**`hasOfferCatalog`** when you offer several distinct services and want each named in structured form. Useful for a business whose services differ meaningfully in price or process.

**`paymentAccepted` and `currenciesAccepted`** where payment options are a genuine customer question, such as trade accounts or particular payment methods.

**`founder` or `employee` as a Person**, with `sameAs` links, when a named individual is a real trust signal in your sector. Sole traders and professional practices benefit most.

**`makesOffer` with price specifications** only when your prices are genuinely fixed. If they vary by job, prose on the page serves better than markup that will go stale.

**`openingHoursSpecification` with seasonal variations** for businesses whose hours change meaningfully across the year.

The rule remains the same at every level of detail: only add what is true, only add what you will maintain, and never let the markup say something the page does not.

Common questions

## Questions readers ask

Should I use LocalBusiness or a more specific subtype? expand\_more

Use the most specific subtype that genuinely fits, such as Plumber, Dentist or HVACBusiness. Fall back to LocalBusiness when none does. A wrong specific type is worse than a correct general one.

Do I need aggregateRating markup? expand\_more

Only if the reviews are genuinely collected on your own site. Marking up ratings pulled from a third-party platform breaks the guidelines and risks losing rich result eligibility entirely.

How many fields is enough? expand\_more

Name, address or areaServed, telephone, hours, URL and geo cover the overwhelming majority of the value. sameAs adds entity resolution. Everything beyond that is optional refinement.

Does schema need to be on every page? expand\_more

The business entity block belongs on the pages that describe the business, typically the homepage and contact page at minimum. Service pages can carry a Service block referencing the same entity by id.

## Guides in this cluster

Short, evergreen answers that go deeper than the lesson itself.

decision-stage

### Do You Need Schema to Appear in AI Overviews?

A direct answer: what schema demonstrably helps with, what it doesn't, and who should skip it and do content work first.

[Do You Need Schema to Appear in AI Overviews? →](/guide/do-you-need-schema-to-appear-in-ai-overviews/)

process

### How to Add JSON-LD to a Local Business Site

Where the script tag goes, how to do it on WordPress or a site builder, how to validate it, and the mistakes that silently break a block.

[How to Add JSON-LD to a Local Business Site →](/guide/how-to-add-json-ld-to-a-local-business-site/)

scenario

### Marking Up areaServed When You Serve Several Towns

areaServed shapes, how many places to list before it stops helping, and keeping schema consistent with your profile service areas.

[Marking Up areaServed When You Serve Several Towns →](/guide/marking-up-areaserved-when-you-serve-several-towns/)

process

### Using sameAs to Link Your Business to Wikidata and Your Real Profiles

What sameAs does, which profiles to list and in what order, whether you need a Wikidata item, and how to check the links resolve.

[Using sameAs to Link Your Business to Wikidata and Your Real Profiles →](/guide/using-sameas-to-link-your-business-to-wikidata/)
