Step-by-Step Guide to Add Local Business Schema Markup
Updated 11.03.2026
People constantly search for businesses and information related to their search query. Your business wants an appealing local business knowledge panel.
Table of Contents
- Test Your Local Entity & Schema Alignment
- What is Local Business Schema?
- 8 Steps for Adding Local Business Schema Structured Data to a Website
- 1. Determine the Best Category for Your Business
- 2. Create an Information Rich About Us Page
- 3. Prepare and Test your Local Business Schema Entities
- 4. Use FAQs to Support your Local Business or Organization
- 5. Troubleshoot Local Business Schema Markup Issues and Validate
- 6. Add and Publish your Local Business Schema Markup
- 7. Keep your Local Business Schema Markup Current
- 8. Add a Sitemap
- New Benefit of Implementing Local Business Schema Markup
- How to Make a LocalBusiness Schema Template
- Organization vs. LocalBusiness vs. Niche Subtypes: AI Search & Rich Results Matrix
- SUMMARY: Local Business Schema Implementation
- Frequently Asked Questions About Local Business Schema Markup
🔍 Test Your Local Entity & Schema Alignment
We find that few small-to-medium local businesses meet proper schema and entity-matching standards. For example, our studies found that only about 10% of audited businesses hit high-alignment benchmarks, while the vast majority suffer from disconnects between their visible webpage text, schema markup, and Google Business Profile (GBP) data.
Test for yourslef: AI search and Google Maps cross-reference your website data to verify your physical business locations. Enter your URL to check your Schema.org alignment score.
🔍 Test Your Local Entity & Schema Alignment
Ready to Scan Local Signals
AI search engines, Gemini, and Google Maps cross-reference your website’s structured data to verify your physical business locations and service areas. Enter your website URL to check your Schema.org alignment score and preview your LocalBusiness entity graph.
☐ Awaiting URL
@id Check)/#organization separates LocalBusiness from #website.☐ Awaiting URL
GeoCoordinates (latitude / longitude) + PostalAddress & priceRange.☐ Awaiting URL
hasMap SynchasMap URL and authoritative sameAs links corroborate Google Maps & Knowledge Graph nodes.
When users query for a type of business (for example, “best Minneapolis Digital Marketing Agency”), Google Search or Maps search results typically display a trusted Google knowledge panel with details about a specific business that matched the search query. Viewers may also see a carousel of several similar businesses related to the query. Having a Globally unique ID of the specific business location in the form of a URL will help you show up.
What is Local Business Schema?
According to the schema.org vocabulary, the LocalBusiness type is one subtype of both Organization and Place. This means that it inherits the properties of both these types. Its schema is a type of structured data markup code that may be added to your business’s site to better inform search engines of which business niche identity type that best fits your business.
Local business schema is a common type of structured data markup code that one can add to their business’s website to make it easier for search engines to classify what type of organization you are and what you do. It applies to both local service-based businesses and retail brick-and-mortar shops. This is a very helpful task for optimizing your website for local SEO, as it’s a major site ranking factor. There are multiple types of properties you can add for your local business schema, but let’s first cover the ones that you don’t want to miss.
8 Steps for adding Local Business Schema Structured Data to a Website
All businesses should add either Schema.org Local Business or Organization Markup on their websites.
1. Determine the best category for your business.
2. Create an information-rich About Us page.
3. Prepare and test your Local Business schema entities.
4. Use FAQs to support your Local Business or Organization.
5. Troubleshoot Local Business schema markup issues and validate.
6. Add and publish your Local Business schema markup.
7. Keep your Local Business schema markup current.
8. Add a sitemap.
We’ll walk you through each of the eight steps below.
1. Determine the Best Category for Your Business

It is important to best identify which niche business category you are optimizing. When choosing a schema type, you want to be as tightly themed as possible. At times, nothing fits as well as one would like, but not to worry. In that case, select the generic business type that most closely represents your company, like LocalBusiness or Organization. Then, use the sameAs property to add a Wikipedia or Wikidata entity that further defines your business type.
Both Wikipedia and Wikidata are helpful for further specifying a business, but we prefer using a Wikidata link. Currently, it is better optimized for machines, while Wikipedia is meant more for human readers.
Niche specific local business types: Restaurant schema markup
While there’s the universal schema markup, there are also sub-schema types for food establishments. This can be particularly helpful for niche restaurants and boost local foot traffic even if on a limited marketing budget. Some actually call it “RESTAURANTS schema markup”; we find that by adding the following schema attributes, we help a restaurant gain more business.
- Cuisine (search queries for “Mexican food”, “upscale American fare”, “Italian Ristorante”, etc.)
- Hours (open times + open bookings)
- Logo (For people who identify a place to eat visually)
- Locations (for “near me” searches)
- Menu (for people looking for gluten-free entrees, a kids menu, if cocktails are served, etc.)
- Founder (if someone searches by name)
containedInPlace(if located inside a mall, for example)hasMap(for driving direction)smokingAllowed(this matters to some diners who are averse to smoke)- And more…
For example, for a person in Rochester, MN, searching for “upscale American fare” or something semantically related, they are likely to have Google display Chester’s Kitchen & Bar. It’s my favorite place to eat when I’m in the area!
Consider this: an online restaurant menu page can effectively function like a retail product page. It just needs the right attributes added. Select a specific business category, not a broad one. So if you own a car repair shop, you can use the Local Business auto shop. More than 400 types of businesses currently exist, so find the one that matches closely. If still unsure, try using the product types ontology.
When nothing is acceptable that seems close to the right category for your business, you can actually generate it. After finding the Wikipedia page that represents your business category, add that to this URL http://www.productontology.org/doc/ and add an “additionalType” to your markup.
For example, if I run a gluten-free bakery shop, and I want to be really specific, BakeryStore isn’t QUITE right. I would get the page for Gluten-free Bakery Shop on Wikipedia (https://en.wikipedia.org/wiki/Glutenfree_shop), take the part after /wiki/ to accomplish this.
2. Create an Information Rich About Us Page
Follow either or both Google’s schema guidelines and schema.org guidelines.
Create or update your About Us page, whichever applies to your situation. This specific page is meant to be all about your business and has a unique AboutPage schema data item. It is possible to fill out the relevant fields in such a way as to connect your homepage data entity through the about property.
This relies on viewable content on your About page, meaning the content must be readable to site visitors. Then it is possible to add as many or as few properties as desired to inform search engines of this data item. In this way, you are helping to create your own brand data footprint.
Use Wikipedia or Wikidata entries to help explain your business.
Support your pages’ context by adding an entity-relationship pointing to a Wikipedia article, a Wikidata item, or Dbpedia. Wikidata is a community-driven knowledge graph, strongly linked to Wikipedia; use the one that best aligns and further defines your content. Both Wikimedia Commons and Wikimedia projects may want you to agree to the terms in their Commons CC0 license text.
Only take further steps when there is a big need to disambiguate content on a web page. Note what is first referenced in the Wikidata entity and then decide which source is best for your entity relationship.
Use the sameAs schema property to connect to a Wikipedia or Wikidata entry that helps resolve ambiguity.
3. Prepare and Test your Local Business Schema Entities
It is best to pre-determine the ideal property entities for your schema linkage. Do this without publishing your schema to avoid markup errors and possible manual penalties. Both the about and sameAs properties help to add critical data information to your LocalBusiness.
The “@id”: “https://www.yourbusiness.com” business identifier
This unique URL identifies the business and should be chosen carefully initially. You can select a URL that returns a page, a URL that returns detailed information in multiple formats, or a URL that returns your basic domain name or nothing. The aim here is to have a unique identifier for the entity.
Product Pages, Articles, and Blog Schema
Note that if you use the Schema App Editor or WordLift to add schema to your Shopify retail site, it will be updated dynamically, connected back to your LocalBusiness or Organization schema – but the code will reside on their sites. If your business uses WordPress, the platform will handle the JSON-LD from your WordPress install, or you can easily add it as raw HTML.
For sites that do not use WordPress, the data is pushed to the knowledge graph where it is all ultimately hosted. WordPress is a management user interface for the Knowledge Graph data. Either way, you will want to add entities for the Website URL, image, Business Name, address, publisher, GeoCoordinates, hasMap sourceOrganization properties, as well as openingHoursSpecification and considerably more. For restaurants and similar business types, you’ll be able to add the menu entity.
Under address, fill in all the following fields:
- address.streetAddress
- address.addressLocality
- address.addressRegion
- address.postalCode
- address.addressCountry
News, Technical Article, Scholarly Article or Medical Scholarly Articles
If you have news articles, scholarly articles, technical articles, or medical articles on your website, you can add NewsArticle markup, ScholarlyArticle, TechArticle or MedicalScholarlyArticle with a tool or manually. Properties to connect NewsArticle markup back to the LocalBusiness are much the same as the steps used for BlogPosting.
You will need to understand how the mappings work in order to personalize the structured data behind each page using nested or such schema types.
4. Use FAQs to Support your Local Business or Organization
If you have not already created a web page dedicated to frequently asked questions, do so to explain how your business works. Then mark up this page with FAQPage schema is a great way to make this page eligible for Google Rich Results.
Google is now limiting People Also Ask results from FAQPage markup for Questions and Answers that live on other web pages. This may include your blog posts, tutorials, articles, or even at the bottom of your menu page.
Contact Hill Web Marketing, who can manage the step-by-step process of these essential schema markup installations correctly.
5. Troubleshoot Local Business Schema Markup Issues and Validate
It can be challenging to understand the differences that may crop up in real users’ local search results. With rapid updates to schema markup, often they don’t show up in Local SEO or Traditional Search Engine Optimization and Marketing Reports. There is significant value in combining numeric data with visual representations of real search results, enabling your business to make better-informed decisions.
Any significant changes made to your Google Business Profile listing may actually go live for users before you are aware of it. If someone unfamiliar with how to make edits causes an error, or Google accidentally marks your business as closed when it is open, this can hurt your revenue until it is fixed.
When Google added sponsored competitors to its local map packs in specific areas, we saw such mistakes occur. It may also occur if Google monetizes your Google Business Profile (GBP) pages by linking to its app partners. It is best to hire a Google expert who is alert to if and when Google updates the arrangement or display of a Google Business Profile healthcare profile, landing page, Map Pack, or Search Result.
Understanding such occurrences will help your business identify anomalies in your data that don’t correlate with traditional metrics yet still directly impact your revenue streams. Additionally, you or another SEO person may have updated your schema markup, and it caused issues.
6. Add and Publish your Local Business Schema Markup
There are 3 ways to add your LocalBusiness Schema to your site:
- Add your custom Local Business schema directly within your HTML code.
- Use a managed UI, schema App, or plugin.
- Add schema.org markup by using your Google Tag Manager (GTM). Depending on your developer and SEO team, not all sites have the most up-to-date scenario where you have access to the backend or the ability to add plugins.
The LocalBusiness markup type, as well as one of its associated types, is ideally used on your homepage. This implementation translates your human-readable content into the machine-readable data language of JSON-LD, which helps search engines understand your web text.
Deploy only a few pages initially that include this schema structured data type. Once you have tested the code again after implementing it, use your Google Search Console URL Inspection tool to know how Google sees the page.
You may add the JSON-LD markup anywhere on the page. Commonly, sites place it in the head section. This is a practical placement for it, but if your CMS doesn’t make that possible, placing the markup in the body of the page’s content or the footer, or even in an off-site file works. Google states, “You can add LocalBusiness structured data to any page on your site, though it may make more sense to put it on a page that contains information about your business.” [1]
As the use of schema markup grows, this means of using an external file may become more typical of large eCommerce sites.
7. Keep your Local Business Schema Markup Current
Current local business schema guidelines, required and recommended fields continue to change.
Google is retiring some schema types or fields regularly, while new ones. To avoid structured data errors and capitalize on the latest opportunities, it is important to audit and update your schema markup. Publishing new content or making changes to existing content on your site is important to monitor, as are any updates to Google’s documentation.
To remain competitive in organic search, you need a consistent schedule to maintain all forms of Schema markup; but know that Organization and Local Business schema are considered as key types to implement and keep error-free. We rely a lot on Google’s Rich Results Test.
Social channels
To complete your online profile, remember to add links to your social media accounts. You can only do so after specifying an organization or a person. The URL has to point to your main website, and the sameAs URLs direct people and search engines to the social media channels you are active on.
Reviews: What your customers say about you
Whether we want them or not, reviews remain a significant driver for winning new clientele. This is a bit like a scorecard. It tells both potential customers and search engines that your business provides quality, correct, and valuable answers, and can be trusted.
8. Add a Sitemap
Create a readable sitemap, then post it to Google by adding it to your robots.txt file, or by another means. When you publish a sitemap, you’re informing search engines as to which URLs you think are most important. Along with your evergreen content and core sales funnel pages, your About Us page, Contact Us, and FAQ pages should always be included.
New Benefit of Implementing Local Business Schema Markup
Starting October 2021, Google will show whether local businesses have products in stock through their Google Business Profile listing. Sites will gain an advantage by implementing the Local Business and Product schemas, making their product pages more understandable. It is also using the Google Merchant Center to pull product data.
This explains why Google has been talking more about using schema markup for local businesses! It says, “Showing in-store availability is especially valuable for small businesses, helping them attract new local customers”. Google Search will show which local brick-and-mortar store has the product that shoppers really want – ready to take off the shelf, pay for, and take home!

In order for this to work, search marketers and local businesses need to follow the rules and details that Google asks for.
Google provides the following 2 tables of LocalBusiness schema: “Required properties” and “Recommended properties”:
| Required properties | |
|---|---|
@id |
URL
Globally unique ID of the specific business location in the form of a URL. The ID should be stable and unchanging over time. Google Search treats the URL as an opaque string, and it does not have to be a working link. If the business has multiple locations, make sure the @id is unique for each location. |
address |
PostalAddress
The physical location of the business. Include as many properties as possible. The more "address": {
"@type": "PostalAddress",
"streetAddress": "148 W 51st St Suit 42 Unit 7",
"addressLocality": "New York",
"addressRegion": "NY",
"postalCode": "10019",
"addressCountry": "US"
}
|
name |
Text
The name of the business. |
| Recommended properties | |
|---|---|
aggregateRating |
AggregateRatingThe average rating of the local business based on multiple ratings or reviews. Follow the Review snippet guidelines and the list of required and recommended aggregate rating properties. |
department |
LocalBusinessA nested item for a single department. You can define any of the properties in this table for a department. Additional guidelines:
|
geo |
GeoCoordinatesGeographic coordinates of the business. |
geo.latitude |
NumberThe latitude of the business location. The precision should be at least 5 decimal places. |
geo.longitude |
NumberThe longitude of the business location. The precision should be at least 5 decimal places. |
menu |
URLFor food establishments, the fully-qualified URL of the menu. |
openingHoursSpecification |
Array or single object (both supported) ofOpeningHoursSpecificationHours during which the business location is open. |
openingHoursSpecification.closes |
TimeThe time the business location closes, in hh:mm:ss format. |
openingHoursSpecification.dayOfWeek |
TextOne or more of the following:
|
openingHoursSpecification.opens |
TimeThe time the business location opens, in hh:mm:ss format. |
openingHoursSpecification.validFrom |
DateThe start date of a seasonal business closure, in YYYY-MM-DD format. |
openingHoursSpecification.validThrough |
DateThe end date of a seasonal business closure, in YYYY-MM-DD format. |
priceRange |
TextThe relative price range of a business, commonly specified by either a numerical range (for example, “$10-15”) or a normalized number of currency signs (for example, “$$$”) |
review |
Review A review of the local business. Follow the Review snippet guidelines and the list of required and recommended review properties. |
servesCuisine |
servesCuisineThe type of cuisine the restaurant serves. |
telephone |
Text
A business phone number meant to be the primary contact method for customers. |
url |
URLThe fully-qualified URL of the specific business location. Unlike the @id property, this URL property should be a working link. |
Hill Web Marketing is passionate about watching for and being informed of all Google schema structured data updates. We’ve got you covered!
In the end, every business is subject to Google’s interpretation of your business and how much it trusts it. YMYL sites have an even stricter standard to meet E-A-T. Some businesses appear in the Knowledge Panel, while others do not – often without any explanation. Some products win rich listings in Product carousels, including prices, consumer reviews, and availability, while the same or similar product from another retailer doesn’t. There are no hard-and-fast assurances about what will happen. However, doing your best is likely to pay off. We recommend using the Products feature in Google Business Profile as well – if you are a Retailer.
How to Make a LocalBusiness Schema Template
You can learn about JSON LocalBusiness Schema via JSONld.com; however, we provide a template below:
<script type="application/ld+json">
{
"@context" : "https://schema.org",
"@type" : "LocalBusiness",
"name" : "{{Store - Name}}",
"url" : "{{Store - URL}}",
"logo": "https://www.hillwebcreations.com/wp-content/uploads/2008/01/hwc-publisher-logo.jpg",
"image": "https://somesite.com/images/featuredimage.jpg",
"hasMap": "{{Store - hasMap}}",
"telephone": "{{Store - Telephone}}",
"email": "{{Store - Email}}",
"address":
{
"@type": "PostalAddress",
"streetAddress": "{{Store - Street Address}}",
"addressLocality": "{{Store - Locality}}",
"addressRegion": "{{Store - Region}}",
"postalCode": "{{Store - Postcode}}",
"addressCountry": "US"
},
"geo":
{
"@type": "GeoCoordinates",
"latitude": "{{Store - Latitude}}",
"longitude": "{{Store - Longitude}}"
},
"openingHoursSpecification":
[
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Monday"
],
"opens": "{{Store - Mon Open}}",
"closes": "{{Store - Mon Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Tuesday"
],
"opens": "{{Store - Tue Open}}",
"closes": "{{Store - Tue Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Wednesday"
],
"opens": "{{Store - Wed Open}}",
"closes": "{{Store - Wed Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Thursday"
],
"opens": "{{Store - Thu Open}}",
"closes": "{{Store - Thu Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Friday"
],
"opens": "{{Store - Fri Open}}",
"closes": "{{Store - Fri Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Saturday"
],
"opens": "{{Store - Sat Open}}",
"closes": "{{Store - Sat Close}}"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek":
[
"Sunday"
],
"opens": "{{Store - Sun Open}}",
"closes": "{{Store - Sun Close}}"
}
],
"sameAs" :
[
"https://www.facebook.com/yourbusinesspage/",
"https://twitter.com/yourbusiness",
"https://www.youtube.com/channel/yourbusinessname"
]
}
</script>
We recommend that you first understand the lookup table variables set above to fill and validate the various properties. As the logo, image, and social media profiles remain consistent, one can simply hard-code these values, but you can use as many lookup tables across as many properties as you like.
This can then be used within your Google Tag Manager where you want a trigger to fire when a person is on a store page:
We are passionate about pushing your markup further and helping your business gain better results! If gaining more local foot traffic matters to you, check out our Local SEO marketing services.
Organization vs. LocalBusiness vs. Niche Subtypes: AI Search & Rich Results Matrix
Choosing the wrong root entity type—or colliding your #website and #organization node IDs—triggers critical warnings in Google Rich Results Test and weakens entity disambiguation across Google Maps, Gemini, and AI Overviews. Use this decision matrix to select and validate your schema architecture:
| Schema.org Type | Best Fit & Primary Use Case | Required & High-Impact Properties | AI Search, GBP & OKF Graph Role |
|---|---|---|---|
Organization |
National/global B2B brands, SaaS companies, or parent corporations without walk-in retail storefronts. | @id (#organization), name, legalName, url, logo, founder, sameAs, hasOfferCatalog. |
Anchors Brand Knowledge Panels and links directly to your root org: node in an Open Knowledge Format (OKF) Brand Graph. |
LocalBusiness / ProfessionalService |
Consultancies, agencies, legal/financial firms, and regional service providers with a verified physical office or service area. | All Organization fields plus address (PostalAddress), telephone, priceRange, image, geo, areaServed, and clean hasMap CID URL. |
Reconciles website NAP data with your Google Business Profile (GBP) for Local Pack rankings and Gemini in Maps discovery. |
Store / Restaurant |
Brick-and-mortar retail shops and food establishments driving local foot traffic and in-store pickup. | openingHoursSpecification, hasMap, department, menu / servesCuisine (restaurants), or synced Product inventory. |
Powers Google Merchant Center local in-store availability badges, Lens in Maps, and Agentic Commerce booking actions. |
MedicalBusiness / MedicalClinic |
Healthcare clinics, dental practices, and specialty care providers operating under strict YMYL and HIPAA standards. | medicalSpecialty, availableService, address, telephone, and authoritative SNOMED CT / Wikidata sameAs URIs. |
Establishes verified clinical authority in AI Overviews while keeping Protected Health Information (PHI) strictly isolated via a HIPAA-safe Medical OKF Graph. |
SUMMARY: Local Business Schema Implementation
Hill Web Marketing helps companies create leading-edge, custom local business schema markup that works best for both Organization and Local Business schema. It’s a critical aspect of Local Search Marketing optimization.
Frequently Asked Questions About Local Business Schema Markup
Should I use Organization or LocalBusiness schema on my website?
Use LocalBusiness (or a specific subtype such as ProfessionalService, MedicalBusiness, Store, or Restaurant) if your business has a verified physical location or defined local service area that matches a Google Business Profile (GBP). Because LocalBusiness inherits from both Organization and Place in the Schema.org hierarchy, you can declare a multi-typed array such as ["Organization", "ProfessionalService"] on your canonical #organization node to capture both brand-level and local geospatial properties in a single entity.
Why does Google Rich Results Test flag an “Unexpected type for isPartOf” error on LocalBusiness schema?
This error occurs when a site assigns the #website identifier to a LocalBusiness or Organization node, or points WebPage.isPartOf to an organization instead of the website. In a unified JSON-LD @graph, always separate the two entities: assign https://yourdomain.com/#website with @type: "WebSite" and https://yourdomain.com/#organization with @type: ["Organization", "LocalBusiness"], then link the website to the business using "publisher": {"@id": "https://yourdomain.com/#organization"}.
What properties are required to prevent LocalBusiness warnings in Google Rich Results Test?
Google requires @id (a globally unique, unchanging URI for the specific location), name, and a complete address (PostalAddress with streetAddress, addressLocality, addressRegion, postalCode, and addressCountry). To avoid non-critical warnings when using LocalBusiness or ProfessionalService, always include image, logo, telephone (with country code, such as +1-651-206-2410), priceRange (such as "$$"), geo (GeoCoordinates with at least 5 decimal places), and a clean hasMap URL.
How does LocalBusiness schema connect to my Google Business Profile (GBP) and Google Maps?
While Google Business Profile (GBP) is managed directly inside Google Search and Maps, your on-page LocalBusiness JSON-LD serves as the independent machine-readable verification layer on your own domain. Matching your exact NAP (Name, Address, Phone), primary category, opening hours, and linking your GBP CID URL inside both hasMap and sameAs helps Google’s Knowledge Graph and Gemini in Maps reconcile your website entity with your Maps pin and Google Merchant Center local inventory feed.
How should a Service-Area Business (SAB) handle streetAddress in LocalBusiness schema?
If your business serves customers at their locations and hides its street address on Google Business Profile for privacy, avoid publishing a home street address in public HTML or PostalAddress.streetAddress unless you want it indexed. Instead, specify addressLocality, addressRegion, postalCode, and addressCountry alongside explicit areaServed nodes (using City, AdministrativeArea, or GeoCircle linked to Wikidata URIs) or use Organization paired with areaServed.
How does LocalBusiness JSON-LD work with an Open Knowledge Format (OKF) Brand Graph?
Public Schema.org JSON-LD in your HTML header feeds external search crawlers and Google’s Public Knowledge Graph, whereas an Open Knowledge Format (OKF) Brand Graph organizes your verified entity facts, service catalogs, and semantic triples (Subject → Predicate → Object) into clean Markdown and YAML files for AI agents and GraphRAG. Using the exact same canonical @id, NAP attributes, and Wikidata sameAs URIs across both your JSON-LD @graph and your OKF organizations/ node prevents AI hallucinations across public and enterprise search.
Call 651-206-2410 and ask for Jeannie Hill, owner of Hill Web Creations, LLC or read our Ecommerce Schema Markup Guide
[1] https://developers.google.com/search/docs/appearance/structured-data/local-business