Structured data describes your business in a format machines read without ambiguity: its name, its address, its phone number, its opening hours. For this, Google relies on a vocabulary shared by search engines, schema.org, whose LocalBusiness type serves shops, practices and workshops.
Here is what this markup can do for a local business, how to write and test it, and what not to expect from it.
What it is for
Google puts it simply: structured data gives it explicit clues about the meaning of a page. For a business, it can use this markup in Search and in Maps, for example in the panel that presents the business, or in a carousel of businesses when someone searches for a category, such as “best restaurants in Nantes”.
Three limits, worth knowing before you start:
- no guarantee of display: Google writes that it doesn’t guarantee your structured data will show up in the results;
- the business profile remains the direct tool: that is where you edit opening hours, links and photos, and what shows on the map;
- nothing special for AI: Google states that no particular schema.org markup is needed to appear in its AI Overviews or AI Mode. It only asks that the structured data match the visible text. The topic is covered in our article on being cited by AI.
The type: as precise as possible
LocalBusiness is the general type. Google recommends using the most precise subtype that exists. Schema.org offers many, grouped in families:
- food: Restaurant, Bakery, CafeOrCoffeeShop;
- beauty: HairSalon, BeautySalon, DaySpa;
- building trades: Plumber, Electrician, HousePainter;
- and standalone types, such as Dentist for a dental practice.
A business that falls under two types can declare them together, as a list. The additionalType property, on the other hand, isn’t supported by Google.
The properties: two required, the rest recommended
Without the required properties, the page isn’t eligible. The recommended properties improve what Google can show.
| Property | Status | Content |
|---|---|---|
| name | required | the name of the business, as on the storefront |
| address | required | the postal address: street, postal code, city, country |
| telephone | recommended | the number with the country code, +33 for France |
| url | recommended | the full address of the business’s page, which must work |
| openingHoursSpecification | recommended | days, opening and closing time; validity dates for a seasonal closure |
| geo | recommended | latitude and longitude, with at least five decimal places |
| priceRange | recommended | a relative price range, in under 100 characters, otherwise Google doesn’t show it |
| menu | recommended | the link to the menu, for food businesses |
| servesCuisine | recommended | the type of cuisine, for a restaurant |
| department | recommended | a distinct department inside the business, such as a supermarket’s pharmacy |
Two properties from Google’s list, review and aggregateRating, concern only a special case: a site that collects reviews about other businesses. For your own business, Google is clear: a page that marks up reviews of its own business isn’t entitled to stars in the results. Your testimonials remain useful to your visitors; they won’t produce stars.
JSON-LD, the recommended format
Google accepts three formats, but recommends JSON-LD where possible, because it is the simplest to add and maintain. It is a script block, placed in the page’s code and separate from the visible text, which contains the description of the business.
For a bakery, this block would declare for example:
- the vocabulary used: schema.org;
- the type: Bakery;
- the name: Boulangerie Le Fournil;
- the address: 12 place Sainte-Anne, 35000 Rennes, France;
- the phone: +33 2 99 00 00 00;
- the page address;
- the opening hours: Tuesday to Sunday, from 07:00:00 to 19:00:00;
- the price range: “€”.
Google suggests going through a plugin for your site management tool when one exists. Otherwise, the block is written by hand, following the examples in its documentation.
The golden rule: what is marked up is visible
Google sets two general guidelines that apply to all markup:
- don’t mark up anything that isn’t visible to readers of the page;
- structured data must faithfully represent the content of the page.
So the opening hours in the markup are the ones shown on the page, and when you change one, you change the other. Misleading markup can earn a manual action: the page then loses its right to rich results, without its ranking in ordinary search being affected, Google specifies.
Test, publish, monitor
- Test the code with Google’s Rich Results Test, which says whether the page is eligible for Google’s features and flags blocking errors. The schema.org validator checks the general syntax.
- Publish, then run the address through the URL inspection tool in Search Console. Check that the page is blocked neither by the robots.txt file nor by a noindex tag.
- Be patient: Google has to come back and crawl the page, which can take several days.
- Monitor errors in Search Console, which also flags unreadable structured data.
In short: LocalBusiness markup describes your business to Google in its own language. The most precise type, at least the name and the address, JSON-LD, and nothing that isn’t plainly on the page. Google can use it; it doesn’t promise to show it.
Sources
- Google Search Central, Local business structured data (2026)
- Google Search Central, Introduction to structured data (2025)
- Google Search Central, General structured data guidelines (2026)
- Google Search Central, Review snippet structured data (2026)
- Google Search Central, AI features and your website (2025)
- Google, Rich Results Test
- Schema.org, the LocalBusiness type (version 30)
- Schema.org, Schema Markup Validator