Guide : LocalBusiness Schema
How to implement LocalBusiness schema, pourquoi Google supports far moins que the complet schema.org spec, choosing the correct subtype, NAP consistency, and how it differs from a Google Business Profile.
Langues
1 indice probant sur cette page
- Outil en ligne associéRich-Result Eligibility Checker
LocalBusiness schema (schema.org/LocalBusiness) describes a physical business to moteur de recherches. It's a subtype of Organization and Placer, so the complet spec inherits dozens of properties — but Google exige seulement two (nom, adresse) and consumes à propos de a dozen recommended ones. The wins come from en utilisant the la plupart spécifique subtype (Restaurant, LegalService, DaySpa — pas generic LocalBusiness), keeping NAP consistent à travers markup, votre Google Business Profile, and directory citations, and getting the fiddly details correct: geo coordinates besoin au moins 5 decimal places, priceRange doit stay sous 100 characters. The two biggest traps: marking up votre propre star rating with aggregateRating/examiner (that's pour sites reviewing AUTRE businesses — self-serving reviews break Google's guidelines), and treating schema as a substitute pour a Google Business Profile. They're separate systems, reconciled separately, and valid markup seulement rend vous eligible — Google jamais guarantees a rich result.
TL;DR — LocalBusiness schema is code vous ajouter to une page que indique search engines the facts à propos de a physical business — its nom, adresse, phone number, and hours. Google seulement exige two choses (nom and adresse); everything sinon is optional but rend le résultat richer. It is pas the même as setting up a Google Business Profile, and ajout it doesn’t guarantee vous a fancy search result — it simplement rend vous eligible pour un.
Ce que LocalBusiness schema is
Quand a moteur de recherche reads votre “Contact” page, it sees text. It can’t automatically tell votre street adresse from votre phone number from votre opening hours the façon vous peut. LocalBusiness schema spells it out in code: ce is the nom, ce is the adresse, ce is the phone number, ces are the hours.
It uses the shared vocabulary from schema.org — the même vocabulary behind tout balisage de données structurées — and vous usually écrire it as JSON-LD, a petit block of code que sits in lune page sans modification how it semble. Evidence for this claim Schema.org LocalBusiness is a subtype of both Organization and Place for describing a physical business or branch. Scope: Schema.org vocabulary; Google applies separate local-business search requirements. Confidence: high · Verified: Schema.org: LocalBusiness
Ce que Google en réalité nécessite
Here’s the surprising partie. schema.org defines dozens of properties vous pourrait ajouter, but Google seulement exige two:
name— the nom of the business.address— the physical street adresse.
Everything sinon — phone number, hours, price range, map coordinates — is recommended. Evidence for this claim Google's LocalBusiness feature documentation requires name and address and recommends additional applicable business details. Scope: Google Search LocalBusiness requirements; eligibility and display are not guaranteed. Confidence: high · Verified: Google: LocalBusiness structured data Vous don’t have to inclure it, but the plus accurate detail vous ajouter, the plus complet votre listing peut regarder in search.
The two choses beginners obtenir incorrect
1. Schema n’est pas votre Google Business Profile. Ces are two différent systems. Votre Google Business Profile (the free listing vous claim at business.google.com) is ce que powers votre pin on Google Maps and the “local pack” of three businesses sous a map. LocalBusiness schema is separate code on votre propre website. Un ne fait pas replace the autre — vous généralement vouloir les deux, and Google reconciles les separately.
2. Don’t mark up votre propre star rating. It’s tempting to ajouter votre propre five-star
average with aggregateRating, but Google’s propre guidelines dire que property is pour
sites que examiner autre businesses (comme a directory reviewing restaurants), pas
pour a business rating itself. Marking up votre propre testimonials as a rating is a
“self-serving review” and breaks the rules.
Un plus: utiliser the spécifique type. Si vous run a restaurant, mark it up as
Restaurant, pas the generic LocalBusiness. Google explicitly demande pour the la plupart
spécifique type que fits.
Vouloir the complet version — the exact property table, subtype selection, geo-coordinate precision, multi-location patterns, and how “NAP consistency” fits in? Switch to the Avancé tab.
TL;DR — LocalBusiness is a subtype of
OrganizationandPlace, so the complet schema.org spec inherits dozens of properties — but Google exige seulementname+addressand consumes ~12 recommended ones. The wins: utiliser the la plupart spécifique subtype (multiple types go in an array;additionalTypeisn’t pris en charge), garder NAP consistent à travers votre markup, Google Business Profile, and citations, and obtenir the details correct — geo nécessite ≥5 decimal places,priceRangedoit stay sous 100 characters. Don’t mark up votre propreaggregateRating/review(that’s pour sites reviewing autre businesses; self-serving reviews break the guidelines), and don’t treat schema as a Google Business Profile substitute — they’re separate, reconciled separately, and valid markup seulement rend vous eligible.
Où it sits: a subtype of Organization and Placer
The unique la plupart utile chose to comprendre à propos de LocalBusiness is its position in
the schema.org hierarchy. It’s a subtype of les deux Organization and Place,
qui is exactly pourquoi it peut carry general company properties (name, logo,
sameAs) and location-specific ones (address, geo, openingHoursSpecification).
Que dual inheritance is aussi pourquoi the complet spec is so grand — it pulls properties
from two big parent types.
Que matters pour how vous think à propos de the wider Entity & Identity
schema picture. A company-wide
Organization entity (sitewide, on the homepage) and a per-location LocalBusiness
entity are connexe but distinct: un describes the company, the autre describes a
placer vous pouvez walk into. Pour the company-level entity, voir Organization
schema; pour the personnes
behind it, Person schema.
The complet spec vs. ce que Google en réalité consumes
Ce is the distinction la plupart guides blur. schema.org/LocalBusiness inherits dozens
of properties from Organization and Place. Google consumes a petit subset. Don’t
confuse “schema.org supports X” with “Google will do something with X.”
Requis (seulement two):
address(PostalAddress) — the physical emplacement. Google’s advice: inclure as nombreux adresse sub-properties as possible; the plus vous provide, the plus élevé the quality of le résultat.name— the nom of the business.
Recommended (the properties que en réalité enrich le résultat): aggregateRating,
department, geo (with geo.latitude / geo.longitude), menu,
openingHoursSpecification (with .opens, .closes, .dayOfWeek, .validFrom,
.validThrough), priceRange, review, servesCuisine, telephone, and url.
The takeaway pour prioritizing dev effort: nail the requis pair, alors ajouter the
recommended properties que faire votre listing plus complet (hours and geo pour a
storefront; servesCuisine and menu pour a restaurant). Filling in obscure
inherited properties que Google ignores is wasted effort.
Choosing the correct subtype
Google is explicit: utiliser the la plupart spécifique LocalBusiness sub-type possible — pour
exemple Restaurant, DaySpa, HealthClub. Generic LocalBusiness fonctionne, but a
spécifique subtype donne engines plus to fonctionner with.
A few practical mappings:
- Restaurant / café →
Restaurant,CafeOrCoffeeShop,BarOrPub(sousFoodEstablishment) - Law firm →
LegalService(orAttorney) - Dentist / doctor →
Dentist,Physician(sousMedicalBusiness) - Plumber / electrician / general contractor →
HomeAndConstructionBusinesssubtypes (Plumber,Electrician,GeneralContractor) - Consultancy / agency with aucun meilleur fit →
ProfessionalService
Si votre business genuinely spans two types, specify les as an array — Google
supports multiple @type valeurs que façon. Remarque que additionalType is pas
pris en charge pour ce objectif, so don’t reach pour it.
NAP consistency — schema, GBP, and citations
“NAP” (Nom, Adresse, Phone) consistency is longstanding local-SEO meilleur pratique: the même nom, adresse, and phone devrait apparaître identically à travers votre on-page schema, votre Google Business Profile, and directory citations (Yelp, BBB, industry directories). Mismatches — an old suite number ici, a tracking phone number là — muddy the signals engines utiliser to identifier and trust a emplacement.
Un honest caveat: “NAP” is industry shorthand, pas a Google spec term. Google’s LocalBusiness documentation doesn’t utiliser the word. Frame it as well-established local-SEO consensus, pas a quoted Google ranking factor. It encore matters — arguably plus que quelconque unique individual property — parce que it’s à propos de the coherence of votre entity à travers the web, pas un field on un page.
The implementation details que trip personnes up
- Geo coordinates besoin au moins 5 decimal places. Google states the precision
doit be au moins 5 decimal places pour les deux
latitudeandlongitude. A courant slip is a CMS or geocoding outil rounding coordinates to 2–3 places — suffisant to put votre pin in the incorrect block. priceRangehas a 100-character ceiling. It doit be shorter que 100 characters; at 100 or plus, Google won’t montrer a price range at tout. Garder it short ($$, or$10–30), pas a paragraph.openingHoursSpecificationsyntax and edge cas.dayOfWeekaccepts complet schema.org URLs (https://schema.org/Monday) or the short nom (Monday). Google’s propre exemples utiliser 24-houropens/closestimes sans seconds (hh:mm); schema.org’s broaderTimetype aussi acceptshh:mm:sssi votre generator adds it. Four patterns cover almost every cas, straight from Google’s documentation: a normal day ("opens": "09:00", "closes": "17:00"), hours que cross midnight ("opens": "18:00", "closes": "03:00"pour an overnight Saturday), ouvrir tout day ("opens": "00:00", "closes": "23:59"), and closed tout day ("opens": "00:00", "closes": "00:00"). Pour seasonal or holiday closures, ajoutervalidFrom/validThroughinYYYY-MM-DD(Google’s propre exemple uses"validFrom": "2015-12-23", "validThrough": "2016-01-05") — a nuance la plupart basic implementations skip entirely.- Department naming convention. Quand vous nest a
department, inclure the store nom with the department nom (e.g., “gMart” and “gMart Pharmacy”) — unless the department is its propre independent brand (e.g., “Best Buy” and “Geek Squad”), in qui cas nom it standalone.
Reviews and ratings: the self-serving-rating trap
Ce un wastes a lot of implementation effort. Google’s docs are clair que
aggregateRating and review are recommended seulement pour sites que capture reviews
à propos de autre local businesses — a directory or examiner platform, pas the business
rating itself. A business marking up its propre star average on its propre page is doing a
“self-serving review,” qui violates Google’s review-snippet guidelines; Google
stopped showing self-serving examiner stars pour LocalBusiness/Organization années
ago. Evidence for this claim Google's review snippet rules make self-serving reviews for LocalBusiness and Organization ineligible for the star review feature. Scope: Google Search review snippet eligibility policy; genuine third-party review contexts are treated differently. Confidence: high · Verified: Google: Review snippet structured data
So si vous were planning to sprinkle votre homepage testimonials into an
aggregateRating: don’t. It won’t earn the stars you’re picturing, and it peut cross
the line from “no benefit” into “guideline violation.”
Multi-location businesses: un page vs. nombreux
Competitors give hand-wavy advice ici, so let me be concrete. The correct pattern dépend on votre architecture:
- Un
LocalBusinessper emplacement page. The cleanest approach pour a chain: chaque emplacement obtient its propre page with its propreLocalBusinessmarkup describing que adresse. Vous pouvez tie les to the parent withparentOrganization/branchOf. - Nesting sous
Organization. At the company level, vous pouvez express the brand as anOrganizationwith locations assubOrganization.
Ce que pas to do: stack five unrelated LocalBusiness blocks flatly on votre
homepage. Si une page has un adresse in the footer but five différent
LocalBusiness addresses in the markup, you’ve made it ambiguous qui adresse the
page is en réalité à propos de. Mark up the emplacement lune page represents.
LocalBusiness schema vs. Google Business Profile
Dire ce plainly parce que la plupart guides bury it: balisage de données structurées ≠ Google Business Profile. Ils are différent systems que Google reconciles separately.
- Votre Google Business Profile feeds Maps and the local pack directement via Google’s propre systems. It’s the principal driver of “near me” and local-pack visibility.
- On-page LocalBusiness schema is a corroborating on-site signal Google may utiliser pour Knowledge Panels and enriched results. It is pas a substitute pour a Business Profile — and a Business Profile n’est pas a substitute pour on-page schema.
Vous vouloir les deux, kept consistent (that’s the NAP point à nouveau). Neither un alone fait the other’s job.
Ce que it fait — and doesn’t — guarantee
Valid, guideline-compliant markup rend une page eligible pour a local Knowledge
Panel or a business carousel — though “eligible” scopes differently per fonctionnalité.
Google’s restaurant carousel, pour instance, is currently limited to a petit définir of
participating restaurant providers, so valid Restaurant markup alone doesn’t obtenir
an arbitrary site into it. Au-delà que scoping, eligibility encore doesn’t guarantee
afficher — Google dit outright que it doesn’t guarantee que fonctionnalités consuming
données structurées va montrer up in results. And a remarque on the stats floating autour
competitor blogs: numbers comme
“30–50% more often in the local pack” or “20–35% CTR lift” circulate widely with aucun
principal source. Treat les as unverified marketing claims, pas Google-confirmed
outcomes.
Validate avant vous ship
- Ajouter the requis properties (
name,address), alors the recommended ones que fit votre business. - Validate with the Résultats enrichis Tester and the Balisage de données structurées Validator.
- Deploy, alors vérifier with Inspection d’URL in Search Console and requête a recrawl.
- Monitor the structured-data reports in Search Console over temps.
Validate, alors deploy — pas the reverse.
AI summary
A condensed prendre on the Avancé version:
- Ce que c’est:
schema.org/LocalBusinessdonnées structurées (usually JSON-LD) describing a physical business — nom, adresse, phone, hours, geo, price range. - Hierarchy: a subtype of les deux
OrganizationandPlace, qui is pourquoi it inherits dozens of properties and pourquoi the complet spec is grand. - Complet spec vs. Google: Google exige seulement
name+addressand consumes ~12 recommended properties (geo,openingHoursSpecification,priceRange,telephone,url,department,menu,servesCuisine, plusaggregateRating/review). Don’t assume “schema.org supports X” signifie “Google uses X.” - Subtype: utiliser the la plupart spécifique subtype (
Restaurant,LegalService,Dentist), pas genericLocalBusiness. Multiple types go in an array;additionalTypeis pas pris en charge. - NAP consistency: garder nom/adresse/phone identical à travers markup, Google Business Profile, and citations. “NAP” is industry shorthand, pas a Google spec term — but coherence matters plus que quelconque unique property.
- Detail traps: geo nécessite ≥5 decimal places;
priceRangedoit be sous 100 characters or Google drops it; opening hours utiliserhh:mm:ssand short or completdayOfWeek, withvalidFrom/validThroughpour seasonal closures. - Reviews:
aggregateRating/revieware pour sites reviewing autre businesses. Marking up votre propre rating is a self-serving examiner que violates Google’s guidelines (self-serving stars were dropped autour 2019). - Multi-location: un
LocalBusinessper emplacement page (tie withparentOrganization/branchOf) or nest sousOrganizationviasubOrganization. Don’t stack unrelated addresses flatly on the homepage. - Schema ≠ Google Business Profile: separate systems, reconciled separately. GBP feeds Maps/local pack; on-page schema corroborates pour Knowledge Panels. Vouloir les deux.
- Aucun guarantee: valid markup rend vous eligible, pas guaranteed. Ignore uncited “30–50% more local pack” / “20–35% CTR” stats — aucun principal source.
- Validate: Résultats enrichis Tester + Balisage de données structurées Validator, alors Inspection d’URL and Search Console reports. Validate, alors deploy.
Documentation officielle
Primary-source documentation from the moteur de recherches and schema.org.
- Local business (LocalBusiness) données structurées — the source of truth: requis/recommended properties, subtype guidance, geo precision,
priceRangelimite, department naming, and the validation workflow. - Organization données structurées — the company-level entity, pour the LocalBusiness-vs-Organization distinction.
- Examiner snippet données structurées — the guidelines behind the self-serving-review restriction on
aggregateRating/review. - Résultats enrichis Tester — checks rich-result eligibility and required-property errors.
- Balisage de données structurées Validator — validates quelconque schema.org type, notamment LocalBusiness.
schema.org
- schema.org/LocalBusiness — the complet vocabulary: every inherited property from
OrganizationandPlace(the “full spec” side of the compare-and-contrast).
Bing / Microsoft
- Marking Up Votre site with Données structurées — Bing Webmaster Outils — Bing’s general structured-data guidance and validator (Schema.org / Microdata / RDFa / OpenGraph).
- Bing Places pour Business — Bing’s separate listing product, the parallel to Google Business Profile (même “listing platform ≠ on-page schema” distinction).
Quotes from the source
On-the-record statements from Google’s LocalBusiness documentation. Où lune page exposes the text, the lien is a deep lien que jumps to the quoted passage.
Google docs — ce que it enables
- “When users search for businesses on Google Search or Maps, Search results may display a prominent Google knowledge panel with details about a business that matched the query. When users search for a type of business (for example, ‘best NYC restaurants’), they may see a carousel of businesses related to the query.” Local business données structurées
Google docs — subtype guidance
- “Use the most specific
LocalBusinesssub-type possible; for example,Restaurant,DaySpa,HealthClub, and so on.” Jump to quote
Google docs — geo precision
- “The precision must be at least 5 decimal places.” Jump to quote
Google docs — self-serving reviews
- On
aggregateRatingandreview: “This property is only recommended for sites that capture reviews about other local businesses.” Jump to quote
Properties cheat sheet
Requis vs. recommended (ce que Google en réalité consumes)
| Property | Status | Notes |
|---|---|---|
name | Requis | The business nom |
address (PostalAddress) | Requis | Inclure as nombreux sub-properties as possible |
telephone | Recommended | The business phone number |
url | Recommended | URL canonique pour the business/emplacement |
geo (latitude/longitude) | Recommended | ≥5 decimal places pour les deux |
openingHoursSpecification | Recommended | opens/closes (hh:mm, per Google’s exemples), dayOfWeek, validFrom/validThrough pour seasonal |
priceRange | Recommended | Doit be < 100 characters or Google drops it |
department | Recommended | Nom as “{store} {department}” unless independently branded |
menu | Recommended | Pour food establishments |
servesCuisine | Recommended | Pour restaurants |
aggregateRating / review | Recommended seulement pour sites reviewing autre businesses | Pas pour self-reviews |
Courant LocalBusiness subtypes
| Business | Utiliser ce subtype |
|---|---|
| Restaurant / café / bar | Restaurant, CafeOrCoffeeShop, BarOrPub (sous FoodEstablishment) |
| Law firm / attorney | LegalService, Attorney |
| Dentist / doctor | Dentist, Physician (sous MedicalBusiness) |
| Plumber / electrician / contractor | Plumber, Electrician, GeneralContractor (sous HomeAndConstructionBusiness) |
| Spa / gym | DaySpa, HealthClub |
| Agency / consultancy (aucun meilleur fit) | ProfessionalService |
| Aucun spécifique match | generic LocalBusiness (dernier resort) |
Fast facts
- Requis = 2 (
name,address); everything sinon is recommended. - Utiliser the la plupart spécifique subtype; multiple types go in an array;
additionalTypeis pas pris en charge. - Geo ≥ 5 decimal places;
priceRange< 100 characters. aggregateRating/review= pour sites reviewing autre businesses, pas self-reviews.- Schema ≠ Google Business Profile — separate systems, reconciled separately.
- NAP consistency (industry term, pas a Google spec word) à travers markup, GBP, and citations matters plus que quelconque unique property.
- Valid markup = eligible, jamais guaranteed. Validate → deploy.
Anti-patterns: how LocalBusiness markup goes incorrect
The mistakes I voir la plupart, and Que faire à la place.
1. NAP inconsistency. Votre schema dit “123 Main St, Suite 200,” votre Google Business Profile dit “123 Principal Street,” and Yelp encore has votre old phone number. Ces mismatches undermine the whole point — engines utiliser the coherence of votre nom/adresse/phone à travers the web to identifier and trust a emplacement. Fix: pick un canonical NAP and faire the markup, the Business Profile, and every citation match it exactly.
2. En utilisant the generic type quand a spécifique un exists.
Marking a restaurant as bare LocalBusiness quand Restaurant exists throws away
signal Google explicitly demande pour. Fix: utiliser the la plupart spécifique subtype que fits
(Restaurant, LegalService, Dentist); utiliser multiple @type valeurs in an array
si vous genuinely span two — but pas additionalType.
3. Self-serving reviews.
Marking up votre propre testimonials as aggregateRating/review to essayer to win star
ratings. Google’s guidelines reserve ceux properties pour sites reviewing autre
businesses; self-serving stars were dropped années ago and ce peut cross into a
guideline violation. Fix: don’t self-rate. Earn genuine third-party reviews (qui
live on the examiner platforms, pas votre markup).
4. Stacking multiple locations on un page.
Five différent LocalBusiness blocks with five différent addresses on un homepage,
quand lune page really represents un entity (or none). It’s ambiguous qui adresse
lune page is à propos de. Fix: un LocalBusiness per emplacement page (tie to the brand
with parentOrganization/branchOf), or model the company as an Organization
with subOrganization.
5. Confusing schema with a Google Business Profile. Assuming on-page markup va obtenir vous into Maps and the local pack, or que having a Business Profile signifie vous don’t besoin schema. They’re separate systems que Google reconciles separately — GBP drives Maps/local pack, schema corroborates pour Knowledge Panels. Fix: définir up les deux and garder les consistent.
Bonus trips: rounding geo coordinates ci-dessous 5 decimal places (wrong-block pin),
a priceRange over 100 characters (Google silently drops it), and expecting a
guaranteed rich result from valid markup (eligibility ≠ afficher).
Testez vos connaissances: LocalBusiness Schema
Five rapide questions on LocalBusiness schema — requis properties, subtypes, the examiner trap, and how it relates to a Google Business Profile. Pick an réponse pour chaque, alors vérifier.
Qui LocalBusiness subtype devrait I utiliser?
The article’s subtype guidance turns into a straightforward branch: match votre
business category to the la plupart spécifique LocalBusiness sub-type schema.org
defines, and seulement fall back to the generic type quand nothing fits.
What LocalBusiness subtype fits my business?
Un page per emplacement, or nest sous Organization?
The autre genuine fork in the article is architectural: how do vous markup a business with plus que un physical emplacement?
How should a multi-location business structure its markup?
Worked exemples: LocalBusiness JSON-LD
Three annotated blocks, chaque construit from the requis and recommended properties covered ci-dessus.
Exemple 1: minimum viable markup (requis properties seulement)
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Riverside Dental Care",
"address": {
"@type": "PostalAddress",
"streetAddress": "412 Riverside Ave",
"addressLocality": "Columbus",
"addressRegion": "OH",
"postalCode": "43215",
"addressCountry": "US"
}
}nameandaddressare the seulement two properties Google exige — ce passes validation, but it’s leaving the recommended properties (and a spécifique subtype) on the table.- Même at ce minimal level, Google’s advice is to inclure as nombreux
addresssub-properties as vous pouvez — that’s pourquoi tout five are filled in ici à la place of a uniquestreetAddressline.
Exemple 2: a spécifique subtype with the recommended properties filled in
{
"@context": "https://schema.org",
"@type": "Dentist",
"name": "Riverside Dental Care",
"telephone": "+1-614-555-0142",
"url": "https://www.riversidedentalcare.example/",
"address": {
"@type": "PostalAddress",
"streetAddress": "412 Riverside Ave",
"addressLocality": "Columbus",
"addressRegion": "OH",
"postalCode": "43215",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 39.96199,
"longitude": -83.00275
},
"priceRange": "$$",
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "08:00:00",
"closes": "17:00:00"
}
]
}@typeisDentist, pas genericLocalBusiness— the spécifique subtype Google demande pour.geo.latitude/geo.longitudeles deux carry 5 decimal places, matching Google’s minimum-precision requirement.priceRangeis a short$$, bien sous the 100-character ceiling.openingHoursSpecificationuseshh:mm:sstimes and shortdayOfWeeknoms, grouped pour the days que share the même hours.
Exemple 3: a restaurant with a seasonal-closure and department nesting remarque
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "gMart Pharmacy",
"servesCuisine": "American",
"menu": "https://www.example-diner.example/menu/",
"address": {
"@type": "PostalAddress",
"streetAddress": "88 Harbor Rd",
"addressLocality": "Portland",
"addressRegion": "ME",
"postalCode": "04101",
"addressCountry": "US"
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "https://schema.org/Monday",
"opens": "11:00:00",
"closes": "21:00:00",
"validFrom": "2026-01-01",
"validThrough": "2026-12-24"
}
]
}servesCuisineandmenuare the recommended properties que matter la plupart pour aFoodEstablishmentsubtype commeRestaurant.dayOfWeekici uses the complet schema.org URL formulaire au lieu de the short nom — les deux are valid, ce simplement montre the alternative.validFrom/validThroughmark a seasonal window inYYYY-MM-DD— the detail la plupart basic implementations skip.- The
namevaleur follows the article’s department-naming convention: “gMart Pharmacy” garde the store nom with the department nom, the pattern to utiliser unless the department is its propre independently branded entity (comme “Best Buy” and “Geek Squad”).
Three mental models pour thinking à propos de LocalBusiness schema
1. Complet spec vs. ce que Google en réalité consumes. schema.org/LocalBusiness
inherits dozens of properties from les deux Organization and Place, but Google
exige seulement name + address and meaningfully consumes à propos de a dozen
recommended ones (geo, openingHoursSpecification, priceRange,
telephone, url, department, menu, servesCuisine,
aggregateRating/review). The framework: jamais assume “schema.org supports
property X” means “Google va do something with property X.” Prioritize the
requis pair, alors the recommended properties que fit votre business, and
treat obscure inherited properties Google ignores as wasted implementation
effort.
2. Schema n’est pas a Google Business Profile. Ces are two separate systems que Google reconciles independently. A Google Business Profile feeds Maps and the local pack directement via Google’s propre systems — it’s the principal driver of “near me” and local-pack visibility. On-page LocalBusiness schema is a corroborating on-site signal Google may utiliser pour Knowledge Panels and enriched results. Neither substitutes pour the autre; the framework is “définir up les deux, and don’t expect un to do the other’s job.”
3. NAP as coherence, pas a unique field. Nom/Adresse/Phone consistency à travers votre balisage de données structurées, votre Google Business Profile, and directory citations isn’t à propos de quelconque un property being correct — it’s à propos de the coherence of votre entity à travers the entier web. A mismatched suite number or a stale tracking phone number in un placer muddies the signals engines utiliser to identifier and trust a emplacement, même si every individual field is technically valid on its propre page. Treat “NAP” as well-established local-SEO consensus (the term itself isn’t in Google’s documentation), pas a unique checkbox to tick une fois.
Outils pour validating LocalBusiness markup
- Rich-Result Eligibility Checker — my propre free outil. Paste votre LocalBusiness JSON-LD, an HTML page, or récupérer a live URL, and it montre exactly qui requis fields are manquant and qui recommended ones you’re leaving out, spécifique to the local-business rich result. It runs entirely in votre navigateur, so nothing vous paste in leaves votre machine.
- Balisage de données structurées Validator — aussi mine.
Validates the JSON-LD’s schema.org vocabulary directement (pas simplement the
Google-specific subset), checks cross-block
@idréférences si you’re linking LocalBusiness to a parent Organization, and donne vous back a corrected, copy-pasteable block. - Résultats enrichis Tester — Google’s propre outil. Utiliser it après the two ci-dessus to confirmer Google’s live parser agrees lune page is eligible.
- Inspection d’URL (Search Console) — après deploying, vérifier how Google en réalité crawled and rendered lune page, and requête a recrawl.
Pitch: run the Rich-Result Eligibility Checker or the Balisage de données structurées Validator avant vous ship a modifier, alors confirmer with the Résultats enrichis Tester and URL Inspection après — that’s the même sequence the Validation Tests lens ci-dessous walks via in detail.
Proving votre LocalBusiness markup modifier worked
Tester 1: required-property and syntax validation
Tester to run: Paste the mis à jour JSON-LD into my
Rich-Result Eligibility Checker or
Balisage de données structurées Validator.
Attendu result: Aucun missing-required-field errors on name or address,
and the outil montre the local-business rich result as eligible.
Échec interpretation: A flagged manquant property signifie it genuinely
isn’t présent in the markup vous shipped — re-check the JSON-LD source plutôt
que assuming a mise en cache problème.
Monitoring window: Immediate — the outil reads the markup directement, aucun
explorer wait requis.
Rollback trigger: Validation encore fails après a direct fix to the
template — revert the modifier and re-diff contre the dernier known-good JSON-LD.
Tester 2: Google’s propre Résultats enrichis Tester agrees
Tester to run: Run the live URL via Google’s Résultats enrichis Tester. Attendu result: Lune page is detected as eligible pour the local business result, with the requis and recommended properties Google’s parser sees matching ce que vous shipped. Échec interpretation: Si Google’s outil disagrees with the two outils ci-dessus, the live page probable differs from ce que vous validated — vérifier pour a mise en cache couche or a construire step serving stale markup. Monitoring window: Immediate. Rollback trigger: The eligible-page vérifier encore montre manquant requis fields après a deploy — the fix didn’t reach the live page.
Tester 3: Search Console structured-data reports over temps
Tester to run: Search Console’s structured-data / Enhancement reports pour the affected URLs, après requesting a recrawl via Inspection d’URL. Attendu result: L’URL count with LocalBusiness errors drops to zero, and previously flagged pages déplacer into the valid bucket. Échec interpretation: Encore flagged après a recrawl signifie soit the fix hasn’t propagated to the version Google récupéré, or a différent requis property is aussi manquant — re-run Tester 1 contre the exact URL Search Console listes. Monitoring window: 2–4 weeks — structured-data report updates lag behind a unique recrawl. Rollback trigger: Error counts climb au lieu de falling après the modifier ships broadly — revert and re-validate avant rolling forward à nouveau.
Journal des modifications
Mis à jour le 18 juil. 2026.
Résumé éditorial et détails enregistrés des changements.Détails des changements
- Advanced
Les notes détaillées des changements sont actuellement disponibles en anglais.
Comparaison complète indisponible — aucun instantané antérieur n’a été archivé pour cette révision.