AI search
Local Business Schema Markup: A Practical Guide for India
Add local business schema markup the way Google documents it: the right type, a JSON-LD example for an Indian clinic, testing steps and common errors to avoid.
RankMonk Team · · 9 min read
Your Google Business Profile tells Google who you are on Maps. Your website has to tell the same story, and local business schema markup is the cleanest way to do it: a small block of code that states your business name, address, phone, hours and location in a format search engines read without guessing. This guide explains what local business schema markup does and does not do, shows a working example for an Indian clinic, and walks you through adding and testing it, even if you are not a developer.
What is local business schema markup?
Schema markup is structured data: labelled facts about a page, written using the shared vocabulary at schema.org. LocalBusiness is the schema.org type for a physical business that customers visit or call, such as a clinic, salon, restaurant, showroom or bank branch.
Google's own documentation on LocalBusiness structured data says that when people search for businesses on Google Search or Maps, results may show a knowledge panel with details about the business. With this markup you can tell Google about your hours, departments and other details.
Think of it as filling in a form for search engines. Your contact page already says "Open 10 am to 8 pm, 100 Feet Road, Indiranagar". The markup says the same thing in labelled fields: opens: 10:00, closes: 20:00, streetAddress, addressLocality.
What schema markup will and will not do for you
Set expectations before you spend developer time on this. Here is what Google's documentation actually says.
| Claim you may have heard | What Google's documentation says |
|---|---|
| "Schema boosts your Maps ranking" | Google says local results are mainly based on relevance, distance and popularity (prominence). Schema is not listed as a ranking factor. |
| "Add schema and you get rich results" | Google says it does not guarantee that structured data will show up in search results, even when the markup is correct. |
| "You need special schema to appear in AI Overviews" | Google says there is no special schema.org structured data you need to add to appear in AI Overviews or AI Mode. |
| "Schema mistakes hurt your rankings" | A structured data manual action makes a page lose eligibility for rich results. Google says it does not affect how the page ranks in web search. |
So why bother? Because the markup removes ambiguity. It states your official name, address, phone and hours in one place that matches your Business Profile, and it is the format Google documents for describing a business on a website. It is a small, low-risk job that makes your site easier for machines to read correctly. Just do not treat it as a ranking trick.
Which LocalBusiness type should you use?
Google asks you to "use the most specific LocalBusiness sub-type possible", for example Restaurant, DaySpa or HealthClub. Schema.org has subtypes for most Indian local businesses:
- Dental clinic:
Dentist - Multi-speciality or general clinic:
MedicalClinic - Restaurant, cloud kitchen with a dine-in outlet:
Restaurant - Salon:
BeautySalonorHairSalon - Gym:
ExerciseGymorHealthClub - Car showroom:
AutoDealer; workshop:AutoRepair - Property broker:
RealEstateAgent - Hotel:
Hotel - Bank branch:
BankOrCreditUnion - Clothing store:
ClothingStore
If nothing fits, use plain LocalBusiness. If your business genuinely is two things, Google's page says you can list multiple types as an array, for example ["Dentist", "MedicalClinic"].
A working LocalBusiness JSON-LD example for an Indian business
Google recommends JSON-LD, a short script block, as the easiest format to add and maintain. Here is an example for a fictional dental clinic in Indiranagar, Bengaluru. Replace every value with your own details.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Smile Studio Dental Clinic",
"image": "https://www.example.com/images/clinic-front.jpg",
"url": "https://www.example.com/indiranagar",
"telephone": "+91-80-40000000",
"priceRange": "₹₹",
"address": {
"@type": "PostalAddress",
"streetAddress": "123, 100 Feet Road, HAL 2nd Stage",
"addressLocality": "Bengaluru",
"addressRegion": "Karnataka",
"postalCode": "560038",
"addressCountry": "IN"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 12.97194,
"longitude": 77.64079
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"opens": "10:00",
"closes": "20:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "10:00",
"closes": "14:00"
}
]
}
</script>
What each field means, and the rules Google sets
nameandaddress(required). Google lists these two as the required properties. Use exactly the business name on your signboard and Business Profile, with no added keywords. UseINas the country code.telephone(recommended). Google asks for the primary customer phone number including the country code and area code, so+91-80-...for a Bengaluru landline or+91followed by the ten-digit mobile number.url(recommended). The full URL of the page for this specific location, and Google says it must be a working link.geo(recommended). Latitude and longitude with at least 5 decimal places. Take them from the exact pin of your entrance, not the centre of the area.openingHoursSpecification(recommended). One entry per group of days with the same timings. Google's page explains that for 24-hour opening you set opens to00:00and closes to23:59, and for a day you are closed all day you set both to00:00.priceRange(recommended). A relative range such as₹₹or₹500-1500. Google says it must be shorter than 100 characters.menuandservesCuisine. For restaurants only: the full URL of your menu and the type of cuisine, such asHyderabadiorSouth Indian.
Do not add your own star ratings
Many plugins offer to add aggregateRating with your Google rating. Google's documentation says this property is only recommended for sites that capture reviews about other local businesses. Its review snippet guidelines go further: if a business controls the reviews about itself, pages with LocalBusiness markup are ineligible for star review features, and that includes reviews shown through an embedded Google or Facebook reviews widget. Show your reviews on the page for visitors if you like, but leave ratings out of your own schema.
How to add local business schema markup to your website
You do not need to touch code on most platforms. Pick the route that matches your site.
- Collect your facts first. Copy your business name, address, phone, hours and map pin from your Google Business Profile so both say exactly the same thing. If they differ, fix the one that is wrong before you add markup.
- Choose where it goes. Google says you can add LocalBusiness markup to any page on your site, though it makes most sense on a page with information about your business, such as the home page or contact page. Its general guidelines also say to put structured data on the page it describes.
- Add the block.
- WordPress: many SEO plugins have a local business or organisation settings screen that outputs this markup. Check the output in the testing step below, because plugins differ in what they add.
- Website builders (Wix, Shopify, Squarespace and similar): look for a business information or SEO settings section, or a custom code option where you can paste the script into the page.
- Custom site: ask your developer to place the JSON-LD script in the page's HTML, ideally generated from the same database that powers your contact details so the two never drift apart.
- Make sure everything in the markup is visible on the page. Google's general structured data guidelines say: "Don't mark up content that is not visible to readers of the page." If the schema lists Sunday hours, the page should show Sunday hours too.
- Test it using the steps in the next section.
How to test your markup and fix common errors
Google's LocalBusiness page sets out the process: validate your code with the Rich Results Test, fix any critical errors, then deploy and use the URL Inspection tool in Search Console to confirm Google can access the page. The page must not be blocked by robots.txt, a noindex tag or a login requirement.
You can also paste your code into the Schema Markup Validator, run by schema.org, to check it against the full vocabulary.
Mistakes we commonly see on Indian business websites:
- Old phone number or address. The clinic moved from Koramangala to HSR Layout, the Business Profile was updated, but the plugin settings were not.
- Keywords in the name. "Smile Studio Best Dental Clinic in Bangalore" in the markup when the board says "Smile Studio Dental Clinic".
- Wrong or missing country code, such as
080-40000000or a bare ten-digit mobile number. - Hours that do not match the page, often because festival or seasonal hours were changed on the page only.
- Self-added ratings, which Google's review guidelines make ineligible for star features, as explained above.
- Rounded coordinates like
12.97, 77.64, which can point several hundred metres away. Use at least five decimal places.
Schema for multiple locations and AI search
One page and one block per branch
If you run several branches, Google says to "define each local business location as a LocalBusiness type", and the url property should be the page for that specific location. In practice that means a page per branch, such as /branches/andheri-west and /branches/baner, each carrying its own markup with that branch's address, phone, hours and map pin. Do not put one head office address on every page. If a location has a separately branded department, such as a pharmacy inside a hospital, Google documents a department property for it.
For a chain with dozens of branches, generate the markup from one central record of branch details. When Diwali hours or a new phone number change in that record, the website, the schema and your profiles can all be updated together. That is the same discipline you need for keeping branch listings consistent across Google, Bing and Apple Maps.
Does schema help with AI Overviews and AI assistants?
Google is direct about its own AI features: there are no additional requirements and no special schema.org structured data needed to appear in AI Overviews or AI Mode. Its guidance on AI features recommends the usual fundamentals instead, including making sure your structured data matches the visible text on the page and keeping your Business Profile information up to date.
Other assistants such as ChatGPT and Gemini do not publish a rulebook for how they pick local businesses, so no one can honestly promise that markup will get you mentioned. What you can control is this: your website, schema and Business Profile all state the same, correct facts, so any system reading them gets one consistent answer. If you want to see whether assistants actually name you, track your AI search visibility rather than assuming.
Frequently asked questions
Is local business schema markup a ranking factor for Google Maps?
Google does not list it as one. Its help page on local ranking says local results are mainly based on relevance, distance and popularity (which Google also calls prominence), and that there is no way to pay for a better local ranking. Your Business Profile's completeness and reviews matter far more for Maps.
Do I need schema if I already have a Google Business Profile?
They do different jobs. The Business Profile is what appears on Maps. The markup describes your business on your own website. Keeping both accurate and identical is good housekeeping and costs little.
Should I use JSON-LD or Microdata?
Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD where your site allows it, because it is the easiest to implement and maintain.
Can I add schema for a home-based or service-area business?
Only mark up an address you are willing to show on the page, because Google says marked-up content must be visible to readers. If you hide your address on your Business Profile, it makes sense to leave it out of your website and its markup too, and describe your service area in plain text instead.
Local business schema markup is a one-afternoon job: choose the most specific type, copy your facts from your Business Profile, add the JSON-LD block to the right page, test it, and update it whenever your hours, phone or address change. It will not lift your Maps rank on its own, but it removes doubt about who you are and where you are. To see where you actually rank street by street around each branch, talk to the RankMonk team.
- Schema markup
- Structured data
- AI search
- Local SEO
See how your business shows up
RankMonk tracks your rank street by street, protects your Google Business Profile and shows whether AI assistants recommend you.
Book a demo →