Structured Data - Local SEO

How To: Implement Local Business Schema Markup

How To: Implement LocalBusiness Schema Markup (And Why)

TL;DR:

Local Business schema provides structured information about a physical business location, including its name, address, telephone number, opening hours and geographic location. This guide explains what LocalBusiness schema is, which type and properties to use, how to create the JSON-LD, and how to implement and validate it on your website.

What is Local Business schema markup?

Local Business schema is structured data used to describe a physical business and its location in a machine-readable format.

It uses the Schema.org LocalBusiness type, which is a subtype of Organization, and can include information such as the business name, address, telephone number, opening hours, geographic coordinates and website.

There are also more specific LocalBusiness types for particular kinds of businesses, including restaurants, shops, medical businesses and various professional and home service businesses.

As a Local SEO consultant, I use Local Business schema where it accurately describes a physical business location and provides useful structured information about that location.

Does Local Business schema help local SEO?

Yes, Local Business schema can help with local SEO by giving search engines clear, structured information about your business and its physical location.

It allows you to explicitly describe details such as your business name, address, telephone number, opening hours, geographic location and website using recognised Schema.org properties.

This gives search engines additional context about the business behind the website and can help them understand important information about the business and its location.

I consider Local Business schema an important part of a well-optimised local business website, particularly when the business has a physical location that customers can visit.

That doesn’t mean adding schema will automatically move you higher in the local results. It’s one part of local SEO rather than a standalone ranking tactic, but it’s something I routinely implement or recommend when working on local business websites.

When should you use Local Business schema?

You should use LocalBusiness schema when you’re describing a business with a physical location that customers can visit, such as a shop, restaurant, hotel, medical practice or other customer-facing premises.

Schema.org also provides more specific business types beneath LocalBusiness, so it’s worth checking whether one accurately describes the business before using the generic type.

Examples include:

  • Restaurant
  • Store
  • Hotel
  • MedicalBusiness
  • RealEstateAgent
  • HomeAndConstructionBusiness
  • AutoRepair

Where an appropriate subtype exists, I prefer to use the most specific type that accurately describes the business rather than defaulting to LocalBusiness.

If the business doesn’t have a physical location that customers visit, Organization may be more appropriate. I’ve covered that separately in my guide to implementing Organization schema markup.

Which Local Business schema type should you use?

Start with the most specific Schema.org type that accurately represents the business.

For example, a restaurant can use Restaurant rather than the generic LocalBusiness type, while a plumber may be better represented by an appropriate home and construction business type.

Don’t choose a more specific type simply because you think it might provide an SEO advantage. The type should genuinely describe the business.

If Schema.org doesn’t provide an appropriate subtype, using LocalBusiness itself is perfectly reasonable.

Local Business schema example

The easiest way to understand Local Business schema is to look at a JSON-LD example.

Here’s a basic template for a business with a physical location. Replace the example values with accurate information about the business and remove any properties that aren’t relevant.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Business",
  "description": "A short description of the business.",
  "url": "https://www.example.com/",
  "telephone": "+44 161 123 4567",
  "image": "https://www.example.com/images/business.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "1 Example Street",
    "addressLocality": "Manchester",
    "postalCode": "M1 1AA",
    "addressCountry": "GB"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 53.4808,
    "longitude": -2.2426
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday"
    ],
    "opens": "09:00",
    "closes": "17:00"
  }],
  "sameAs": [
    "https://www.facebook.com/examplebusiness",
    "https://www.linkedin.com/company/examplebusiness/"
  ]
}
</script>

Which Local Business schema properties should you include?

The properties you need will depend on the type of business, but some of the most useful include:

  • name – the business name.
  • url – the website or location page URL.
  • telephone – the telephone number for the business location.
  • address – the physical address using PostalAddress.
  • geo – the latitude and longitude of the business location.
  • openingHoursSpecification – the days and times the business is open.
  • image – an image representing the business.
  • sameAs – other URLs representing the same business, such as official social profiles.

More specific LocalBusiness types can support additional properties relevant to that kind of business.

As with any structured data, I wouldn’t add properties simply to make the markup larger. Use properties that accurately describe the business and make sure the information agrees with what’s shown to users on the website.

Should you use a Local Business schema generator?

You don’t have to write Local Business JSON-LD manually. A schema generator can be a quick way to create the basic markup, particularly if you’re not comfortable writing JSON-LD yourself.

Typically, you’ll enter information such as the business name, address, telephone number and opening hours, and the generator will produce the JSON-LD for you.

I wouldn’t assume that generated markup is automatically correct, though. Check that the generator has used an appropriate LocalBusiness type, remove properties that aren’t relevant, and make sure the information accurately represents the business.

Most importantly, validate the finished markup before implementing it.

For straightforward implementations, I often find starting with a clean JSON-LD template like the example above is just as easy as using a generator.

How to test and validate Local Business schema

Once you’ve created your Local Business schema, validate it before adding it to the live website.

I use the Schema.org Markup Validator. You can paste your JSON-LD directly into the validator or enter the URL of a page where the markup has already been implemented.

The validator will identify the structured data it finds and highlight errors or warnings in the markup.

You can also use Google’s Rich Results Test when you want to understand whether structured data on a page is eligible for rich result features supported by Google.

Once the markup is live, I’d test the actual URL rather than only validating the original code. That confirms the structured data is really present on the page and hasn’t been altered or broken during implementation.

How to implement Local Business schema

Once you’ve created and validated your Local Business JSON-LD, you need to add it to the website.

My preference is to implement the structured data directly through the website or CMS where possible. This keeps the markup part of the website itself and makes it easier to maintain alongside the business information it describes.

The exact method will depend on the platform you’re using. You may be able to add the JSON-LD manually, generate it through an existing SEO or schema plugin, or include it within the website templates.

Before adding anything new, check whether your CMS, theme or existing plugins are already generating Local Business structured data. You don’t want to create conflicting or unnecessary duplicate markup.

How to implement Local Business schema using Google Tag Manager

If you can’t add the structured data directly through the website, Google Tag Manager can be used to inject Local Business JSON-LD.

Create a Custom HTML tag containing your JSON-LD and configure a trigger so it only fires on the page or pages where the Local Business markup should appear.

Once published, test the live URL using the Schema.org validator to confirm that the markup is present and being interpreted correctly.

I’ve used GTM for more complex Local Business schema implementations too, particularly where a website has multiple locations and the structured data needs to change depending on the location page.

I’ve covered one of those implementations in my guide to using Local Business schema and Google Tag Manager for multiple store locations.

Where I have direct access to the website, I’d normally implement the structured data there rather than through GTM. But GTM is a useful fallback when changing the underlying website isn’t practical.

How to add Local Business schema in WordPress

If you’re using WordPress, first check whether your existing SEO or schema plugin is already generating Local Business structured data.

If it is, configure the business information through the plugin rather than adding another separate block of LocalBusiness JSON-LD.

If your existing setup doesn’t provide the markup you need, you can add the JSON-LD manually through the website or use another appropriate implementation method.

Whichever approach you use, test the finished URL to make sure the expected Local Business structured data is actually present.

How to use Local Business schema for multiple locations

If a business operates from multiple physical locations, each location can have its own Local Business structured data describing that particular branch.

I prefer to associate the markup with the individual location page rather than creating one enormous block of schema containing every branch. Each location can then have its own address, telephone number, opening hours, geographic coordinates and other location-specific information.

This is particularly useful for websites with stores, branches, clinics or other physical locations where each location already has its own landing page.

I’ve covered a practical implementation in more detail in my guide to using Local Business schema and Google Tag Manager for multiple store locations.

Should Local Business schema be on every page?

No. You don’t need to add identical Local Business schema to every page of the website.

For a business with a single physical location, the homepage or another appropriate page representing the business can be a logical place for the markup.

If the website represents multiple locations, I prefer to put the relevant Local Business structured data on each individual location page. That allows the markup to describe the address, telephone number, opening hours and other information for that specific location.

Other pages can use structured data appropriate to their own content where relevant. A blog article, for example, doesn’t need an identical block of Local Business schema simply because it sits on a local business website.

The important thing is that the structured data accurately represents the business or location described by the page, rather than adding LocalBusiness markup everywhere for the sake of having more schema.

Local Business schema vs Organization schema

LocalBusiness is a more specific type of Organization, designed for businesses with a physical location that customers can visit.

If you’re describing a shop, restaurant, clinic, salon or another customer-facing physical business, an appropriate LocalBusiness type will usually make more sense.

Organization is broader and can be more appropriate when you’re describing a company or organisation without a customer-facing physical location.

You don’t need to add separate Organization and LocalBusiness entities simply to repeat the same information. Because LocalBusiness is a subtype of Organization, it inherits properties available to the broader Organization type.

I’ve covered the broader type separately in my guide to implementing Organization schema markup.

Is Local Business schema worth implementing?

If a website represents a business with a physical location, I generally consider Local Business schema worth implementing.

It gives search engines clear, structured information about the business, including its location, contact details, opening hours and other relevant attributes. I see that as a useful part of local SEO, particularly when the information in the structured data is consistent with the business information shown elsewhere on the website.

I wouldn’t expect schema markup alone to suddenly improve local rankings. It works alongside the wider signals involved in local search rather than replacing them.

Use the most specific LocalBusiness type that accurately describes the business, include properties that are genuinely relevant, and validate the finished implementation rather than assuming it’s working.

For businesses with multiple locations, I’d normally create location-specific markup for the corresponding location pages rather than repeating one generic Local Business entity across the entire site.

If you’re working on wider local search visibility, I cover this as part of my Local SEO consultancy.




About The Author

I'm Dave Ashworth, a freelance SEO and website optimisation consultant with a background in development and a focus on fixing what's broken, improving what's working, and helping businesses grow through clear, practical SEO.

I combine hands-on technical know-how with years of experience in analytics, content strategy and platform optimisation. Whether it's an audit, a migration, or ongoing performance support, my work's about making websites stronger, faster, and easier to understand for - users, search engines and AI platforms.

When I'm not writing guides or sharing insights, I'm working directly with clients to solve problems, track results, and keep their sites moving in the right direction.

Dave Ashworth

get in touch

If you need some expert website optimisation and configuration, want to find out more, or even just have a question, fill in the form below as I will always be happy to help