Skip to content
6.9Intermediate9 min

Local Schema Markup: Structured Data for Local Search

Lucas BlochbergerUpdated 17 October 2026
Definition

Local schema markup uses structured data (JSON-LD) to provide search engines and AI systems with machine-readable business information: LocalBusiness type, address, opening hours, geo-coordinates and service areas.

Key Takeaways

  • LocalBusiness schema is the foundation for local structured markup; always use the most specific sub-type such as Restaurant, Dentist, or Plumber.
  • JSON-LD is Google's recommended and fastest-growing format, reaching 41% of all pages in 2024.
  • Only name and address (PostalAddress) are mandatory; geo-coordinates, telephone, openingHoursSpecification, priceRange, and areaServed significantly increase utility.
  • For Austria: set addressCountry to AT, telephone number in +43 format, and geo-coordinates with decimal point instead of comma.
  • NAP data must be identical across schema, Google Business Profile, and citations; sameAs links the website to external profiles.
  • Review markup about your own business on your own website always counts as self-serving for LocalBusiness, even with genuine customer reviews or embedded widgets; Google shows no star rich results for it.
  • LocalBusiness markup is rare at only 3.97% prevalence on mobile pages, making it a real differentiation opportunity for traditional and AI-powered search.

Anyone operating a local business in Austria is found almost exclusively via Google. The market leader holds 81.87% market share among search engines (as of May 2026), followed by Bing with 9.01% and DuckDuckGo with 2.75%. With 8.69 million internet users and a penetration of 95.3%, organic and local search decisively determines whether a practice, trade business, or restaurant gains customers.

For Google and increasingly AI systems to reliably capture the key data of a local business, plain text alone is insufficient. Local schema markup delivers this data in machine-readable form. Despite its high utility, adoption is low: According to Web Almanac 2024, LocalBusiness markup appears on only 3.97% of mobile pages, making it the third most common JSON-LD type but far from standard practice. Therein lies a real differentiation opportunity. This article shows how LocalBusiness schema is structured, how to implement it correctly for an Austrian business, and which errors are the most common causes of missing rich results.

Why local schema markup matters for local visibility

Structured data are code annotations that explicitly describe a page's content rather than merely displaying it. Google recommends the JSON-LD format, a data object embedded in a <script> tag. Web Almanac 2024 confirms the trend: JSON-LD has grown from 34% in 2022 to 41% of all pages in 2024 and is considered Google's preferred and fastest-growing format.

For local businesses, LocalBusiness schema serves three functions. It makes location, opening hours, and contact data clearly evaluable, it can extend how the business appears in search results, and it provides AI systems like Google AI Overviews or Perplexity with structured facts for their answers. Unlike a Google Business Profile that you maintain on a platform, the markup belongs to your own website and strengthens its authority as the primary data source.

Managing expectations is important: schema is not a direct ranking factor. It does not improve position but rather comprehensibility and presentation. Value emerges indirectly through better data quality, higher click-through rates via rich results, and consistent signals to search and AI systems.

LocalBusiness schema in relation to Organization and WebSite

Three schema types are frequently confused. Organization: describes the company as a legal or business entity without mandatory local reference. It suits brands and supra-regional firms. WebSite: describes the website itself, for instance to define the site name Google shows in search results. Since November 21, 2024, Google no longer shows the sitelinks search box, a former use of WebSite markup. LocalBusiness: is a specialization of Organization and Place and describes a business with a physical location and local service area. Only LocalBusiness carries address, geo-coordinates, and opening hours as core properties.

Choosing the right sub-type is crucial. Google explicitly recommends using the most specific LocalBusiness sub-type, such as Restaurant, DaySpa, or HealthClub. Schema.org defines an extensive hierarchy: Dentist for a dental practice, Plumber for a plumber, Restaurant for gastronomy, LegalService for a law firm. If no suitable sub-type exists, use the general type LocalBusiness. An incorrect or overly general type wastes context that specialized sub-types provide through additional properties such as servesCuisine or menu.

Mandatory and recommended properties in detail

Google specifies two mandatory properties in its documentation: name and address of type PostalAddress. Without these two fields, the markup is invalid. All other properties are recommended and significantly increase utility.

  • name: the exact business name, identical to Google Business Profile and citations.
  • address (PostalAddress): structured address with streetAddress, postalCode, addressLocality (city), addressRegion (state), and addressCountry (for Austria AT).
  • geo (GeoCoordinates): latitude and longitude as decimal degrees. Precise coordinates improve mapping in Maps, especially for ambiguous addresses.
  • telephone: the telephone number in international format with country code, for Austria starting with +43.
  • openingHoursSpecification: machine-readable opening hours with dayOfWeek, opens, and closes in 24-hour format.
  • priceRange: the price level, for example as a symbol (€€) or range.
  • areaServed: the service area, especially useful for businesses without walk-in customers that travel to clients.
  • url, image, sameAs: website, photo, and links to profiles such as Google Business Profile, Facebook, or business directories.

JSON-LD step by step: Example for a Vienna business

The following example shows valid markup for a fictional dental practice in Vienna. Note the Austria-specific formatting: addressCountry set to AT, telephone number in +43 format, and decimal point (not comma) for geo-coordinates.

```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"@id": "https://www.zahnarzt-beispiel.at/#praxis",
"name": "Zahnarztpraxis Dr. Beispiel",
"image": "https://www.zahnarzt-beispiel.at/praxis.jpg",
"url": "https://www.zahnarzt-beispiel.at",
"telephone": "+43 1 5550123",
"priceRange": "€€",
"address": {
"@type": "PostalAddress",
"streetAddress": "Mariahilfer Straße 100",
"postalCode": "1070",
"addressLocality": "Wien",
"addressRegion": "Wien",
"addressCountry": "AT"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 48.198765,
"longitude": 16.345678
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "08:00",
"closes": "17:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Friday",
"opens": "08:00",
"closes": "13:00"
}
],
"sameAs": [
"https://www.google.com/maps/place/?q=place_id:BEISPIEL",
"https://www.facebook.com/zahnarztbeispiel"
]
}
</script>
```

Place the block in the <head> or <body> of the respective page, ideally on the homepage or contact page with complete location data. The @id attribute with a unique URL is important once you link multiple entities or represent multiple locations. Every piece of information provided must also be visible on the page.

NAP consistency: schema, Google Business Profile, and citations

NAP stands for Name, Address, Phone. These three data points must be identical across all sources: in LocalBusiness schema, in Google Business Profile, and in local citations such as herold.at, firmenabc.at, or business directories. Inconsistencies, such as "Str." versus "Straße" or different telephone formats, weaken the search engine's trust in the data and can impair local visibility.

The schema is the machine-readable confirmation of what appears in the Google Business Profile and citations. The sameAs property explicitly links your website to these external profiles and helps search engines recognize the entries as the same entity. Therefore maintain a single authoritative NAP spelling and adopt it unchanged everywhere. Consistency across multiple platforms is relevant because consumers check multiple sources anyway: According to a US survey by BrightLocal, 77% of consumers use at least two review platforms in their research and 41% even three or more.

AggregateRating and Review markup for local businesses

Reviews are a strong lever in the local context. According to BrightLocal's US study, 81% of consumers read reviews of local businesses via Google, and 75% read online reviews "always" or "regularly." AggregateRating lets you mark up the average rating and review count. On a local business's own website, however, this does not earn stars in search results.

The reason is Google's rule on self-serving reviews. If the business being reviewed controls the reviews about itself, pages with LocalBusiness or Organization markup are ineligible for review stars. This also applies to genuine customer reviews on your own website, whether they sit directly in the markup or come through an embedded widget showing Google or Facebook reviews. Google recommends aggregateRating and review in LocalBusiness markup only for sites that capture reviews about other local businesses, such as review platforms. Stars for a local business therefore appear via its Google Business Profile, for example in the Local Pack, or on such platforms. For any review markup, ratingValue, reviewCount, and bestRating must exactly match the data visibly displayed on the page. Fabricated or aggregated values without visible evidence violate the guidelines and can lead to manual actions.

Multi-location, service-area businesses, and @id linking

Businesses with multiple locations require a separate LocalBusiness object per branch with its own address, geo-coordinates, and @id. Create a dedicated landing page for each location and place the appropriate markup there. Via the @id, locations can be consistently referenced and linked to a parent Organization object describing the parent company.

  • Multiple branches: per location a separate URL, separate @id, and separate LocalBusiness object with location-specific data.
  • Service-area businesses: Businesses without a public location, such as mobile tradespeople, omit the street address but still state city, postal code, state, and country in address, because Google lists address as a required property. They also define areaServed with the cities or regions they serve.
  • @id as anchor: A unique @id per entity prevents search engines from merging multiple locations into one entity and allows clean links between Organization and individual branches.

Validation and troubleshooting

Published markup must be tested. Three tools complement each other.

  • Rich Results Test: Google's test shows whether the markup can produce a rich result and which properties are missing or incorrect. It is the first point of contact for LocalBusiness.
  • Schema Markup Validator (schema.org): This validator checks syntactic and structural correctness according to the Schema.org specification, independent of Google rich results.
  • URL Inspection in Search Console: With “Test live URL”, it shows how Google currently renders the page. It does not list LocalBusiness as a detected item, but the rendered HTML shows whether the JSON-LD block arrives in the crawled state, for instance with client-side rendered JavaScript.

Treat warnings and errors separately. Errors prevent rich results and must be fixed; warnings concern missing recommended properties and should be supplemented but are not blocking.

Local schema markup in the context of AI search and AEO

Structured data gains importance with the rise of AI-powered search. Google AI Overviews, ChatGPT, and Perplexity preferentially draw facts from clearly structured, unambiguously attributed sources. LocalBusiness schema delivers exactly that: machine-readable statements about location, opening hours, and services that an AI system can directly incorporate into an answer.

For Answer Engine Optimization (AEO), this means: Consistent, visible, and schema-confirmed data increase the likelihood that a local business is correctly mentioned in AI answers. The markup does not replace good content, but it reduces ambiguity. When address, telephone number, and opening hours match in both visible text and JSON-LD, the risk decreases that an AI system uses outdated or incorrect data from third-party sources. Given the low prevalence of LocalBusiness markup, clean implementation is a realistic advantage over competitors.

Common errors in local schema markup

  • Incorrect or overly general sub-type: LocalBusiness instead of Dentist or Restaurant wastes specific context and additional properties.
  • Inconsistent NAP data: Discrepancies between schema, Google Business Profile, and citations weaken the search engine's trust.
  • Markup without visible page content: Data in JSON-LD that does not appear on the page violates Google's guidelines and can be ignored or penalized.
  • Self-serving review markup: Review markup about your own business on your own website earns no stars for LocalBusiness, even with genuine customer reviews.
  • Incorrect formats: Telephone numbers without +43, opening hours not in 24-hour format, or geo-coordinates with comma instead of period lead to errors.
  • Multiple locations in one object: Branches without their own @id and own page merge and lose their individual visibility.

Measuring success: Rich results, impressions, and CTR

You measure the success of local schema markup primarily in Google Search Console. However, there is no dedicated enhancement report for LocalBusiness there: Search Console offers rich result status reports only for certain types such as breadcrumbs, product snippets, or review snippets. To check whether Google can read the markup, use the Rich Results Test. It supports LocalBusiness and renders the page the way Google processes it. You measure the impact in the performance report via impressions and CTR.

  • Fix errors: Test every changed page with the Rich Results Test and fix reported errors promptly.
  • Observe impressions: Rising impressions for local queries after implementation suggest better capture. Filter the performance report by Austria and by place names.
  • Compare CTR: Compare the CTR of affected pages before and after the markup for the same queries.
  • Check indexing: Use URL Inspection to verify that the page is indexed and that the JSON-LD block appears in the rendered HTML.

Note that rich results are not guaranteed. Google decides based on query and quality whether to display an enhanced snippet. Therefore evaluate success via the combination of valid markup, impressions, and CTR, not a single metric.

Further reading

Local schema markup is a technical foundation that only realizes its value in combination with consistent data. Start with the most specific LocalBusiness sub-type, fill the mandatory fields name and address plus the most important recommended properties, and keep NAP identical across website, Google Business Profile, and citations. Validate the result with the Rich Results Test and URL Inspection and monitor the impact in Search Console. Since only a small fraction of pages use LocalBusiness markup, clean implementation is a concrete and achievable advantage for Austrian businesses in traditional and AI-powered search.

Data & Statistics

Google holds 81.87% market share among search engines in Austria (Bing 9.01%, DuckDuckGo 2.75%, Yahoo! 2.57%), as of May 2026.

StatCounter Global Stats - Search Engine Market Share Austria (2026)

LocalBusiness markup appears on 3.97% of mobile pages and is the third most common JSON-LD type after WebSite (12.73%) and Organization (7.16%).

Web Almanac 2024 (HTTP Archive) - Structured Data (2024)

JSON-LD has increased from 34% (2022) to 41% of all pages (2024) and is considered the format preferred by Google.

Web Almanac 2024 (HTTP Archive) - Structured Data (2024)

Required properties for LocalBusiness are name and address (PostalAddress); Google recommends the most specific sub-type such as Restaurant, DaySpa or HealthClub.

Google Search Central - Local Business (LocalBusiness) structured data (2025)

81% of consumers read reviews of local businesses via Google; 75% read online reviews 'always' or 'regularly' (US study).

BrightLocal - Local Consumer Review Survey 2024 (US, 1,141 respondents) (2024)

77% of consumers use at least two review platforms in their research, 41% use three or more (US study).

BrightLocal - Local Consumer Review Survey 2024 (US, 1,141 respondents) (2024)

In Austria there are 8.69 million internet users with a penetration of 95.3% (beginning of 2025).

DataReportal - Digital 2025: Austria (2025)
Summarize with AIChatGPTClaudePerplexity

Opens the chat with a prepared prompt.

Frequently asked questions

What is the difference between LocalBusiness, Organization, and WebSite schema?
Organization describes the company as a business entity without mandatory local reference, WebSite describes the website itself, and LocalBusiness is a specialization of Organization and Place for businesses with a physical location. Only LocalBusiness carries address, geo-coordinates, and opening hours as core properties. Also use the most specific sub-type such as Dentist, Restaurant, or Plumber.
Which properties are mandatory in local schema markup?
Google specifies two mandatory properties: name (the business name) and address of type PostalAddress. Without these two fields, the markup is invalid. All other properties such as geo, telephone, openingHoursSpecification, priceRange, and areaServed are recommended and significantly increase utility but are not mandatory.
How do I format address and telephone number for an Austrian business in schema markup?
Set addressCountry to AT and structure the address into streetAddress, postalCode, addressLocality (city), and addressRegion (state). The telephone number should be in international format with country code, starting with +43. Specify geo-coordinates as decimal degrees with a period as separator, not a comma.
May I mark up my own reviews with AggregateRating markup?
Not for star rich results. If a business controls the reviews about itself, they count as self-serving, and pages with LocalBusiness markup are then ineligible for review stars. This also applies to genuine customer reviews on your own website and to embedded widgets such as Google or Facebook reviews. Stars for a local business appear via its Google Business Profile or on third-party review platforms.
How do I represent multiple locations in local schema markup?
Create a separate LocalBusiness object for each branch with its own address, geo-coordinates, and @id, and create a dedicated landing page for each location. Use the @id to link locations consistently and connect them to a parent Organization object. Businesses without a public location omit the street address but still state city, postal code, state, and country in address, and add areaServed with the cities or regions they serve.
How do I check if my local schema markup is correct?
Use three tools: Google's Rich Results Test to check for possible rich results, the Schema Markup Validator from schema.org for structural correctness, and URL Inspection in Search Console to see in the rendered HTML whether the JSON-LD block reaches Google. Fix errors first and supplement warnings.
Does local schema markup help with AI search like Google AI Overviews or Perplexity?
Yes, indirectly. AI systems preferentially draw facts from clearly structured, unambiguously attributed sources. LocalBusiness schema provides machine-readable statements about location, opening hours, and services that an AI system can directly adopt. When visible text and JSON-LD match, the risk decreases that outdated or incorrect data from third-party sources is used.

How does your website perform?

Get a free, AI-powered SEO report of your website by email: technical SEO, on-page, keywords & competitors. No obligation.

Get a free SEO audit →

Or go straight to Local SEO Agency Vienna