GrowthLimit

Localbusiness Schema: Generator, Examples, and Validation

Create accurate LocalBusiness JSON-LD, audit an existing page, and keep location facts consistent with Google Business Profile.

Dennis Shirshikov
Dennis Shirshikov
GrowthLimit Founder

Published June 27, 2026Updated July 19, 2026Reviewed July 19, 2026

Answer First: Localbusiness Schema Is a Fact-Control Layer

LocalBusiness schema is JSON-LD that identifies a real business or location and expresses public facts such as its name, URL, phone number, address, service area, coordinates, and hours. Use it to reduce ambiguity between the visible location page, the business entity, and related services. Do not use it to create a location, category, rating, or service claim that customers cannot verify.

Structured data is not a direct map-pack ranking lever. It cannot replace a maintained Google Business Profile, accurate citations, relevant location content, reviews, proximity, or prominence. Valid markup can help search systems understand a business and can support eligible search features, but display is not assured. Monitor search presentation and local conversions after implementation without attributing every change to schema alone.

Operating rule: publish a fact only when it is true, visible where required, and consistent with the location page and Google Business Profile. Treat syntax, Google feature eligibility, and factual accuracy as three separate checks.

LocalBusiness schema workflow connecting visible page facts and a business profile to JSON-LD validation

Free implementation workbench

Generate and audit LocalBusiness JSON-LD

Create storefront, service-area, hybrid, or multi-location markup. Audit pasted JSON-LD or inspect a public page without creating an account.

Location model

Address and coordinates

Hours and profiles

JSON-LD
{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "@id": "https://www.example.com/locations/downtown/#localbusiness",
  "name": "Example Advisory",
  "url": "https://www.example.com/locations/downtown/",
  "telephone": "+1-212-555-0142",
  "image": "https://www.example.com/images/downtown-office.jpg",
  "logo": "https://www.example.com/images/logo.png",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "100 Example Avenue",
    "addressLocality": "New York",
    "addressRegion": "NY",
    "postalCode": "10001",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 40.7505,
    "longitude": -73.9934
  },
  "sameAs": [
    "https://www.linkedin.com/company/example-advisory/"
  ],
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "09:00",
      "closes": "17:00"
    }
  ]
}

Pre-publish checks

9 Pass0 Error0 Warning1 Manual review
Pass

Schema.org context

The document uses the canonical Schema.org context.

Pass

Local business entity

1 LocalBusiness entity was found.

Pass

Stable entity IDs

Every local entity has a distinct @id.

Pass

business name

Name found: Example Advisory

Pass

canonical URL

Absolute URL found: https://www.example.com/locations/downtown/

Pass

@id format

Absolute entity ID found: https://www.example.com/locations/downtown/#localbusiness

Pass

telephone

Phone found: +1-212-555-0142

Pass

location model

A postal address is present. Confirm customers can visit it if the page represents a storefront.

Pass

hours

Opening hours are present; compare them with the page and Google Business Profile.

Manual review

Public fact consistency

Compare name, address or service area, phone, hours, URL, and business category with the rendered page and Google Business Profile. Syntax validation cannot establish truth.

Generated syntax is not proof that the business facts are accurate or eligible for a Google search feature. Compare the output with the visible page and Google Business Profile before publishing.

The workbench runs generated and pasted-schema checks in the browser. URL audits retrieve only public HTML, do not log in, and do not render client-side JavaScript. A pass confirms an observable implementation condition, not that Google endorses the business or will show a search feature.

Choose a Storefront, Service-Area, or Multi-Location Model

Decide what the page represents before selecting properties. A customer-facing storefront can publish its postal address, geo coordinates, and opening hours. A service-area business should describe the areas it actually serves without implying that customers can visit a hidden or unstaffed address. A multi-location brand needs a separate page and entity ID for every branch.

Choose the location model before choosing fields

The address decision determines whether the markup should describe a storefront, a service area, or another kind of entity.

Does this page describe a real local business or location?

Use the page’s primary subject, not the richest-looking search feature.

Can customers visit the published address?

A staffed office, store, clinic, restaurant, or other customer-facing location.

Yes

Storefront or hybrid

Use address, geo, hours, telephone, URL, and the narrowest true LocalBusiness subtype.

No

Does it serve defined areas?

Use areaServed for a legitimate service-area business; do not imply a walk-in location.

Multiple customer-facing locations?

Create one canonical page and one stable LocalBusiness @id per branch.

No location or service area?

Use Organization, WebSite, Product, Service, Event, or another page-appropriate type instead.

Decision rule: markup should describe what customers can verify on the page. It should not manufacture a location, service area, or public access claim.

Use the narrowest true Schema.org LocalBusiness subtype. A restaurant can use Restaurant; a dental office can use Dentist; a retail location can use Store; a contractor may fit HomeAndConstructionBusiness. Use LocalBusiness when no narrower subtype describes the business accurately. Do not choose a type because it appears to offer a richer result.

SituationRecommended treatmentDo not claim
One customer-facing locationOne specific LocalBusiness subtype on the homepage or canonical location pageAdditional offices that do not exist
Service-area businessSpecific subtype plus truthful areaServed valuesPublic access to a hidden or unstaffed address
Hybrid businessAddress and geo for the real storefront plus a defensible service areaNationwide service without operational proof
Multi-location brandParent Organization and one LocalBusiness entity per canonical location pageOne shared location @id, phone, or address for all branches
Ecommerce or remote company without local serviceOrganization, WebSite, Product, Service, or other page-appropriate typesA LocalBusiness entity solely to target city queries

Complete Json-Ld Examples

Open Examples in the workbench to copy or download three complete synthetic implementations:

  1. A single customer-facing storefront with address, coordinates, hours, image, profile, and stable @id.
  2. A service-area contractor with named service areas and no false storefront claim.
  3. A multi-location graph connecting the parent Organization, one branch, its WebPage, and a Service provider relationship.

Replace every example value. Reserved example.com domains and synthetic phone numbers are included so the examples cannot be mistaken for customer data. Run the edited markup through the workbench, Schema Markup Validator, and the relevant Google test before publishing.

Schema.org permits many properties, but a maintainable entity uses only facts the business can own and update.

PropertyTreatmentQA rule
@contextRequired at the document or graph levelUse https://schema.org
@typeRequiredChoose the narrowest true type
@idOperationally requiredUse one stable absolute URL per entity
nameRequiredMatch the public business name; do not add keywords
urlRequiredUse the canonical homepage or location-page URL
telephoneRecommended when publicMatch the page and Google Business Profile
addressRequired for a customer-facing locationInclude country, region, locality, postal code, and street address where applicable
geoRecommended for a physical locationConfirm the coordinates resolve to the actual location
openingHoursSpecificationRecommended when hours are publishedMatch regular hours and maintain holiday exceptions separately
areaServedConditionalUse specific, defensible places for a service-area business
image and logoRecommendedUse crawlable absolute asset URLs that represent the entity
sameAsOptionalLink only to official identity profiles
aggregateRating or reviewConditional and high-riskConfirm visible evidence and current Google review-snippet policies

Google’s Local business structured-data documentation defines properties used for Google features. Schema.org defines the broader vocabulary. A property can be valid Schema.org syntax without producing a Google search enhancement.

Storefront Minimum

Use @context, a specific @type, stable @id, name, canonical url, public telephone, complete address, accurate geo, and maintained hours. Add images, official profiles, booking, menu, or ordering URLs only when the page supports them.

Service-Area Minimum

Use the same identity fields, a specific business subtype, public phone number, and precise areaServed values. Do not publish a customer-facing address or walk-in hours when customers cannot visit. Whether an address should appear depends on the real operating model and current platform policies, not on a desire to rank in another city.

Entity Ids and Multi-Location Architecture

An @id is an identifier, not necessarily a page users visit. A stable pattern is the canonical entity page plus a fragment:

https://www.example.com/locations/downtown/#location

Related nodes should reference that exact value. Do not create slightly different IDs for the same branch, and do not reuse one branch ID across every location.

Multi-location entity relationships

Each branch is a distinct entity. Stable IDs let the location page, services, and parent brand refer to the same branch without duplicating its facts.

Organization

https://example.com/#organization

Downtown LocalBusiness

/locations/downtown/#location

Northside LocalBusiness

/locations/northside/#location

Westside LocalBusiness

/locations/westside/#location

Downtown WebPage

Unique URL, NAP, geo, hours, and services

Location services

Service nodes reference the branch that provides them

WebSite

The site remains separate from each operating location

Unique per branch: URL, @id, phone, address, geo, hours, and page content.
Shared by reference: parent Organization and appropriate brand assets.
Do not reuse: one branch @id or location URL for every office.

For each branch, keep these values unique:

  • Canonical location-page URL.
  • LocalBusiness @id.
  • Public business name where the branch uses a location qualifier.
  • Phone number when the branch has its own public line.
  • Postal address and geo coordinates.
  • Hours and holiday exceptions.
  • Services, departments, and booking destinations that differ by branch.

The parent Organization can be shared by reference. A Service node can point to the branch that provides it. A location WebPage can identify the branch as its mainEntity. These relationships are safer than duplicating a full business object in every schema block.

Validation: Syntax, Search Eligibility, and Fact Accuracy

Validation is not one test.

LayerQuestionPrimary method
JSON syntaxCan the JSON be parsed?Workbench paste audit or JSON parser
Schema.org vocabularyAre types and properties valid for the vocabulary?Schema Markup Validator
Google eligibilityDoes the markup meet requirements for a supported Google feature?Rich Results Test and Google documentation
Rendered deliveryIs the JSON-LD present in the live page Google receives?URL inspection and rendered HTML review
Factual consistencyDo name, address or service area, phone, hours, and URL agree?Manual comparison with the page and Google Business Profile
Entity architectureAre IDs stable, unique, and referenced consistently?Workbench audit and graph review

Before launch, require 0 JSON parsing errors, 0 applicable structured-data errors, 0 duplicate location IDs, and 0 known mismatches in core business facts. Treat warnings individually: omit a genuinely unavailable optional property rather than inventing a value to silence a warning.

Recheck the live URL after deployment. Google Search Console reporting depends on the structured-data features Google currently supports; it is not a complete inventory of every Schema.org entity on a page.

Measurement and Release Thresholds

Record a baseline before changing the markup. For 7-14 days after Google recrawls the page, monitor Google Search Console impressions and clicks, GA4 organic location-page sessions, phone-click conversion, form or booking conversion, CRM-qualified leads, and revenue by location. Keep Google Business Profile calls, direction requests, and bookings in a separate report because those actions do not occur on the website.

Use the data as monitoring evidence, not automatic causal proof. A schema release can coincide with ranking changes, review growth, profile edits, seasonality, page changes, or campaign activity. Annotate those events and compare the same location and conversion definitions before and after launch.

Release thresholds:

  • 0 JSON parsing errors.
  • 0 applicable structured-data errors.
  • 0 duplicate location @id values.
  • 0 known name, address or service area, phone, hours, or URL mismatches.
  • 100% of locations assigned to an owner and a last-validated date.

Common Failures and Their Fixes

FailureRiskFix
Several plugins emit competing business entitiesSearch systems receive conflicting factsChoose one authoritative schema output and disable duplicates
Page phone and schema phone differCalls and entity reconciliation become unreliableUpdate the page, schema, profile, and tracking records together
Service-area company publishes a fake storefrontThe markup makes an operationally false claimRemove public-access implications and use accurate service areas
Every branch uses the same @idDistinct locations collapse into one ambiguous entityGive each branch a canonical page and unique entity ID
Coordinates point to a city centerThe location is imprecise or wrongVerify latitude and longitude against the actual premises
Rating markup copies third-party starsEvidence and policy requirements may not be metMark up only eligible, visible review information under current rules
Offer, event, or hours data becomes staleSearchers receive expired operational informationAssign an owner and expiration/update workflow
Tag-manager JSON-LD fails to render reliablyCrawlers may not receive the intended entityPrefer server-rendered template or CMS output when possible

A validator cannot determine whether a phone number reaches the right branch, whether customers may visit an address, or whether a service area is commercially real. Those findings remain manual reviews.

Change-Control Workflow

Schema should change in the same release as the public fact it represents.

  1. Record the changed name, address, phone, hours, service, URL, or location status.
  2. Update the visible page and business database or CMS source of truth.
  3. Update Google Business Profile and other maintained business profiles.
  4. Regenerate or update JSON-LD from the same approved values.
  5. Validate syntax, vocabulary, search-feature requirements, rendered delivery, and factual consistency.
  6. Publish, inspect the live URL, and record the release date and owner.
  7. Recheck after a CMS migration, plugin change, template release, location opening or closure, rebrand, or holiday-hours update.

Quarterly review is a reasonable backstop, not a substitute for event-driven updates. Multi-location businesses should maintain an entity registry containing the branch name, canonical URL, @id, schema subtype, owner, and last validation date.

FAQ and Current Feature Limits

Does LocalBusiness schema improve local rankings?

Do not model it as a direct ranking increase. It gives search systems explicit business facts and may support eligible presentation, but local visibility also depends on relevance, distance, prominence, profile quality, reviews, citations, page quality, and other systems. Measure outcomes without claiming schema caused every change.

Should every local business use it?

Use it when a page primarily represents a real local business, branch, or defensible service-area operation. Do not add it to unrelated articles, generic city pages, remote-only companies, or fabricated location pages.

Where should JSON-LD be published?

Prefer server-rendered page-template or CMS output on the canonical homepage or location page. Avoid multiple plugins or scripts that publish contradictory entities. Confirm the final live HTML contains the intended block.

Can FAQPage be added to the location page?

Visible FAQs can still help readers, but do not implement FAQPage primarily to obtain a Google FAQ rich result. Google’s supported search features change. Check the current structured-data feature gallery before assigning implementation value to FAQ markup.

What if the business hides its address?

Describe its actual service areas and public contact path. Do not imply that customers can visit an address that is hidden, residential, unstaffed, or not open to the public.

How should a multi-location brand handle the homepage?

Use the homepage for the parent Organization and navigation to canonical location pages. Put one distinct LocalBusiness entity on each branch page and connect it to the parent with stable IDs.

Conclusion

LocalBusiness schema is successful when it makes verified location facts easier for machines to interpret and easier for the business to maintain. The implementation sequence is: choose the real operating model, generate the narrowest accurate entity, validate each technical layer, compare the output with public facts, and assign change ownership.

Use the workbench to generate or audit the markup. Then validate the live deployment against Schema.org, Google’s LocalBusiness documentation, the rendered page, and Google Business Profile. A clean validator result is necessary; factual consistency is the release condition.

Use one call to test fit.

Growth Limit checks whether the page topic connects to a real organic-acquisition constraint before proposing work.