Schema markup — also known as structured data — is code you add to your web pages to help search engines understand the content more precisely. Google uses this information to generate rich snippets: enhanced SERP results that show review stars, expandable questions and answers, product prices, navigation breadcrumbs and much more. The effect on click-through rate can be substantial: according to several SEO studies, results with rich snippets achieve a 20% to 30% higher CTR than standard results in the same position. If you're in fifth place with an FAQ rich snippet and your competitor is fourth without markup, you could get more clicks than them. This guide shows you how to implement the most useful schema types with real code, how to test them and what to expect in terms of timing and results.
Sources: Google Search Central, Search Gallery; Backlinko (2023)
What schema markup is and how it works technically
Schema markup is a standardised vocabulary of semantic tags defined by Schema.org, a collaboration between Google, Bing, Yahoo and Yandex launched in 2011. There are three formats for implementing it: JSON-LD, Microdata and RDFa. Google officially recommends JSON-LD because it sits in a <script> block separate from the body of the HTML document, making maintenance easier and deployment less risky. With JSON-LD you don't need to change the page's HTML structure — you can add and remove schema without touching the visible markup. Microdata and RDFa, on the other hand, require you to add attributes to existing HTML elements, which makes them more invasive and harder to manage. JSON-LD code is best placed in the page's <head>, but Google also reads it correctly when it's in the <body>.
When Googlebot indexes your page, it extracts the information from the JSON-LD code and uses it to build Google's internal Knowledge Graph. If the information in the code matches the visible content of the page and complies with Google's guidelines, the site becomes eligible to show the corresponding rich result. Important: eligible doesn't mean guaranteed. Google decides at its discretion when and whether to show rich snippets, based on factors such as query relevance, site authority and the space available in the SERP. Perfectly valid markup might not produce visible rich snippets for months, or it might appear within a week. Matching the markup to the visible content is essential: Google penalises sites that use structured data to describe content users can't see or to mislead users with false information.
The most useful types of schema markup for SEO
FAQPage — the most accessible for informational content
FAQPage schema is probably the easiest and most impactful type of rich snippet to get for content sites. When Google shows the FAQ rich snippet under your result, the preview can take up twice the vertical space of a normal result in the SERP, with two, three or even four expandable questions visible right in the results. Each expanded question shows the full answer without the user having to click through to the site — it seems like a disadvantage, but it actually builds trust and therefore CTR among people who are genuinely interested. Implementation is simple: you need a page with at least two question-answer pairs and the corresponding JSON-LD code. The FAQ content in the markup must match the FAQs visible on the page exactly (or almost exactly) — you can't put different questions in the code from the ones the user sees.
<script type="application/ld+json">
{"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How much does a website cost?",
"acceptedAnswer": {
"@type": "Answer",
"text": "The cost ranges from €500 for simple solutions to €15,000 for complex business websites."
}}]}
</script>
Product — essential for e-commerce
Product schema lets you show the product price, stock availability, average rating and number of reviews in the SERPs, directly under the organic result. For e-commerce, this is one of the most powerful types of markup: a result showing "4.8 stars (247 reviews) — €89.90 — In stock" immediately grabs attention and filters for users with high purchase intent. The required fields are name and at least one of description, image, brand or review. The fields that trigger rich results are offers (for price and availability) and aggregateRating (for the stars). Google requires reviews to be genuine and collected directly from users — you can't add fake reviews or ones you wrote yourself to the markup. Platforms such as WooCommerce and Shopify add Product schema automatically, but it's worth checking that they include all the necessary fields and that prices are updated in real time.
BreadcrumbList — better navigation in the SERPs
BreadcrumbList schema turns the URL shown in Google results from a generic string into a readable breadcrumb trail such as "Home > Blog > SEO > Schema Markup". It isn't an eye-catching rich snippet like stars or FAQs, but it significantly improves the readability of the result and helps users understand where they are on the site before clicking. Google often shows the breadcrumb instead of the raw URL, making the result look more professional and clearer. Implementation is simple: it's a list of objects, each with an id (the URL), a name (the text to display) and a numerical position. Interestingly, the breadcrumb in the markup can differ from the actual URL structure — you can show a more logical hierarchy even if your permalink structure is different.
Article and NewsArticle — for blogs and media
Article schema is the right type of markup for blog posts, guides and editorial content. It makes the page eligible for Google's Top Stories carousel and for previews in Google Discover. The main fields are headline (the title), author (with the author's name and profile URL), datePublished and dateModified (dates in ISO 8601 format), image (required for Top Stories, at least 1200px wide) and publisher (with the organisation's name and logo). The dateModified field is particularly important for SEO: updating it every time you substantially update the content signals to Google that the article is actively maintained, which can help rankings for queries where freshness is a factor.
How to test your markup: essential tools
Google's Rich Results Test is the official and most reliable tool: enter the page URL or paste the code directly, and it tells you whether the markup is valid, which rich results it can trigger and whether there are any errors or warnings. The interface also shows a preview of how the rich result might look, although this is only indicative. To use the Rich Results Test, go to search.google.com/test/rich-results. The second essential tool is the Schema Markup Validator at validator.schema.org: it's more permissive than the Rich Results Test because it validates against the full Schema.org standard, not just the types Google supports. It's useful for checking the syntax of your JSON-LD before it gets indexed. For monitoring after deployment, Google Search Console shows under "Search > Search results" the rich snippets your site is actually displaying, with impression and click data broken down by type.
- Code kept separate from the visible HTML
- Easy to add and remove
- No risk of breaking the layout
- Easy to generate dynamically with PHP/JS
- Google's officially preferred format
- Embedded in HTML elements
- More invasive and harder to maintain
- Risk of breaking the layout when editing
- Still supported by Google but not recommended
- Only useful in specific legacy contexts
Schema markup for local businesses: LocalBusiness
LocalBusiness schema is essential for any business with a physical location that wants to rank in local searches. It lets you specify the name, address, phone number, opening hours, geographic coordinates, service area and Google Business Profile URL. When implemented correctly and consistent with the information on Google Business Profile, it strengthens the local signal and can help visibility in the Local Pack (the map box that appears for local searches). The openingHoursSpecification field is particularly useful because it lets you set different hours for different days, including holidays. For professionals such as lawyers, doctors and consultants, there is also the ProfessionalService type, which extends LocalBusiness with fields specific to professions. Consistency between the markup, the website and the Google Business Profile is essential: discrepancies in the name, address or phone number (the so-called NAP citations) can confuse Google and reduce local visibility.
Common mistakes when implementing schema markup
Schema markup and AI Overviews: how things will change
With the introduction of AI Overviews (the AI-generated answers that appear at the top of the SERPs for many queries), the role of schema markup is evolving. Early research suggests that sites with well-implemented structured data are cited more often in AI Overviews, probably because the markup helps the AI understand and extract key information more precisely. The Schema.org vocabulary keeps being updated with new types and properties — in 2024 properties were added for AI disclosure (indicating whether content is AI-generated) and for scientific data. For sites that publish content consistently, implementing robust, up-to-date schema markup is one of the few technical SEO factors where you can have a concrete, measurable impact in a relatively short time.
Schema markup for professional services websites
Freelancers and consultants — lawyers, accountants, doctors, marketing consultants — have a range of specific schema types available that go well beyond the generic LocalBusiness. The LegalService type lets you specify areas of legal practice, while MedicalBusiness includes fields for specialisations, insurance agreements and hospital facilities. For a digital consultant or a marketing agency, the ProfessionalService type combined with Organization and WebSite forms the basis of complete professional markup. An often overlooked detail is Person schema: added to the author page or the about page, it tells Google who the professional is, with name, image, description, social profiles and website URL. This helps build E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) — the system Google uses to assess the credibility of sources. For anyone producing YMYL content (Your Money or Your Life — health, finance, law), having detailed Author schema with links to their LinkedIn profile, publications and credentials can make a significant difference to rankings.
A particularly useful and underused schema type is HowTo: if you have a step-by-step guide, HowTo markup lets Google show the steps directly in the SERP as a rich result, with the step name, image and description. Practical tutorials with numbered steps are ideal candidates. Likewise, VideoObject schema is essential if you publish videos: without it, Google can index the videos but won't show them as rich results in search. The key fields are name, description, thumbnailUrl, uploadDate and duration in ISO 8601 format (for example PT5M30S for a 5-minute-30-second video). Platforms such as YouTube automatically add VideoObject schema to videos published there, but if you host videos directly on your own site you have to add it manually.
How to monitor rich snippets in Google Search Console
Once you've implemented schema markup, Google Search Console becomes your main dashboard for tracking results. In the Search appearance section you'll find reports for each type of rich result Google has detected on your site: FAQs, reviews, products, breadcrumbs and others. For each type you see three key pieces of information: valid URLs (correct markup with no errors), URLs with warnings (markup present but with non-blocking issues) and URLs with errors (markup present but invalid). Clicking a specific type shows you which pages have problems and what kind of error Google reports — from a missing required field to out-of-range values. The key thing to understand is that a valid URL doesn't automatically mean it will show rich snippets: Google filters further based on site quality, page authority and query relevance. The report also shows impression and click data broken down by rich result type, letting you measure the direct impact of the markup on CTR. If 6–8 weeks after implementation you still see no impressions in the rich result reports, it's a sign that Google doesn't yet consider the site or page authoritative enough to show that type of rich result — the priority then becomes building domain authority through content marketing and link building.
Implementing structured data correctly requires knowledge of Google's guidelines and attention to technical detail. If you want your site to appear in rich results, take a look at the SEO service or contact me for an analysis of your existing markup and an implementation plan.
If you want to apply this to your own project, take a look at my SEO and online visibility service: clear prices from €200/month, a free quote and a reply within 24 hours.