Mark up one real retail location from visible, verified facts, then validate the rendered page without treating structured data as a ranking guarantee.
LocalBusiness structured data is machine-readable information placed on a page that describes a real local business. It can help search systems understand facts such as the business type, address, telephone and opening hours. It does not create a store, verify a Google Business Profile or guarantee local rankings.
This is a narrow technical extension of GPTWala’s local SEO system for Indian retail stores and Google Business Profile guide. Complete those operational foundations first. Markup should represent visible, current facts that customers can verify.
Understand what LocalBusiness schema can and cannot do
| Task | This guide owns | Existing owner |
|---|---|---|
| Broad store visibility plan | No | Local SEO guide |
| Business Profile setup and maintenance | No | Google Business Profile guide |
| JSON-LD on a real store page | Yes | This guide |
| Website/product architecture | No | AI-ready website and product-page SEO guides |
| Location data governance | Only fields used in markup | Operational source of truth |
| Rich-result or ranking guarantee | Never | Google decides search presentation |
Google’s current LocalBusiness documentation says structured data is a standardized way to classify page information and provides implementation requirements. Google also makes clear in its general guidelines that valid markup does not guarantee a search feature.
Choose the real entity and the page that describes it
Place LocalBusiness markup on a page about a real business location. A single-location store can use its store or contact/location page. A multi-location company normally needs one accurate page and entity record per legitimate location, not one JSON block listing invented city variants.
| Page situation | Recommended entity approach | Reject when |
|---|---|---|
| One public retail store | One specific LocalBusiness subtype where accurate | Address or hours are hidden or unverified |
| Store inside a larger company site | Local location plus clear parent organization relationship | Entity names are inconsistent |
| Department inside a store | Use supported department structure only when it is a real department | Department exists only for keywords |
| Service-area business | Follow visible-address and eligibility rules | A hidden residential address is exposed |
| Online-only seller | Usually Organization/WebSite/Product markup is more relevant | No customer-facing local business exists |
| Dealer or stockist list | Describe real dealers only with permission and current data | The brand pretends to own independent dealers |
Choose the most specific accurate Schema.org subtype supported by the facts, such as Store or an applicable retail subtype. Do not pick a narrow subtype solely because it contains a desired keyword.
Map every property to visible evidence
Create a field map before writing JSON-LD. Each value needs an authoritative source, page location, owner and update rule.
| Property | Visible or authoritative source | QA question |
|---|---|---|
| @type | Actual business activity | Is the subtype factually correct? |
| name | Store signage and official business name | Does it match visible identity without keyword additions? |
| url | Canonical location page | Does it resolve and describe this entity? |
| address | Public customer address | Is it complete, current and shown on page? |
| telephone | Monitored store contact | Can customers reach the stated location? |
| openingHoursSpecification | Current operating schedule | Are holidays and temporary changes handled? |
| image/logo | Crawlable representative asset | Is it relevant, accessible and permitted? |
| geo | Verified map coordinates | Do they point to the entrance/location? |
| sameAs | Official identity profiles | Does each URL represent the same entity? |
Do not add ratings, reviews, price range, payment methods, areas served or certifications unless the specific property is appropriate, visible and supported. The safest schema is not the largest schema. It is the smallest complete representation of verified facts.
Build a clean JSON-LD record
Google recommends JSON-LD for many structured-data features. Use the current documentation and your platform’s tested insertion method. The following fictional pattern shows relationships, not a copy-ready business record:
{
"@context": "https://schema.org",
"@type": "Store",
"@id": "https://example.com/stores/example/#store",
"name": "Example Store",
"url": "https://example.com/stores/example/",
"telephone": "+91-00000-00000",
"address": {"@type":"PostalAddress","streetAddress":"Verified street","addressLocality":"Verified locality","addressRegion":"State","postalCode":"000000","addressCountry":"IN"}
}Replace every fictional value from the approved location master. Use a stable @id when connecting the entity across markup blocks. Do not paste the example phone, address or name into production.
| JSON-LD check | Pass condition | Failure example |
|---|---|---|
| Syntax | Valid JSON with escaped characters | Trailing comma or curly quotation mark |
| Entity identity | One stable location entity | Different names in Organization and LocalBusiness |
| Canonical URL | Matches indexable location page | Tracking or redirect URL |
| Page agreement | Visible content matches values | Schema hours differ from footer |
| Encoding | International and local text renders correctly | Broken characters |
| Output | Markup appears in rendered HTML | Plugin stores it but does not output it |
Handle hours, contact and address carefully
Opening hours change more often than a schema project. Decide whether the website, store system or location master is authoritative. Include regular hours only when the update process can keep them current, and manage special or temporary hours through the appropriate visible and platform workflows.
| Field | Normal control | Exception control |
|---|---|---|
| Business name | Approved real-world name | Rebrand change plan |
| Address | Complete official customer address | Move, temporary closure or service-area handling |
| Telephone | Monitored local or central number as described | Routing outage and replacement |
| Regular hours | Weekly approved schedule | Seasonal schedule change |
| Special hours | Dated exceptions where supported | Public holiday or event |
| URL | Stable canonical location page | Migration and redirect test |
Google Business Profile’s official address guidance says businesses should use a complete address that Google can find and include only information that is part of the official address. Keep the website, markup and public profile conceptually consistent while respecting each surface’s format.
Model departments and multiple locations without duplication
A department is not a keyword variation. Use department markup only when the department is a distinct public function and the structure follows current Google documentation. For multiple stores, give each legitimate location its own identifier, page, contact and accurate facts.
| Scenario | Entity rule | Website rule |
|---|---|---|
| Two branches | Two location entities | Two useful location pages or an architecture that exposes both |
| Store department | Parent store plus real department when supported | Visible department details |
| Head office plus retail store | Separate roles and entities | Do not mark head office as a store unless it is one |
| Independent dealer | Dealer owns its business facts | Use a dealer directory with permission and current data |
| Temporary event stall | Do not force permanent-store markup | Use event/location information appropriate to reality |
For overall site structure, use the AI-ready website guide. This article does not authorize mass city pages.
Validate syntax, eligibility and rendered facts
- Test the JSON-LD syntax in Google’s Rich Results Test or a suitable validator.
- Inspect the rendered page, not only the editor source.
- Compare every property with visible text and the location master.
- Check the page is publicly accessible and not blocked by robots or
noindex. - Confirm canonical URL, redirects and HTTP status.
- Test images and URLs from an anonymous browser.
- Use URL Inspection after deployment where appropriate.
- Record warnings separately from errors and assess their meaning.
Schema.org validation can confirm vocabulary structure; Google’s tools check its feature-specific interpretation. Neither tool verifies whether the business fact is true. Human evidence review remains required.
Deploy without duplicate or conflicting markup
| Deployment risk | Diagnostic | Fix |
|---|---|---|
| Theme and plugin both output LocalBusiness | Two entities with conflicting fields | Choose one authoritative generator |
| Global footer outputs one store everywhere | Product pages appear to describe the store as main entity | Scope markup to appropriate pages |
| Cache serves old hours | Rendered JSON differs by node/device | Purge and verify served HTML |
| JavaScript replaces canonical/entity values | Source and rendered markup conflict | Stabilize server or rendered output |
| Staging markup reaches production | Example data appears publicly | Environment checks and release review |
| Template update removes JSON-LD | Validation disappears after theme change | Regression test in release checklist |
Connect the location entity to relevant Organization or WebSite markup only when identifiers and relationships are consistent. Product structured data remains governed by the product-page SEO guide.
Maintain a structured-data change log
Record page URL, entity ID, property, old value, new value, source, approver, deployment time and validation result. Trigger reviews after a move, rebrand, phone or hours change, CMS/theme update, location opening or closure, or Search Console enhancement warning.
| Audit frequency | Check | Owner |
|---|---|---|
| Monthly | Hours, phone, URL and rendered markup | Location operations plus web owner |
| After every release | Output, duplicates, canonical and access | Developer/SEO owner |
| Quarterly | Subtype, relationships and source-of-truth map | SEO and business owner |
| After business change | All affected visible facts and profiles | Named change coordinator |
| After Google documentation change | Eligibility and required/recommended properties | Technical SEO owner |
Structured data is dependable only when the business-change workflow updates it. A one-time valid test does not prove that next month’s hours or address will remain correct.
Frequently asked questions
What is LocalBusiness schema?
It is structured data that describes a real local business entity and facts such as its name, address, telephone and opening hours.
Does LocalBusiness schema improve local rankings?
Valid markup can help systems understand a page, but it does not guarantee rankings, a rich result or Business Profile verification.
Where should LocalBusiness schema be added?
Add it to a page that genuinely describes the real business location, with visible facts matching the markup.
Which LocalBusiness schema type should a retail store use?
Use the most specific accurate subtype supported by the actual business, and do not choose a type merely for keyword value.
Should every store location have separate schema?
Each legitimate location should have its own stable identity and accurate facts, usually connected to a useful location page and governance record.
How do I test LocalBusiness schema?
Validate JSON-LD, inspect rendered HTML, compare it with visible evidence, check access and canonical status, and monitor Search Console after deployment.