Structured Data & Schema Markup
Learn how to implement structured data and schema markup to earn rich results in Google. Covers types, implementation, testing, and SEO impact.
Structured data is code added to your web pages that helps search engines understand the meaning and context of your content. When implemented correctly, it can trigger rich results in Google — enhanced search listings with stars, images, FAQs, breadcrumbs, and more. While not a direct ranking factor, rich results significantly increase click-through rates and visibility.
- Structured data is code (usually JSON-LD) that tells search engines exactly what your content represents — articles, products, events, FAQs, etc.
- It enables rich results — enhanced SERP listings with visual elements like stars, prices, images, and FAQ dropdowns.
- Structured data is not a direct ranking factor, but rich results increase CTR, which drives more traffic.
- JSON-LD is the recommended format — embedded in a
<script>tag, separate from the HTML content. - Google provides a Rich Results Test to validate your implementation before deployment.
If you want the full breakdown, continue below.
What Is Structured Data?
Structured data uses a standardised vocabulary (schema.org) to describe the content on your pages in a machine-readable format.
Without structured data, Google must infer what your content represents by analysing text, HTML elements, and context. With structured data, you explicitly tell Google:
- This page is an Article written by Bukhosi Moyo on 2026-03-04
- This is a LocalBusiness located at 123 Main Road, Pretoria
- This section contains FAQs with specific questions and answers
- This is a Product priced at R8,999 with a 4.5-star rating
Schema Types Most Useful for SEO
Organisation Schema
Defines your business entity for Google's Knowledge Graph:
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Symaxx",
"url": "https://symaxx.co.za",
"logo": "https://symaxx.co.za/logo.png",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+27-xx-xxx-xxxx",
"contactType": "customer service"
},
"sameAs": [
"https://www.linkedin.com/company/symaxx",
"https://www.facebook.com/symaxx"
]
}
Place on: Homepage
LocalBusiness Schema
For businesses serving local customers:
{
"@context": "https://schema.org",
"@type": "ProfessionalService",
"name": "Symaxx",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Road",
"addressLocality": "Pretoria",
"addressRegion": "Gauteng",
"postalCode": "0001",
"addressCountry": "ZA"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": "-25.7479",
"longitude": "28.2293"
}
}
Place on: Homepage and location pages
Article Schema
For blog posts and documentation:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "What Is SEO?",
"description": "A complete beginner's guide to search engine optimisation.",
"author": {
"@type": "Person",
"name": "Bukhosi Moyo"
},
"datePublished": "2026-03-04",
"dateModified": "2026-03-04"
}
Place on: Blog posts, documentation pages
FAQ Schema
Adds expandable FAQ questions directly in search results:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does SEO take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most SEO campaigns show measurable results within 3-6 months..."
}
}
]
}
Place on: Pages with FAQ sections
BreadcrumbList Schema
Shows breadcrumb navigation in search results:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Resources", "item": "https://symaxx.co.za/resources" },
{ "@type": "ListItem", "position": 2, "name": "SEO", "item": "https://symaxx.co.za/resources/seo" },
{ "@type": "ListItem", "position": 3, "name": "Technical SEO", "item": "https://symaxx.co.za/resources/seo/technical-seo" }
]
}
Place on: All pages with breadcrumb navigation
Other Useful Schema Types
| Schema Type | Rich Result | Use Case |
|---|---|---|
| Product | Price, availability, reviews | E-commerce product pages |
| Review / AggregateRating | Star ratings | Product/service reviews |
| HowTo | Step-by-step with images | Tutorial pages |
| Video | Video thumbnail with duration | Pages with embedded video |
| Event | Date, time, location | Event listing pages |
| Service | Service details | Service pages |
Implementation Format: JSON-LD
Google recommends JSON-LD (JavaScript Object Notation for Linked Data) as the preferred structured data format.
Why JSON-LD:
- Separate from HTML content — no risk of breaking page layout
- Easy to add and modify
- Can be dynamically generated
- Google's recommended format
Where to place JSON-LD:
Add it in a <script> tag in the <head> or <body> of the page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Structured Data & Schema Markup"
}
</script>
Other Formats (Not Recommended)
- Microdata — embedded in HTML attributes. Harder to implement and maintain.
- RDFa — similar to Microdata. Rarely used for SEO.
Use JSON-LD unless you have a specific reason not to.
Testing & Validation
Google Rich Results Test
URL: search.google.com/test/rich-results
- Paste your URL or code
- View which rich result types are detected
- Identify errors and warnings
- Preview how rich results will appear
Schema Markup Validator
URL: validator.schema.org
- Validates against the full schema.org specification
- More detailed than the Rich Results Test
- Identifies structural issues
Google Search Console — Enhancements
After deployment, monitor structured data in Search Console:
- Navigate to the "Enhancements" section
- View reports for each schema type detected
- Identify pages with errors, warnings, and valid markup
- Track rich result eligibility over time
Common Structured Data Mistakes
Marking up content that does not exist on the page. Structured data must describe content visible on the page. Adding FAQ schema for questions not on the page violates Google's guidelines.
Incorrect nesting. Schema types have specific property requirements. Validate with the Rich Results Test before deploying.
Missing required properties. Each schema type has required fields. Missing them prevents rich result eligibility.
Spammy markup. Fake reviews, misleading product information, or self-serving FAQ schema can result in a manual action from Google.
Not monitoring after deployment. Structured data can break when templates change. Monitor Search Console Enhancements regularly.
Key Takeaways
- Structured data tells Google exactly what your content represents using machine-readable code.
- It enables rich results that increase visibility and click-through rates.
- JSON-LD is the recommended format — clean, separate from HTML, and easy to maintain.
- Essential schema types: Organisation, Article, FAQ, BreadcrumbList, and LocalBusiness.
- Always validate with Google's Rich Results Test before deployment.
- Monitor structured data health in Google Search Console Enhancements.
Quick Structured Data Checklist
- Organisation schema on homepage
- Article schema on blog posts and documentation
- BreadcrumbList schema on content pages
- FAQ schema on pages with FAQ sections
- LocalBusiness schema on location pages (if applicable)
- All schema validated with Rich Results Test
- No markup for content not visible on the page
- Required properties present for each schema type
- JSON-LD format used (not Microdata)
- Monitored in Search Console Enhancements monthly
Tools & Resources (Coming Soon)
- Schema Markup Generator (Coming soon)
- Rich Results Preview (Coming soon)
- Structured Data Validator (Coming soon)
Related SEO Documentation
More from Structured Data & Schema Markup
Was this helpful?