Skip to content

Structured data and schema markup guide

Structured data and schema markup explained clearly: from JSON-LD through rich results to implementation. The complete guide for better Google snippets and more clicks.

Mag. Deni Khachukaev

Mag. Deni Khachukaev

Founder & Technical Director

March 7, 202624 min read

With over 13 years of experience in web development and SEO, Deni leads the technical direction of GoldenWing. Specialized in performance optimization, technical SEO, and modern web technologies.

Structured data and schema markup guide

Key Takeaways

  • ✓Structured data help search engines understand the content of your website better, and reward you with rich results in the search results.
  • ✓JSON-LD is the format Google recommends for structured data and it is the easiest one to implement.
  • ✓Rich results can raise the click through rate by 20 to 40 percent without your ranking changing at all.
  • ✓For e-commerce shops the product schema is close to indispensable: prices, ratings and availability right in Google search.
  • ✓A faulty schema implementation can lead to penalties, so regular testing with the Google rich results test is a must.
  • ✓FAQ schema, HowTo schema and LocalBusiness schema are the three most effective schema types for smaller Austrian companies.
  • ✓WordPress plugins such as Rank Math or Yoast SEO make implementing schema possible without programming knowledge.
Table of Contents

Structured data and schema markup guide

Have you ever wondered why some Google results show stars, prices, FAQ accordions or recipe images, and your website does not? The answer is structured data (also called schema markup).

Structured data are machine readable code snippets that help search engines understand the content of your website. They are one of the most underrated levers in SEO, and at the same time one of the most effective. At GoldenWing, as an SEO agency in Vienna with more than 3 years of experience, we have measured the effect hundreds of times: structured data implemented properly can raise the click through rate by 20 to 40 percent.

In this guide we explain everything you need to know about structured data, from the basics through the most important schema types to the concrete implementation with code examples.

What is structured data?

Structured data are standardised code formats that describe the content of a web page for search engines. Instead of only analysing the visible text (which search engine crawlers do anyway), structured data deliver explicit information about the content.

An example: if your website says "Wiener Schnitzel, 14.90 euros", Google does not automatically know whether that is a product, a recipe or a menu. With structured data you tell Google unambiguously: "This is a recipe named Wiener Schnitzel, with a preparation time of 45 minutes, 520 kcal and a rating of 4.8 out of 5 stars."

The standard: Schema.org

Structured data are based on the vocabulary of Schema.org, a joint project of Google, Microsoft (Bing), Yahoo and Yandex. Schema.org defines more than 800 types and 1,500 properties that can describe everything: people, companies, products, events, recipes, articles, FAQs and much more.

The major search engines have agreed on this shared vocabulary, which simplifies implementation enormously. You write the code once and Google, Bing and other search engines understand it equally.

Why does structured data matter for SEO?

Structured data have three central advantages for your SEO:

1. Rich results (rich snippets)

Google can enrich your search results with additional information: star ratings, prices, images, FAQ accordions, breadcrumbs and more. These extended snippets catch the eye immediately in the search results and achieve clearly higher click rates.

2. Better understanding

Search engines understand the context of your content better. That can indirectly help your ranking, because Google matches your page to the right search queries.

3. Knowledge graph and entities

Structured data help Google recognise your company as an entity in the knowledge graph. That strengthens your brand authority and can lead to a knowledge panel of your own.

JSON-LD versus microdata versus RDFa: which format?

Free Consultation

Let's talk about your project. No strings attached.

Book a Call

There are three formats for structured data. Here is the comparison:

FormatRecommended by GoogleDifficultyMaintenanceSeparate from HTML
JSON-LDYes (preferred)EasyEasyYes (in a `

JSON-LD (JavaScript object notation for linked data) is the format Google explicitly recommends. The code is placed in a `<script>` tag in the `<head>` or `<body>`, completely separate from the HTML markup.

Advantages of JSON-LD:

  • Easy to implement, no need to touch existing HTML
  • Easy to maintain, changes happen in one separate block of code
  • Flexible, can be generated dynamically with JavaScript
  • Preferred by Google, an explicit recommendation in the Google documentation
  • Friendly to debug, clearly structured, readable code

An example of a simple JSON-LD snippet:

{ "@context": "https://schema.org", "@type": "LocalBusiness", "name": "GoldenWing", "description": "Web design and SEO agency in Vienna", "url": "https://goldenwing.at", "telephone": "+43-XXX-XXXXXXX", "address": { "@type": "PostalAddress", "streetAddress": "Beispielstraße 1", "addressLocality": "Wien", "postalCode": "1010", "addressCountry": "AT" }, "geo": { "@type": "GeoCoordinates", "latitude": 48.2082, "longitude": 16.3738 }, "openingHoursSpecification": { "@type": "OpeningHoursSpecification", "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"], "opens": "09:00", "closes": "18:00" } }

Microdata

Microdata is embedded directly in the HTML. It uses special HTML attributes such as `itemscope`, `itemtype` and `itemprop` to mark up the content.

Example:

<div itemscope itemtype="https://schema.org/LocalBusiness"> <h1 itemprop="name">GoldenWing</h1> <p itemprop="description">Web design and SEO agency in Vienna</p> </div>

Microdata works but is harder to maintain, because the code sits inside the HTML. A change to the layout can damage the schema by accident.

Our recommendation

Use JSON-LD. It is simpler to implement, easier to maintain and preferred by Google. In all of our projects at GoldenWing we use JSON-LD exclusively.

The most important schema types at a glance

Schema.org offers more than 800 types. Here are the most important ones for Austrian websites and online shops:

1. Organization and LocalBusiness

Describes your company: name, address, contact details, opening hours, logo.

When to use it: on every company website. LocalBusiness for local businesses, Organization for companies operating across regions.

Rich result: knowledge panel, local pack in Google Maps.

{ "@context": "https://schema.org", "@type": "LocalBusiness", "name": "GoldenWing", "image": "https://goldenwing.at/logo.png", "@id": "https://goldenwing.at/#organization", "url": "https://goldenwing.at", "telephone": "+43-XXX-XXXXXXX", "priceRange": "€€", "address": { "@type": "PostalAddress", "addressLocality": "Wien", "addressCountry": "AT" }, "sameAs": [ "https://www.linkedin.com/company/goldenwing360", "https://www.instagram.com/goldenwing360" ] }

2. Product

Describes a product: name, price, availability, ratings, images.

When to use it: on every product page of an online shop.

Rich result: price, availability and rating stars right in Google search.

{ "@context": "https://schema.org", "@type": "Product", "name": "Premium web design package", "description": "Professional web design including SEO optimisation", "brand": { "@type": "Brand", "name": "GoldenWing" }, "offers": { "@type": "Offer", "price": "2990", "priceCurrency": "EUR", "availability": "https://schema.org/InStock", "priceValidUntil": "2026-12-31" }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.9", "reviewCount": "47" } }

3. FAQPage

Describes a page with frequently asked questions and answers.

When to use it: on FAQ pages, product pages with an FAQ section, blog articles with an FAQ part.

Rich result: expandable questions and answers right in the search results.

{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "What does a professional website cost?", "acceptedAnswer": { "@type": "Answer", "text": "A professional website costs between 2,000 and 15,000 euros depending on scope. Simple websites start at 2,000 euros, e-commerce shops at 5,000 euros." } }, { "@type": "Question", "name": "How long does it take to build a website?", "acceptedAnswer": { "@type": "Answer", "text": "Building a website usually takes 4 to 12 weeks, depending on the scope and complexity of the project." } } ] }

4. Article and BlogPosting

Describes an article or blog post: title, author, date, image.

When to use it: on blog articles, news posts, guides.

Rich result: article carousel, top stories (for news).

5. BreadcrumbList

Describes the navigation structure (breadcrumb navigation) of a page.

When to use it: on every page with breadcrumb navigation.

Rich result: breadcrumbs instead of the URL in the search results.

{ "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://goldenwing.at/" }, { "@type": "ListItem", "position": 2, "name": "Blog", "item": "https://goldenwing.at/de/blog" }, { "@type": "ListItem", "position": 3, "name": "Schema Markup Guide", "item": "https://goldenwing.at/de/blog/strukturierte-daten-schema-markup-guide" } ] }

6. HowTo

Describes a step by step set of instructions.

When to use it: for tutorials, instructions and guides with concrete steps.

Rich result: steps with images right in Google search.

7. WebSite (with SearchAction)

Describes your website and enables the sitelinks search box in Google.

When to use it: once on the home page.

Rich result: a search box right in the search results.

{ "@context": "https://schema.org", "@type": "WebSite", "name": "GoldenWing", "url": "https://goldenwing.at", "potentialAction": { "@type": "SearchAction", "target": "https://goldenwing.at/suche?q={search_term_string}", "query-input": "required name=search_term_string" } }

Implementing schema markup step by step

Here is the approach we have proven for implementing structured data:

Step 1: audit the current situation

Before you start, check which structured data already exist on your website. Many CMS systems and themes add basic schema automatically.

Tools for the audit:

  • Google rich results test (search.google.com/test/rich-results)
  • Schema markup validator (validator.schema.org)
  • Google Search Console, section enhancements

Test your website with our SEO checker as well, to get an overview of your SEO status.

Step 2: set priorities

Not every schema type matters equally for every website. Our recommendation by priority:

Priority 1 (must have):

  • Organization and LocalBusiness (every company)
  • BreadcrumbList (every multi page website)
  • WebSite with SearchAction (home page)

Priority 2 (should have):

  • FAQPage (when FAQ content exists)
  • Product (for online shops)
  • Article and BlogPosting (for blogs)

Priority 3 (can have):

  • HowTo (for instructions)
  • Event (for events)
  • Recipe (for recipes)
  • VideoObject (for video content)
  • Review and AggregateRating (for ratings)

Step 3: generate the schema

You have three options for creating schema markup:

Option A: write it by hand

The most flexible method for developers. You write the JSON-LD directly and place it in the `<head>` or `<body>` of your page.

Option B: use schema generators

Tools such as the Google structured data markup helper, the Merkle schema markup generator or TechnicalSEO.com help you create schema without coding.

Option C: use CMS plugins

For WordPress and other CMS there are plugins that generate schema automatically (see the next section).

Step 4: implementation

Place the JSON-LD snippet in the `<head>` of your page (preferred) or at the end of the `<body>`. In Next.js (as we use it at GoldenWing) it looks like this:

export default function BlogPost({ post }) { const jsonLd = { "@context": "https://schema.org", "@type": "BlogPosting", "headline": post.title, "datePublished": post.publishedAt, "dateModified": post.updatedAt, "author": { "@type": "Organization", "name": "GoldenWing" }, "publisher": { "@type": "Organization", "name": "GoldenWing", "logo": { "@type": "ImageObject", "url": "https://goldenwing.at/logo.png" } }, "description": post.excerpt, "mainEntityOfPage": { "@type": "WebPage", "@id": \`https://goldenwing.at/de/blog/\${post.slug}\` } }; return ( <> <script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }} /> {/* page content */} </> ); }

Step 5: test

After implementing, always test:

  1. Google rich results test, shows whether Google recognises your schema and can generate rich results
  2. Schema markup validator, checks technical correctness
  3. Google Search Console, shows errors and warnings over time

Testing tools for structured data

Here are the most important tools we use at GoldenWing every day:

Google rich results test

URL: search.google.com/test/rich-results

The most important tool. It shows you:

  • Whether your schema is valid
  • Which rich results are possible
  • Errors and warnings
  • A preview of the rich result

Tip: do not only test the live URL, test code snippets directly in the tool as well. That way you can try changes before you put them live.

Schema markup validator

URL: validator.schema.org

Checks the technical correctness of your schema markup against the Schema.org specification. This tool is stricter than the Google rich results test and also shows warnings for missing recommended properties.

Google Search Console

In Google Search Console you find an overview of all recognised structured data on your website under "enhancements". Here you see:

  • Which pages have valid structured data
  • Errors and warnings (with the affected URLs)
  • Trends over time
  • Impressions and clicks for rich results

Our recommendation: check Search Console at least once a week for new errors. Schema problems can arise from website updates, theme changes or plugin updates.

Other helpful tools

ToolPurposeCost
Screaming Frog SEO SpiderCrawls all pages and checks the schemaFree (up to 500 URLs)
Ahrefs site auditSchema check as part of the SEO auditFrom 99 $ a month
Semrush site auditSchema analysis and recommendationsFrom 119 $ a month
Schema AppSchema management for enterpriseOn request

WordPress plugins for structured data

If your website runs on WordPress you have it particularly easy. These plugins generate schema markup automatically:

Rank Math SEO

Our favourite at GoldenWing. Rank Math offers:

  • Automatic schema for all page types (articles, products, pages)
  • More than 15 schema types built in (FAQ, HowTo, Recipe, Product and so on)
  • A schema editor with a visual interface
  • Custom schema, your own JSON-LD snippets per page
  • Automatic detection of FAQ schema for FAQ blocks
  • Import of Yoast SEO schema

The free version is enough for most websites. Rank Math Pro (59 dollars a year) offers additional schema types and automatic video schema detection.

Yoast SEO

Yoast SEO (the most used SEO plugin) offers schema features as well:

  • Automatic Organization and Person schema on the home page
  • Article schema for blog posts
  • BreadcrumbList schema automatically
  • WebSite schema with SearchAction

Yoast is solid but offers fewer schema types than Rank Math. For extended schemas (FAQ, HowTo, Product) you need Yoast SEO Premium (99 euros a year) or an additional plugin.

Schema Pro (by Brainstorm Force)

A dedicated schema plugin with:

  • More than 20 schema types
  • Automatic schema assignment by page type
  • Custom fields integration (ACF, Pods)
  • A white label option for agencies

Ideal if you use a different SEO plugin (All in One SEO for example) and still need comprehensive schema markup.

Plugins specific to WooCommerce

For WooCommerce shops we additionally recommend:

  • JEPP Schema, automatic product schema with all variants
  • Review Schema, rating schema for WooCommerce products
  • WooCommerce SEO by Yoast, extends Yoast with schema specific to WooCommerce

You find more about WordPress SEO as a whole in our WordPress SEO guide.

Rich results: which types exist?

Rich results (formerly rich snippets) are extended search results generated from structured data. Here are all rich result types supported by Google:

Rich result typeSchema typeDescription
ArticleArticle, BlogPostingThumbnail, date, author
BreadcrumbBreadcrumbListNavigation structure instead of the URL
FAQFAQPageExpandable questions and answers
How-toHowToSteps with images
ProductProductPrice, availability, rating
Local businessLocalBusinessAddress, opening hours, rating
RecipeRecipeImage, preparation time, calories
EventEventDate, location, tickets
VideoVideoObjectThumbnail, duration, upload date
Job postingJobPostingTitle, salary, location
CourseCourseProvider, description
Software appSoftwareApplicationRating, price
Sitelinks search boxWebSite + SearchActionSearch field in the SERPs

Important: not every schema leads automatically to a rich result. Google decides itself whether and when rich results are shown. Structured data are the precondition, not a guarantee. The likelihood rises with the quality of your content and the authority of your domain.

E-commerce schema: the complete guide

For online shops schema markup is particularly valuable. Here are the most important schema types for e-commerce:

Product schema (mandatory for every shop)

The product schema shows price, availability and ratings right in the search results. Studies show that product rich results can raise the click through rate by up to 35 percent.

Required fields:

  • name (product name)
  • image (at least one image)
  • offers (price and availability)

Recommended fields:

  • description (product description)
  • brand (brand)
  • sku (article number)
  • gtin13, gtin8 or mpn (EAN, UPC, MPN)
  • aggregateRating (ratings)
  • review (individual reviews)

{ "@context": "https://schema.org", "@type": "Product", "name": "Handmade leather bag Vienna", "image": [ "https://example.com/tasche-front.jpg", "https://example.com/tasche-seite.jpg" ], "description": "Handmade leather bag from Austrian cowhide", "sku": "LT-001", "gtin13": "9780201379624", "brand": { "@type": "Brand", "name": "Wiener Ledermanufaktur" }, "offers": { "@type": "Offer", "url": "https://example.com/ledertasche", "priceCurrency": "EUR", "price": "189.00", "priceValidUntil": "2026-12-31", "availability": "https://schema.org/InStock", "seller": { "@type": "Organization", "name": "Wiener Ledermanufaktur" } }, "aggregateRating": { "@type": "AggregateRating", "ratingValue": "4.7", "bestRating": "5", "worstRating": "1", "ratingCount": "89" } }

Product variants

For products with variants (size, colour) there are two approaches:

Approach 1: several offers

{ "@context": "https://schema.org", "@type": "Product", "name": "T-Shirt Classic", "offers": [ { "@type": "Offer", "name": "Size S", "price": "29.90", "priceCurrency": "EUR", "availability": "https://schema.org/InStock" }, { "@type": "Offer", "name": "Size M", "price": "29.90", "priceCurrency": "EUR", "availability": "https://schema.org/InStock" }, { "@type": "Offer", "name": "Size L", "price": "29.90", "priceCurrency": "EUR", "availability": "https://schema.org/OutOfStock" } ] }

Approach 2: AggregateOffer

{ "@context": "https://schema.org", "@type": "Product", "name": "T-Shirt Classic", "offers": { "@type": "AggregateOffer", "lowPrice": "29.90", "highPrice": "34.90", "priceCurrency": "EUR", "offerCount": "3", "availability": "https://schema.org/InStock" } }

Collection and category pages

For category pages Google recommends the ItemList schema:

{ "@context": "https://schema.org", "@type": "ItemList", "name": "Leather bags", "numberOfItems": 24, "itemListElement": [ { "@type": "ListItem", "position": 1, "url": "https://example.com/ledertasche-classic" }, { "@type": "ListItem", "position": 2, "url": "https://example.com/ledertasche-premium" } ] }

E-commerce schemas specific to Austria

For Austrian online shops we additionally recommend:

  • Delivery information through `shippingDetails` (delivery time, shipping cost to Austria)
  • Right of return through `hasMerchantReturnPolicy` (the 14 day right of return under the FAGG)
  • VAT clearly marked as a gross price (in Austria B2C is always gross)

The 10 most common mistakes with structured data

From our experience as an SEO agency we keep seeing the same mistakes:

Mistake 1: schema for content that is not visible on the page

Google requires that the content described in the structured data is visible to the user as well. Hidden content or false statements can lead to a manual action.

Mistake 2: false ratings in the schema

Ratings have to come from real users. Self written reviews or invented rating values violate Google's guidelines and can lead to a penalty.

Mistake 3: outdated prices in the product schema

If the price in the schema does not match the actual price on the page, Google can treat that as spam. Make sure prices are generated dynamically and that priceValidUntil is current.

Mistake 4: misusing FAQ schema

FAQ schema is meant only for genuine questions and answers, not for advertising copy, product descriptions or general information. Google has tightened the guidelines and now shows FAQ rich results only for authoritative pages.

Mistake 5: getting schema nesting wrong

Nested schemas (Organization inside a Product for example) have to be referenced correctly. Wrong nesting leads to parsing errors.

Mistake 6: duplicate schemas on one page

Several competing schemas of the same type on one page confuse search engines. There should be only one main schema per page (one product schema on a product page, for example).

Mistake 7: leaving out required fields

Every schema type has required fields. Without them Google shows no rich results. Always check the official Google documentation for the current requirements.

Mistake 8: forgetting the schema after a website relaunch

During a relaunch or a theme change structured data often get lost. Create a schema inventory before every relaunch and check after launch whether everything still works.

Mistake 9: no regular review

Schema is not set and forget. Google changes its requirements, plugins get updated and content changes. Check your structured data at least once a month.

Mistake 10: too many schema types at once

Some webmasters mark up every element on the page with schema. That is not necessary and can even be counterproductive. Focus on the schema types that generate rich results and matter for your business.

Frequently asked questions

Does structured data improve my Google ranking directly?

Structured data are not a direct ranking factor, Google has confirmed that several times. They do have a strong indirect effect though: rich results raise the click through rate by 20 to 40 percent, which in turn sends a positive signal to Google. They also help Google understand your content better and match it to relevant queries. In practice we at GoldenWing regularly see ranking improvements after implementing schema, especially for informational queries.

Can Google penalise me for using schema markup?

Yes, if you violate Google's guidelines for structured data. The most common reasons for penalties: false or misleading information in the schema (invented ratings for example), schema for content that is not visible on the page, and spam schema (FAQ schema for advertising copy for example). Stick to the official guidelines and test regularly, then you are on the safe side.

How long does it take until Google shows rich results?

After implementing structured data it usually takes 2 to 4 weeks until Google notices the change and shows rich results. You can speed the process up by submitting the affected URLs for reindexing in Google Search Console. Keep in mind: Google never guarantees that rich results will be shown, even with technically correct schema Google decides whether a rich result makes sense for a particular query.

Which schema plugin is the best for WordPress?

We recommend Rank Math SEO as an all in one solution. It offers the most extensive schema features (more than 15 types, custom schema, automatic detection) and has an intuitive interface. The free version is enough for most websites. Yoast SEO Premium is a solid choice as an alternative if you already use Yoast. For extended requirements without switching your SEO plugin we recommend Schema Pro as a standalone plugin.

Do structured data have to be on every page?

No, but on every page that can benefit from rich results. Organization and LocalBusiness schema should be on the home page and ideally on every page. BreadcrumbList schema belongs on every page with breadcrumbs. Product schema only on product pages, FAQPage schema only on pages with FAQ content. Quality beats quantity: a few correct schemas are better than many faulty ones.

How do I test whether my structured data work?

Three steps: 1) the Google rich results test (search.google.com/test/rich-results) shows you immediately whether your schema is valid and which rich results are possible. 2) The schema markup validator (validator.schema.org) checks technical correctness against Schema.org. 3) Google Search Console under "enhancements" shows you over time whether Google recognises your structured data and whether errors occur. Test after every change and check Search Console at least weekly.

Do structured data work for Bing and other search engines as well?

Yes. Schema.org was developed jointly by Google, Microsoft (Bing), Yahoo and Yandex. All of these search engines understand and use structured data. Bing even has a few extensions of its own (for Bing Webmaster Tools for example). In Austria Google dominates with more than 93 percent market share, but Bing is gaining importance through its integration into Microsoft Edge and Copilot. The implementation is identical, you do not have to do anything extra for Bing.

Is structured data worth it for small websites?

Absolutely. Small websites and local businesses in particular benefit disproportionately from structured data. LocalBusiness schema improves visibility in the local Google pack, FAQ schema can double the click rate on page 1, and product schema makes even a small online shop look professional in the search results. With WordPress plugins such as Rank Math the implementation takes a few hours and costs nothing extra.

Schema markup for local businesses in Austria

For local businesses in Austria schema markup is a particularly effective SEO instrument. Structured data implemented correctly can raise the click rate in the search results by up to 30 percent and clearly improve the chance of a prominent placement in the local pack.

LocalBusiness schema: the basics

The LocalBusiness schema is the basis for every local business. It tells Google where your company is, when it is open and which services you offer.

A complete LocalBusiness schema for an Austrian company:

'''json

{

"@context": "https://schema.org",

"@type": "ProfessionalService",

"name": "Your Company GmbH",

"image": "https://www.ihrunternehmen.at/logo.png",

"url": "https://www.ihrunternehmen.at",

"telephone": "+43-1-1234567",

"email": "info@ihrunternehmen.at",

"address": {

"@type": "PostalAddress",

"streetAddress": "Mariahilfer Straße 100",

"addressLocality": "Wien",

"addressRegion": "Wien",

"postalCode": "1060",

"addressCountry": "AT"

},

"geo": {

"@type": "GeoCoordinates",

"latitude": 48.1951,

"longitude": 16.3472

},

"openingHoursSpecification": [

{

"@type": "OpeningHoursSpecification",

"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],

"opens": "09:00",

"closes": "18:00"

}

],

"priceRange": "EUR",

"areaServed": [

{"@type": "City", "name": "Wien"},

{"@type": "State", "name": "Niederösterreich"},

{"@type": "State", "name": "Burgenland"}

],

"sameAs": [

"https://www.facebook.com/ihrunternehmen",

"https://www.linkedin.com/company/ihrunternehmen",

"https://www.instagram.com/ihrunternehmen"

]

}

'''

Particulars for Austrian companies

Important points that are often overlooked:

  • addressCountry: always use "AT" (ISO 3166-1), not "Österreich" or "Austria"
  • telephone: use the international format with the +43 country code
  • areaServed: define your catchment area precisely. Google uses this information for local queries
  • Currency: use "EUR" as the priceRange entry, not "Euro" or the euro symbol

Schema types for specific industries

Schema.org offers specialised types for various industries that allow more detailed information:

  • Restaurant: cuisine, reservations, menu URL, delivery options
  • MedicalBusiness and doctors: speciality, accepted insurance, medical fields
  • LegalService and lawyers: areas of law, size of the firm
  • RealEstateAgent: types of property, regions
  • FinancialService: banking products, advisory services
  • AutoRepair and garages: brands, services, certifications

A tip from practice: always pick the most specific schema type. A restaurant should not only use 'LocalBusiness' but 'Restaurant'. The more specific the type, the more relevant the structured data are for Google.

Ratings and review schema

For local businesses in Austria ratings are a critical ranking factor. The AggregateRating schema shows stars right in the search results:

'''json

{

"@type": "AggregateRating",

"ratingValue": "4.8",

"reviewCount": "127",

"bestRating": "5",

"worstRating": "1"

}

'''

Important: Google allows AggregateRating only for certain schema types. For 'LocalBusiness' and its subtypes it is permitted, but not for your home page in general. Place this schema only on pages that actually contain or aggregate ratings.

Multi location schema for companies with branches

Companies with several locations in Austria should create a separate page with its own LocalBusiness schema for every location. Connect them through the 'Organization' schema of the main page:

  • Every location gets its own URL (/standorte/wien-1060/, /standorte/graz/ for example)
  • Every location has its own complete LocalBusiness schema
  • The main page points to the individual locations through 'department' or 'subOrganization'
  • Make sure the NAP data (name, address, phone) match the Google business profile exactly

Advanced schema types: event, course, recipe and more

Besides the standard schema types, Schema.org offers a range of specialised types that can produce rich results in the search results. Many companies in the German speaking market do not use these advanced types yet, which is a big opportunity.

Event schema

The event schema is particularly valuable for organisers, event locations and companies that run events regularly. Google shows events prominently in the search results, often with date, location and price.

Important properties for events in Austria:

  • startDate and endDate: in ISO 8601 format with time zone ('2026-04-15T19:00:00+02:00' for central European summer time, for example)
  • location: physical ('Place') or online ('VirtualLocation') or both ('MixedEventAttendanceMode')
  • offers: ticket prices and availability, particularly important for the presentation in the search results
  • organizer: link to your company profile
  • eventStatus: 'EventScheduled', 'EventPostponed', 'EventCancelled', particularly important for timely communication
  • performer: relevant for concerts or shows

Best practice: create a separate page with dedicated event schema for every event. Update 'eventStatus' promptly when something changes, Google treats outdated event data negatively.

Course schema

For education providers, coaches and companies that offer training, the course schema is a powerful tool. Google shows course information in special rich results.

Relevant properties:

  • provider: your company as the course provider
  • courseMode: 'online', 'onsite' or 'blended'
  • hasCourseInstance: concrete dates and sessions
  • offers: prices and booking options
  • educationalLevel: target group (beginner, advanced, expert)
  • inLanguage: 'de-AT' for German language courses in Austria

HowTo schema

The HowTo schema suits instructions and tutorials perfectly. Google can show them as step by step guides right in the search results.

Uses in the German speaking market:

  • Instructions from the trades ("how do I fix a dripping tap")
  • Software tutorials ("creating an Excel pivot table")
  • Cooking recipes with the recipe schema (not HowTo)
  • DIY projects and craft instructions

Important: Google has limited the visual presentation of HowTo rich results since 2023. On mobile devices HowTo results are no longer shown as rich results. The structured data still help Google understand the content better, and desktop users continue to benefit.

Video schema

If you embed videos on your website (from YouTube or Vimeo for example), you should definitely implement VideoObject schema. Videos with schema markup appear in the video results 2.7 times more often.

  • name, description, thumbnailUrl: basic information
  • uploadDate and duration: for correct presentation
  • contentUrl or embedUrl: the URL of the video
  • transcript: particularly valuable for SEO, Google can index the content of the video

Schema markup and AI search: preparing for AI overviews

With the introduction of Google AI overviews (formerly SGE) and the growing importance of search systems supported by AI, schema markup has gained a completely new dimension. Structured data are the key to staying visible in the era of AI search as well.

How AI overviews use structured data

Google AI overviews generates summarising answers right in the search results. The system prefers to draw on websites that provide clear, machine readable data. In this context structured data are no longer an optional extra but a basic requirement.

What AI overviews processes particularly well:

  • FAQ schema: question and answer pairs are often quoted directly in AI overviews
  • HowTo schema: step by step instructions are ideal sources for answers generated by AI
  • Product schema: product properties, prices and ratings are used for purchase recommendations
  • Article schema: author, publication date and organisation help validate the source

E-E-A-T and schema markup

Google's E-E-A-T principle (experience, expertise, authoritativeness, trustworthiness) is supported directly by schema markup:

Signalling experience and expertise:

  • Use the 'author' schema with detailed information about the writer
  • Link to author profiles with 'sameAs' (LinkedIn, specialist portals)
  • Use 'qualifications', 'hasCredential' and 'alumniOf' in the person schema

Strengthening authoritativeness and trustworthiness:

  • 'Organization' schema with 'foundingDate', 'numberOfEmployees' and 'award'
  • 'isPartOf' and 'publisher' links for editorial content
  • 'citation' and 'sourceOrganization' for scientific or data based statements

The speakable schema marks passages of text that are particularly suited to being read aloud. With voice assistants spreading (Google Assistant, Alexa, Siri) this schema becomes ever more relevant.

'''json

{

"@type": "WebPage",

"speakable": {

"@type": "SpeakableSpecification",

"cssSelector": [".article-summary", ".key-takeaway"]

}

}

'''

A recommendation for the Austrian market: although speakable is still marked as beta, implementing it is already worthwhile. 23 percent of Austrian households now use voice assistants, and the share is rising.

A schema strategy that lasts

To optimise your website for AI based search in the long run we recommend the following measures:

  1. Feed the knowledge graph: link your Organization schema with Wikidata where possible. That strengthens your presence in the Google knowledge graph.
  2. Define entities clearly: use '@id' references consistently across your whole website so Google understands the relations between your content.
  3. Regular updates: update your structured data every quarter. Schema.org publishes new types and properties regularly.
  4. Monitoring: check every month in Google Search Console whether your structured data are recognised correctly. Pay particular attention to warnings and errors.
  5. Testing before deployment: use the rich results test and the schema markup validator before every deployment. Ideally automate this step in your CI/CD pipeline.

Schema markup automation: generating structured data dynamically

On websites with dozens or hundreds of pages, maintaining structured data by hand quickly becomes a bottleneck. Dynamic schema generation solves that problem by producing structured data automatically from existing data sources: consistent, free of errors and always current.

Why static schema markup does not scale

Imagine an Austrian trades business with 15 locations that maintains a separate page for every one. With manual schema maintenance, changes of address, new opening hours or a changed phone number have to be updated in three places at once: in the visible content, in the meta data and in the JSON-LD schema. The error rate rises exponentially with the number of pages.

Typical problems with static schema:

  • Prices in the product schema no longer match the current prices
  • Opening hours in the LocalBusiness schema are outdated, especially after public holidays or a change of season
  • New blog articles get no article schema because the editorial team forgets it
  • Event data stay in the schema after the event and produce warnings in Search Console

The architecture of a dynamic schema solution

The most efficient approach is schema generation on the server that derives structured data straight from your database or your CMS. The basic principle is simple: the data already exist in your system, you only have to transform them into the right JSON-LD format.

For a website based on Next.js or Nuxt this works through a central schema component that renders the fitting schema automatically depending on the page type. The logic checks the content type of the current page and generates the corresponding JSON-LD object with all available data.

Data sources for automatic schema:

  • CMS fields: title, description, author, publication date, categories, images
  • Product database: price, availability, SKU, ratings, variants
  • The Google My Business API: current opening hours, ratings, photos
  • The event calendar: event data, times, ticket prices, availability

Rule based schema generation by page type

Define a schema template with clear rules for every page type of your website:

Blog posts and guides get an `Article` schema filled automatically with author, date, main image and publisher information. If the article contains an FAQ section (recognisable from H3 headings with a question mark), an `FAQPage` schema is generated in addition.

Service pages get a `Service` schema combined with `LocalBusiness` and optionally `AggregateRating` as soon as enough ratings exist. The price range is derived automatically from a price table or calculator data.

Team and about pages get an `Organization` schema with all locations as `SubOrganization` and individual `Person` schemas for team members. Link these to the respective social media profiles through `sameAs` entries.

Location pages get a `LocalBusiness` schema with precise geo coordinates, opening hours (including special hours for Austrian public holidays), accepted payment methods and the catchment area through `areaServed`.

Automating validation and monitoring

Automatically generated schema is only as good as its validation. Integrate the following checks into your deployment process:

  • Validation at build time: check on every deployment whether all generated JSON-LD blocks are syntactically correct and match the Schema.org specifications
  • Required field checks: make sure no required fields are empty, a product schema without a price or a LocalBusiness without an address is worthless
  • Search Console monitoring: watch the structured data reports in Google Search Console weekly for new errors or warnings
  • Rich result tracking: document which pages receive rich results and correlate that with the schema types you implemented

Avoiding the pitfalls of automation

Even with automated schema generation there are typical sources of error you should keep in mind:

  • Excessive nesting: do not generate nested schemas with five or more levels. Google prefers flat, unambiguous structures.
  • Orphaned references: if an author profile is deleted, the article schema must not point to a person that does not exist. Build in fallback logic.
  • Avoid duplicates: make sure several schema blocks of the same type do not end up on one page because different components generate schema independently of each other.
  • Exclude test data: filter staging content, drafts and test products reliably out of the schema generation.

With well considered automation you reduce the manual effort of maintaining structured data by up to 90 percent and at the same time make sure your data are always current and free of errors, an investment that pays for itself quickly through better rich results and higher click rates.

Conclusion: structured data are not a nice to have

Structured data are an indispensable part of every modern SEO strategy. They cost nothing (apart from the one off implementation time), can raise the click rate by 20 to 40 percent and help search engines understand your content better.

Our recommendation for getting started:

  1. Start with the basics: Organization and LocalBusiness plus BreadcrumbList plus WebSite
  2. Extend as needed: FAQPage, Product, Article, depending on the type of website
  3. Test regularly: Google rich results test plus Search Console
  4. Use tools: WordPress plugins such as Rank Math make the implementation easy
  5. Stay current: Google changes the requirements regularly

At GoldenWing we implement structured data as standard in every web project, from the simple company website to the complex e-commerce shop. With more than 3 years of experience in technical SEO work we know exactly which schema types have the biggest impact for your business.

Do you want to make sure your website uses the full potential of structured data? Test your page with our SEO checker or contact us for a professional schema audit. We analyse your current implementation and show you where the biggest opportunities are.

Expert Opinions

“Strukturierte Daten helfen uns, Inhalte besser zu verstehen – aber sie sind kein Ranking-Faktor. Ihr größter Vorteil liegt in den Rich Results, die die Klickrate steigern.”

John Mueller — Search Advocate bei Google

“Schema Markup ist eine der am meisten unterschätzten technischen SEO-Maßnahmen.”

Alexis Sanders — Senior Technical SEO bei Merkle

“JSON-LD ist unser bevorzugtes Format – es lässt sich sauber im Head platzieren und beeinflusst das sichtbare HTML nicht.”

Martin Splitt — Developer Advocate bei Google

Frequently Asked Questions

Maschinenlesbare Informationen im HTML, die Suchmaschinen helfen, Inhalte zu verstehen. Sie ermöglichen Rich Results wie Sternebewertungen oder FAQs.

JSON-LD wird von Google bevorzugt und im Script-Tag eingebunden. Microdata und RDFa werden in HTML-Tags eingefügt. JSON-LD ist am einfachsten.

Organization, LocalBusiness, Product, FAQPage, Article, BreadcrumbList und HowTo.

Google Rich Results Test (search.google.com/test/rich-results) oder Schema Markup Validator (validator.schema.org).

Nein, kein direkter Rankingfaktor. Aber indirekt über bessere CTR durch Rich Results.

Did you find this article helpful?

Share it with others.

Your Contact Person

Mag. Deni Khachukaev

Mag. Deni Khachukaev

Founder & Technical Director

With over 13 years of experience in web development and SEO, Deni leads the technical direction of GoldenWing. Specialized in performance optimization, technical SEO, and modern web technologies.

Ready for your project?

We bring the same dedication and expertise you see in our articles to every client project.