Your company details for Google: structured data (LocalBusiness)
A visitor immediately sees your address and opening hours on your contact page. A search engine has to extract that from the text. With structured data you write down those facts with fixed labels: this is the name, this is the address, these are the opening hours. Google uses them to understand your page, for example for the block with your business details that appears when someone searches for your business. Here you can read what such a block looks like, how to test it and what's not allowed.
schema.org and JSON-LD
The labels come from schema.org, a shared dictionary from the major search engines. It contains types (kinds of things, such as LocalBusiness) and properties (such as name, address and telephone). You can add it to your page in three ways. Google recommends JSON-LD: a single separate block of code that doesn't affect the layout of your page.
An example block
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Florist",
"name": "Bloemenatelier Voorbeeld",
"url": "https://www.example.com/",
"telephone": "+31 33 000 0000",
"address": {
"@type": "PostalAddress",
"streetAddress": "Voorbeeldstraat 12",
"postalCode": "1234 AB",
"addressLocality": "Amersfoort",
"addressCountry": "NL"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
"opens": "09:00",
"closes": "17:30"
}]
}
</script>
@contextstates which dictionary you're using,@typestates what kind of business it is.- According to Google, only
nameandaddressare required. Put the address in separate fields (PostalAddress), not as a single line of text. - Recommended properties include
telephone,url, opening hours,geo(coordinates),imageandpriceRange. - Opening hours: days in English as in schema.org, times in 24-hour notation.
- JSON is strict: text between double quotation marks, a comma between properties and no comma after the last one. One mistake and the entire block gets skipped.
Choose the most specific type
Google asks for the most specific type that fits: prefer Florist, Bakery, HairSalon or Plumber over just LocalBusiness. Write the type exactly as on schema.org, with capital letters. Bloemist or florist don't exist. To see whether a type exists, open https://schema.org/ followed by the type. If you can't find anything that fits, use LocalBusiness.
Phone number with country code
Google asks for a phone number with country code and area code, such as +31 33 000 0000 instead of 033 000 0000.
With the AI Builder
If you build your site with the AI Builder, you don't have to write any code. For every published site, the AI Builder places a JSON-LD block on the homepage and on pages with a contact block. This contains your site (WebSite) and your business, with the type of business you choose, the name, the web address, the address, phone, email, opening hours and your links to social media.
You fill in those details under SEO, under Whole site: under Business details (Type of business, Street and house number, Postal code, City, Phone and Email), Opening hours and Social media. If you leave a field empty, the AI Builder takes over the details from your contact page. Pay attention to three things:
- Under Type of business, choose the type that fits best. If you don't choose anything, it will say
LocalBusiness. - The phone number appears in the block exactly as you type it. So type it with country code, for example
+31 33 000 0000. - Fill in street, postal code and city. Without an address, the business block has no
address, and according to Google that's required.
You can read more about the builder in AI Builder: editing, versions and publishing. In WordPress, an SEO plugin or your theme usually takes care of this block. In that case, use a single source, so that there aren't two blocks with different details on your site.
Testing
| Tool | Answers |
|---|---|
| Rich Results Test (Google) | Does this page qualify for a special display in Google? Checks Google's rules. |
| Schema Markup Validator (schema.org) | Is this valid schema.org markup? Shows all types and properties, even ones Google doesn't use. |
Fill in the address of your page, not the separate code: that way the tools see the page the way Google retrieves it. Always fix errors (a required property is missing or a value is invalid). Warnings are about recommended properties: only fill those in with real data. If you get "No items detected", check whether the JSON is valid, whether the type is written correctly and whether the page isn't blocked for Google. Test again after every change to your business details or your site.
What's not allowed
- Only describe what a visitor also sees on the page. No opening hours or prices other than those on your site.
- Don't put a
revieworaggregateRatingabout your own business in your ownLocalBusinessblock. Google doesn't show stars for that. Some plugins add that automatically: check it. - No made up or misleading data. In case of abuse, Google can take manual action: then your page no longer qualifies for special displays.
