Local Business Schema 2025: Step-by-Step Setup Guide for Google

Local Business Schema

TL;DR:

  • Use JSON-LD on each location page, not sitewide.
  • Pick the most specific LocalBusiness subtype you can.
  • Include NAP, hours, geo, images, sameAs, and @id.
  • Validate with Google’s Rich Results Test. Eligibility is not guaranteed.
  • Keep markup synced with on-page content and your Business Profile.

This guide helps owners, marketers, and developers add LocalBusiness schema to a website in 2025. It covers a single location, multi-location, and department setups. All examples use JSON-LD, which Google recommends.

What “local business schema” means

Local business schema is structured data that describes a physical business. It tells search engines your name, address, phone, hours, and more. Google can use it to enrich Search and Maps, for example with a knowledge panel or business carousel. It does not replace a Google Business Profile. It supports it with clean, machine-readable data.

Before you start: collect the facts

Gather these details for each location:

  • Official business name, as customers see it.
  • Canonical URL for the location page.
  • Street address and country code.
  • Primary phone in international format.
  • Latitude and longitude.
  • Regular hours and any special hours.
  • High quality images of the storefront, interior, and logo.
  • Social profile URLs.
  • Preferred price range, for example “$” to “$$$$”.

Match these facts to what is on the page. Your markup must reflect visible content. This is required by Google’s structured data guidelines. It also keeps you eligible for rich results. 

Step-by-step: add LocalBusiness schema

Step 1: Choose the most specific type

Start with the most specific subtype under LocalBusiness, for example Restaurant, AutoRepair, Dentist, or Store. If none fit, use LocalBusiness. You can see the full hierarchy and properties at Schema.org.

Step 2: Use JSON-LD

Place a single <script type=”application/ld+json”> block on the page. JSON-LD is the preferred format in Google’s guidelines.

Step 3: Create a stable @id for the entity

Use a fragment URL like https://www.example.com/locations/downtown#localbusiness. This becomes the unique ID for the location. Reuse this value anywhere you reference the entity.

Step 4: Add core properties

Include name, url, image, telephone, address, geo, and openingHoursSpecification. These align with Google’s Local Business documentation and help Search show key facts.

Step 5: Add supporting properties

Add sameAs for social profiles, priceRange, and any type-specific fields such as servesCuisine for restaurants or acceptsReservations. See the schema type for more options.

Step 6: Paste the JSON-LD on the correct page

Add the script to the specific location page, not your home page. For multiple branches, place a tailored script on each branch page.

Step 7: Validate

Run the page in Google’s Rich Results Test. Fix errors and warnings. Being valid makes you eligible for rich results, but display is not guaranteed.

Step 8: Keep it in sync

If your hours, phone, or address change, update the page and the JSON-LD in the same release. Mismatches reduce trust and can cause loss of eligibility.

Testing and monitoring

1) Run the Rich Results Test

Paste the URL or code. Fix all errors first, then review warnings. A valid page is eligible for rich results. Display is controlled by Google and is not guaranteed.

2) Check coverage in Search Console

Inspect the location URL. Confirm it is indexed. Watch for structured data issues in the Enhancements and Page indexing reports. Eligibility requires Googlebot access. Do not block pages with robots.txt or noindex.

3) Keep content and schema aligned

If you change hours for a holiday, update the page and JSON-LD together. Consider specialOpeningHoursSpecification for temporary hours. Property options live on Schema.org.

Common mistakes to avoid

  • Using Organization instead of a LocalBusiness subtype when you have a storefront.
  • One JSON-LD block reused across many different location pages.
  • Hours that differ between your page, JSON-LD, and Business Profile.
  • Images that are tiny or return 404.
  • Missing or unstable @id values.
  • Marking up reviews you control for your own business. Google does not show self-serving review rich results for LocalBusiness or Organization.

Quick setup checklist

StepWhat to doTool or note
1Pick the best subtypeSchema.org type list
2Build JSON-LD with core fieldsCode editor
3Add a stable @idUse a fragment URL
4Paste on each location pageDo not reuse sitewide
5Match on-page contentReview NAP and hours
6Add images and social linksUse absolute URLs
7Validate for rich resultsGoogle Rich Results Test
8Ship and request indexingSearch Console
9Monitor and fix issuesSearch Console reports
10Update schema with changesKeep content in sync

Why it matters

Clean local business schema helps Search and Maps understand your entity. It supports accurate hours, locations, and actions. That improves how often the right users find you, and it reduces confusion when details change. Google’s guidelines make clear that validity helps eligibility, but rich results are never guaranteed.

Sources:

Schema.org, LocalBusiness type reference, https://schema.org/LocalBusiness, accessed 2025-09-10