top of page

Schema Markup Implementation Guide

  • Mar 19
  • 26 min read

Updated: Apr 28

The complete technical guide to structured data that helps search engines and AI understand your website


WHAT IS SCHEMA

Schema is a shared vocabulary that websites use to label their content for machines.

Two paragraphs of plain text on a website look the same to a human and to a search engine. The human reads them and understands. The machine sees a sequence of words and has to guess what those words mean. Is "Sarah Sherman" a person, a product, a place? Is "2010" a date, a price, a quantity? Is the page about a company, an article, an event?


Schema removes the guesswork. It's a small block of code (called JSON-LD) that sits invisibly in the page's source and tells the machine exactly what's there: this is a Person, named Sarah Sherman, who founded an Organization, called Illustrated Domain, in the year 2010. The information was already on the page in the visible text. Schema just labels it in a format machines can read directly, without having to interpret prose.


The vocabulary itself comes from schema.org: a project started by Google, Microsoft, Yahoo, and Yandex to standardize this labeling so every search engine and AI system would speak the same language. There are hundreds of types: Organization, Article, Product, Event, FAQ, Recipe, Review, Person, LocalBusiness, and so on. Each type has properties (a Product has a price, a SKU, an availability; an Event has a start date, a location, a ticket URL).


Why it matters now: AI assistants: ChatGPT, Perplexity, Claude, Gemini, the AI features inside Google itself increasingly answer questions by extracting facts from websites rather than sending users to read them. Schema is what makes the extraction reliable. A site without schema can still be cited, but a site with schema gets cited more accurately, more often, and with the right details attached.

That's it. Schema is labels on your content, written in a vocabulary machines were built to read. This is our technical guide to help you understand what schema is. Machine generated schema needs to be manually checked.


Added as JSON-LD in your page's <head>, schema identifies entities (people, organizations, products), relationships (author of article, employee of company), and attributes (price, rating, date) that power rich search results and AI citations.


Essential types: Organization, Article, FAQ Page, How To, Breadcrumb List, Product, Person, Review, WebSite.

Implementation: Manual JSON-LD code, CMS plugins, platform built-ins (Wix Studio has limited auto-generation), or developer assistance.


Validation: Google Rich Results Test.

Benefits: Rich search results, AI citation-friendliness, higher click-through rates.

Schema doesn't change what users see. It changes what machines understand.


What Schema Markup Actually Is

Two identical paragraphs on different websites:

Website A: "Sarah Sherman founded Illustrated Domain in 2010. 

The company has completed over 1,500 websites."

Website B (with schema): "Sarah Sherman founded Illustrated Domain in 2010. 

The company has completed over 1,500 websites."

To humans: Identical.


To search engines:

Website A: Just text. Search engines must infer who Sarah Sherman is, what Illustrated Domain is, what "founded" means, what "2010" refers to, whether 1,500 is significant.

Website B: Structured data explicitly states:

  • Sarah Sherman = Person entity (with name, job title, credentials)

  • Illustrated Domain = Organization entity

  • Founded = founding date property

  • 2010 = date value in ISO format

  • 1,500 websites = quantitative value describing company output


Schema makes implicit information explicit. 

It removes ambiguity. It tells machines exactly what they're looking at instead of making them guess.

That's why it matters for search engines (display rich results), AI systems (cite accurate information), voice assistants (answer questions precisely), and knowledge graphs (connect entities).


Why Schema Matters in 2026


Traditional SEO Benefits


Rich Results in Google:

When you search for a recipe, you see star ratings, cooking time, and calorie count right in the search results. That's schema markup at work.

When you search for an event, you see the date, time, and location without clicking through. Schema.

When you search for a product, you see the price, availability, and review ratings. Schema again.

These rich results also called rich snippets or enhanced results can significantly improve click-through rates compared to standard blue-link listings, though the impact varies by query type, position, and competition.


Rich results include:

  • Star ratings and review counts

  • Event dates, times, and locations

  • Recipe cooking times, calories, and ratings

  • Product prices and availability

  • FAQ expandable sections in search results

  • How-to step counts and time estimates

  • Breadcrumb navigation showing site hierarchy

  • Author information and publication dates

  • Video thumbnails and durations

  • Job posting details and salary ranges

Without schema, your listing is a blue link with a title and description. 

With schema, your listing is an information-rich preview that answers questions before someone even clicks.

More information in the listing means more qualified clicks. 

People who click already know what they're getting.


AI Search Benefits

This is where schema becomes increasingly important.

AI systems: ChatGPT, Perplexity, Gemini, Claude, and every AI-powered search experience being built right now can use schema to improve how they identify authoritative sources, extract factual information, attribute claims, understand entity relationships, determine content freshness, and parse complex information.


Here's why: AI models generate answers based on patterns in training data and retrieved content. When they need current, factual information who founded a company, when an event happened, what a product costs—structured data improves extraction reliability.

Schema provides that structure.


Example:

User asks ChatGPT: "Who founded Illustrated Domain and when?"

Without schema: AI must infer from prose. It might find "Sarah Sherman started Illustrated Domain" on one page, "founded in 2010" on another page, and "Sarah A. Sherman, founder" on a third page. It has to combine these fragments, which can introduce errors.

With schema: AI can read structured data: "founder": {"@type": "Person", "name": "Sarah A. Sherman"}, "foundingDate": "2010". Clearer extraction. Less ambiguity. Lower error risk.

Schema makes your content easier for machines to parse accurately. And in an AI-powered search world, clarity matters.


Important context: Schema helps machines interpret content but isn't required for indexing or citation. Many successfully cited pages have no schema. Think of schema as metadata that can improve how machines understand your content, not as a prerequisite for visibility.


Schema Basics: Understanding the Structure

Schema markup uses JSON-LD (JavaScript Object Notation for Linked Data). It's a specific format for representing structured data that search engines and AI systems can parse reliably.


Basic Structure

Every schema block has the same basic pattern:

{
"@context": "https://schema.org",
"@type": "TypeName",
"propertyName": "value",
"anotherProperty": "value"
}

@context: Always "https://schema.org". This tells parsers which vocabulary you're using.

@type: The schema type. Organization, Article, Person, Product, Event, etc.

Properties: Key-value pairs that describe attributes of the thing you're marking up.


Real Example

Here's what Organization schema looks like in practice:

{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Illustrated Domain",
"foundingDate": "2010",
"founder": {
"@type": "Person",
"name": "Sarah A. Sherman"
}
}

This tells search engines: 

Illustrated Domain is an Organization. 

It was founded in 2010. 

The founder is a Person named Sarah A. Sherman.


Where Schema Goes

Schema markup typically goes in the <head> section of your HTML, wrapped in a <script> tag with type="application/ld+json":

<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Illustrated Domain"
}
</script>

</head>
<body>
<!-- Your visible page content -->
</body>
</html>

Note: Schema can also be placed in the <body>, but <head> placement is standard practice and recommended.


The schema is invisible to users. It exists only for machines.

Each page can have multiple schema blocks for different types of content. A blog post might have Article schema, BreadcrumbList schema, and Person schema for the author—all on the same page, each in its own <script> block.


Essential Schema Types for Business Websites

Let's walk through the schema types that matter most for professional services firms, agencies, consultants, B2B companies, and service businesses. Each section includes complete, copy-paste-ready examples with explanations of what each property does.


1. Organization Schema

What it does: Defines your company identity. This is the foundation - the schema that tells search engines and AI systems who you are as a business entity.

When to use: Homepage and about page at minimum. Can also be included on other pages to reinforce company identity.


Complete Example:

{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"alternateName": "Your Company Alternate Name",
"url": "https://example.com",
"logo": "https://example.com/images/logo.png",
"description": "Brief description of what your company does and specializes in",
"foundingDate": "2020",
"founder": {
"@type": "Person",
"name": "Founder Name",
"jobTitle": "Founder & CEO"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Business Street",
"addressLocality": "Your City",
"addressRegion": "ST",
"postalCode": "12345",
"addressCountry": "US"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-555-123-4567",
"contactType": "customer service",
"email": "contact@example.com",
"availableLanguage": ["English"]
},
"sameAs": [
"https://www.linkedin.com/company/yourcompany",
"https://x.com/yourcompany",
"https://www.facebook.com/yourcompany"
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "X.X",
"reviewCount": "XX"
},
"numberOfEmployees": {
"@type": "QuantitativeValue",
"value": "XX"
}
}

Property Breakdown:

Required (minimum for valid schema):

  • @context: Always "https://schema.org"

  • @type: "Organization"

  • name: Your company legal name or DBA

  • url: Your website homepage URL


Highly Recommended (significantly improves utility):

  • logo: URL to your logo image. Minimum 112×112px, ideal 512×512px or larger. Used by Google in Knowledge Graph and search results.

  • description: One-sentence description of what your company does. Keep under 200 characters.

  • contactPoint: How to reach you. Helps with local SEO and AI citation accuracy.

  • address: Physical location. Critical for local businesses, helpful for all businesses.

  • sameAs: Array of URLs to your official social media profiles and other web presences. Helps search engines connect your brand across platforms.


Optional but Valuable:

  • Founding Date: Year founded (YYYY format). Builds authority—older companies signal stability.

  • founder: Who started the company. Connects Organization to Person entities.

  • Aggregate Rating: Overall review rating. Only include if you have genuine reviews (see Review schema section for critical warnings).

  • Number Of Employees: Company size. Can be exact number or range.

  • Alternate Name: How else your company is known (abbreviations, alternate names).


Common mistake: Including aggregateRating without having actual reviews. 

Google can penalize this. Only add ratings you can prove.


2. WebSite Schema

What it does: Defines your website and enables site links search box in Google search results.

When to use: Homepage.

Complete Example:

{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "Illustrated Domain",
"url": "https://illustrateddomain.com",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://illustrateddomain.com/search?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
}

Property Breakdown:

Required:

  • name: Website name

  • url: Homepage URL


Recommended:

  • Potential Action: Enables sitelinks search box (if your site has search functionality)

Why this matters: WebSite schema can enable the sitelinks search box in Google results, allowing users to search your site directly from search results. This is particularly valuable for sites with extensive content.


3. Local Business / Professional Service Schema

What it does: For businesses with physical locations serving customers. Provides local search signals and helps with "near me" searches.

When to use: If you have a physical office, storefront, or service area. If customers can visit you or you serve a defined geographic area.

Which type to choose:

LocalBusiness has many subtypes. Use the most specific one that matches your business:

  • Professional Service - Agencies, consultants, professional services firms

  • Store - Retail locations

  • Restaurant - Food service

  • Medical Business - Doctors, dentists, clinics (has further subtypes like Dentist, Physician)

  • Home And Construction Business - Contractors, plumbers, electricians

  • Legal Service - Attorneys, law firms

  • Financial Service - Accountants, financial advisors, banks

  • Automotive Business - Auto repair, car dealers

  • Lodging Business - Hotels, B&Bs


{

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

  "@type": "ProfessionalService",

  "name": "Your Company Name",

  "description": "Professional service provider offering custom web development and digital strategy",

  "url": "https://example.com",

  "telephone": "+1-555-123-4567",

  "email": "contact@example.com",

  "address": {

    "@type": "PostalAddress",

    "streetAddress": "123 Main Street",

    "addressLocality": "Your City",

    "addressRegion": "CA",

    "postalCode": "12345",

    "addressCountry": "US"

  },

  "geo": {

    "@type": "GeoCoordinates",

    "latitude": "37.7749",

    "longitude": "-122.4194"

  },

  "openingHoursSpecification": [{

    "@type": "OpeningHoursSpecification",

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

    "opens": "09:00",

    "closes": "17:00"

  }],

  "priceRange": "$$$",

  "areaServed": {

    "@type": "GeoCircle",

    "geoMidpoint": {

      "@type": "GeoCoordinates",

      "latitude": "37.7749",

      "longitude": "-122.4194"

    },

    "geoRadius": "50000"

  },

  "paymentAccepted": ["Cash", "Credit Card", "Invoice"],

  "aggregateRating": {

    "@type": "AggregateRating",

    "ratingValue": "X.X",

    "reviewCount": "XX",

    "bestRating": "5",

    "worstRating": "1"

  }

}

 


Property Breakdown:

  • Geo (GeoCoordinates): Latitude and longitude of your location. Get these from Google Maps—right-click your location and the coordinates appear.

  • Opening Hours Specification: Business hours. Can have multiple specifications for different day ranges or seasonal hours. Use 24-hour time format (09:00, not 9am).

  • PriceRange: General price level. Use $ (budget), $$ (moderate), $$$ (expensive), or $$$$ (luxury). Helps set expectations.

  • Area Served: Geographic area you serve. Can be city name, state, country, or GeoCircle with radius in meters (50000 = 50km radius).

  • Payment Accepted: Payment methods you accept. Helpful for local searches.


Why this matters: Local schema helps you appear in map results, local pack (the map + 3 listings that appear for local searches), and "near me" searches. Even if you're not a strictly local business, if you have a physical location, this schema helps.


4. Article Schema 

What it does: Defines blog posts, articles, news stories, and guides. Required for Google News, Google Discover, and increasingly important for AI citations. 

When to use: On every blog post, article page, news story, and long-form guide. 


Complete Example:

{

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

  "@type": "Article",

  "headline": "Schema Markup Implementation Guide",

  "description": "The complete technical guide to structured data that helps search engines and AI understand your website",

  "author": {

    "@type": "Person",

    "name": "Author Name",

    "jobTitle": "Content Strategist",

  },

  "publisher": {

    "@type": "Organization",

    "name": "Your Company Name",

    "logo": {

      "@type": "ImageObject",

      "width": 512,

      "height": 512

    }

  },

  "datePublished": "2026-04-18",

  "dateModified": "2026-04-18",

  "mainEntityOfPage": {

    "@type": "WebPage",

  },

  "articleSection": "SEO Strategy",

  "wordCount": 15800,

  "keywords": ["schema markup", "structured data", "SEO", "technical SEO", "AI search"]

}

Property Breakdown:

Required for eligibility for rich result features:

  • headline: Article title. Keep under 110 characters to avoid truncation in search results.

  • author: Who wrote it. Can be Person or Organization. If Person, include name at minimum; url and sameAs (LinkedIn, etc.) strengthen the connection.

  • publisher: Who published it. Must be Organization with logo. Logo must be ImageObject with url, width, and height.

  • datePublished: When first published. ISO 8601 format: YYYY-MM-DD.

  • image: Featured image. Must be at least 1200px wide. Google recommends 1200×675px (16:9 aspect ratio) or 1200×1200px (1:1).

Recommended:

  • dateModified: Last update date. Important for evergreen content you update over time. If article hasn't been updated, use same date as datePublished.

  • description: Article summary. 150-160 characters. Used in rich results and AI summaries.

  • mainEntityOfPage: URL of the article. Helps search engines understand canonical URL.

  • articleSection: Category or topic. Helps with topical clustering.

  • wordCount: Article length. Signals depth of coverage.

  • keywords: Main topics covered. Array of strings.

Image requirements (critical): Google is strict about images in Article schema. Minimum 1200px wide. Supported aspect ratios: 16:9, 4:3, 1:1. Format: JPG, PNG, WebP. The image must be directly related to the article content—don't use generic stock photos or your logo.


Common mistake: Using the same image for every article. 

Each article should have its own relevant featured image.


Why this matters for AI: Article schema is one of the most important schema types for AI citation. When AI systems look for authoritative information to cite, they prioritize content with clear Article schema that identifies the author, publisher, publication date, and topic. Without it, your content is less likely to be cited even if it's factually superior.


5. FAQPage Schema

What it does: Marks up FAQ content for display in search results as expandable questions. Also makes FAQ content easily extractable by AI systems.

When to use: On dedicated FAQ pages or any page with question-answer format content.

Important context: Visibility of FAQ rich results has been reduced in recent years and is now limited primarily to authoritative domains or specific query types. However, FAQ schema still benefits AI systems and can appear in search results for relevant queries.


Complete Example:{

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

  "@type": "FAQPage",

  "mainEntity": [

    {

      "@type": "Question",

      "name": "What is Illustrated Domain?",

      "acceptedAnswer": {

        "@type": "Answer",

        "text": "Illustrated Domain is a strategy-led digital studio that helps organizations turn ideas into intelligent, well-built brands. We align brand clarity, design, content, and technology so your digital presence functions as a system—not a collection of disconnected parts."

      }

    },

    {

      "@type": "Question",

      "name": "What services does Illustrated Domain provide?",

      "acceptedAnswer": {

        "@type": "Answer",

        "text": "We offer end-to-end digital services across brand, web, content, AI-driven search, and platform systems, including: Brand strategy and creative direction, Website design and development, UX and UI design, AI-driven search and Answer Engine optimization, Technical SEO and semantic search architecture, Content strategy, copywriting, and editorial systems, Custom development, automation, and integrations."

      }

    },

    {

      "@type": "Question",

      "name": "Do you only work on Wix?",

      "acceptedAnswer": {

        "@type": "Answer",

        "text": "No. We work across platforms and select systems based on strategy, scalability, editorial control, performance, and long-term maintainability. E-commerce, booking, and membership platforms. Analytics, performance tracking, and optimization. Launch management, training, and ongoing support."

      }

    },

    {

      "@type": "Question",

      "name": "What platforms and technologies do you use?",

      "acceptedAnswer": {

        "@type": "Answer",

        "text": "We work with Wix Studio, Wix Editor, Shopify, WordPress, Webflow, Framer, and custom or hybrid environments supported by cloud infrastructure such as AWS. We extend platforms using modern JavaScript, custom CMS architecture, APIs, automation, and server-side logic where needed."

      }

    }

  ]

}


Best Practices:

Question name:

  • Use the exact question people actually ask

  • Write it conversationally, the way someone would speak or type it

  • Include the question mark

  • Keep it specific enough to be useful, broad enough to match search intent

Answer text:

  • Provide complete, useful answers and don't truncate or tease

  • Include specific details: numbers, timelines, examples

  • Write in natural language, not keyword-stuffed copy

  • Can be multiple paragraphs if needed for complete answer

  • Plain text is safest HTML support is limited and can cause parsing issues

  • Avoid complex formatting; if you must format, stick to basic tags: <p>, <strong>, <em>

Number of questions: No limit. Add as many Question objects as you have legitimate FAQs. We've seen FAQPage schema with 50+ questions work perfectly fine.

Common mistakes:

  • Truncating answers to try to drive clicks (defeats the purpose)

  • Using promotional language instead of answering the question

  • Including HTML that breaks parsing

  • Adding questions that aren't actually on the page (Google can penalize this)


Why this matters: FAQ schema signals topical authority and provides structured Q&A data for AI systems. While rich result visibility has decreased, FAQ schema remains valuable for content that genuinely answers common questions. For AI systems, FAQ schema is ideal because each question-answer pair is a discrete, extractable unit of information.


6. HowTo Schema

What it does: Marks up step-by-step instructions for rich results showing steps, time estimates, and tools needed.

When to use: On guides, tutorials, how-to articles, instruction pages, procedural documentation.

Important context: HowTo rich result visibility varies by query type and has been inconsistent in recent years. However, HowTo schema remains valuable for procedural content and AI extraction.


Complete Example:

{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to Implement Schema Markup on Your Website",
"description": "Step-by-step guide to adding structured data to your website for better search visibility and AI citation-friendliness",
"image": "https://example.com/images/schema-guide.jpg",
"totalTime": "PT2H",
"estimatedCost": {
"@type": "MonetaryAmount",
"currency": "USD",
"value": "0"
},
"tool": [{
"@type": "HowToTool",
"name": "Text editor or code editor"
}, {
"@type": "HowToTool",
"name": "Google Rich Results Test"
}, {
"@type": "HowToTool",
"name": "Access to your website's HTML"
}],
"supply": [{
"@type": "HowToSupply",
"name": "Your website's existing content and business information"
}],
"step": [{
"@type": "HowToStep",
"name": "Choose Relevant Schema Types",
"text": "Identify which schema types are relevant for your content. Common types for business websites include Organization (company identity), Article (blog posts), FAQPage (Q&A content), LocalBusiness or ProfessionalService (if you have a physical location or service area), Person (team members and authors), BreadcrumbList (site navigation), and Product or Service (offerings). Review the Schema.org documentation for each type to understand required and recommended properties.",
"url": "https://example.com/blog/schema-guide#step1",
"image": "https://example.com/images/schema-step1.jpg"
}, {
"@type": "HowToStep",
"name": "Write JSON-LD Code",
"text": "Create JSON-LD structured data blocks for each schema type you've identified. Use the schema.org documentation as reference for required and recommended properties. Start with a simple Organization schema block, then expand to other types. Each schema block should be valid JSON—pay attention to commas, quotes, and brackets. Use a JSON validator to check syntax before deploying.",
"url": "https://example.com/blog/schema-guide#step2",
"image": "https://example.com/images/schema-step2.jpg"
}, {
"@type": "HowToStep",
"name": "Add Schema to Your Website Head",
"text": "Place your JSON-LD code inside script tags with type='application/ld+json' in your page's head section, after the title tag and meta tags but before the closing head tag. Each schema block gets its own script tag. You can have multiple script tags on a single page for different schema types.",
"url": "https://example.com/blog/schema-guide#step3",
"image": "https://example.com/images/schema-step3.jpg"
}, {
"@type": "HowToStep",
"name": "Validate Schema Implementation",
"text": "Use Google Rich Results Test to verify your schema is correctly implemented and has no errors. Enter your page URL or paste your code directly. Fix any errors flagged (errors prevent rich results). Address warnings where possible (warnings don't block rich results but may limit functionality). Test each page that has schema.",
"url": "https://example.com/blog/schema-guide#step4",
"image": "https://example.com/images/schema-step4.jpg"
}, {
"@type": "HowToStep",
"name": "Monitor in Google Search Console",
"text": "After Google recrawls your pages (typically 1-4 weeks), check Google Search Console under Enhancements for schema recognition and rich result eligibility. Monitor for errors or warnings that appear after indexing. Track performance of pages with rich results versus pages without to measure impact.",
"url": "https://example.com/blog/schema-guide#step5",
"image": "https://example.com/images/schema-step5.jpg"
}]
}

Property Breakdown:

Required:

  • name: Title of the how-to

  • step: Array of HowToStep objects (minimum 2 steps)

Each HowToStep requires:

  • name: Step title/summary

  • text: Complete step instructions

Recommended:

  • image: Overall image for the guide

  • totalTime: How long it takes to complete (ISO 8601 duration format)

  • estimatedCost: What it costs to complete

  • tool: Array of tools/software needed

  • supply: Array of materials/supplies needed

  • Each step can also have:

    • url: Link to specific step section on page

    • image: Visual for this specific step

Time format (ISO 8601 duration):

  • PT2H = 2 hours

  • PT30M = 30 minutes

  • PT2H30M = 2 hours 30 minutes

  • P1D = 1 day

  • PT15S = 15 seconds

Common mistakes:

  • Too few steps (minimum 2, but having only 2-3 steps for a complex process looks thin)

  • Steps that are too high-level to be useful

  • Missing critical information in step text

  • Not matching the actual content on the page


Why this matters: HowTo schema provides clear procedural knowledge that's valuable for AI systems even when rich results don't appear. For AI systems, HowTo schema makes step-by-step instructions easy to extract and cite.


7. Breadcrumb List Schema

What it does: Displays breadcrumb navigation in search results, helping users understand site hierarchy and their location within it.

When to use: On every page except homepage. 

Breadcrumbs show the path from homepage to current page.


Complete Example:

{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com"
}, {
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
}, {
"@type": "ListItem",
"position": 3,
"name": "SEO Strategy",
"item": "https://example.com/blog/seo-strategy"
}, {
"@type": "ListItem",
"position": 4,
"name": "Schema Markup Implementation Guide",
"item": "https://example.com/blog/schema-markup-guide"
}]
}

Best Practices:

  • Start with position 1 (always the homepage)

  • Each subsequent level increments position by 1

  • Include full URL for each item (not relative paths)

  • Last item is current page

  • Match your actual visual breadcrumbs (if you have them on the page)

  • Keep names concise—these appear in search results

Common mistakes:

  • Starting at position 0 (should be 1)

  • Skipping levels in your site hierarchy

  • Using different structure than your actual site navigation

  • Missing the final breadcrumb (current page)


Why this matters: Breadcrumbs in search results help users understand context before clicking. They're also a trust signal clear hierarchy suggests organized, well-maintained site. Minimal SEO impact compared to other schema types, but it's easy to implement and helps with user experience in search results.


8. Product Schema

What it does: Displays product information in search results including price, availability, ratings, and other product details.

When to use: On product pages for e-commerce or SaaS products. Can also be used for service offerings with clear pricing.


Complete Example (Physical or Digital Product):

{
"@context": "https://schema.org",
"@type": "Product",
"name": "Custom Website Development Package",
"description": "Professional custom website development on platform including strategy, design, and database architecture",
"image": "https://example.com/images/product.jpg",
"brand": {
"@type": "Organization",
"name": "Your Company Name"
},
"sku": "PROD-SKU-001",
"offers": {
"@type": "Offer",
"url": "https://example.com/services/custom-development",
"priceCurrency": "USD",
"price": "15000",
"priceValidUntil": "2026-12-31",
"availability": "https://schema.org/InStock",
"seller": {
"@type": "Organization",
"name": "Your Company Name"
}
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "X.X",
"reviewCount": "XX",
"bestRating": "5",
"worstRating": "1"
},
"review": [{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Customer Name"
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"reviewBody": "Replace with actual verified customer review text."
}]
}

Property Breakdown:

Required:

  • name: Product name

  • image: Product image (can be array for multiple images)

  • description: Product description

Offer properties (for price and availability):

  • price: Numeric value (can be string or number)

  • price currency: Three-letter currency code (USD, EUR, GBP, etc.)

  • availability: One of: InStock, OutOfStock, PreOrder, Discontinued, LimitedAvailability

  • price valid until: Date until which price is valid (YYYY-MM-DD)

For variable pricing: If your pricing varies based on options, you can use priceSpecification or multiple Offer objects:

{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://example.com/services#service",
"name": "Web Design and Development",
"serviceType": "Web Design and Development",
"url": "https://example.com/services",
"provider": {
"@type": "Organization",
"@id": "https://example.com/#organization",
"name": "Your Company Name",
"url": "https://example.com"
},
"areaServed": {
"@type": "Country",
"name": "United States"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Web Development Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"@id": "https://example.com/services#custom-development",
"name": "Custom Website Development",
"description": "Full-service website development with custom features and database architecture"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"@id": "https://example.com/services#technical-seo",
"name": "Technical SEO Optimization",
"description": "Comprehensive technical SEO audit and implementation"
}
}
]
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "X.X",
"reviewCount": "XX",
"bestRating": 5,
"worstRating": 1
}
}

Common mistakes:

  • Price as string with currency symbol ("$15,000" instead of "15000")

  • Wrong currency code

  • Outdated priceValidUntil

  • Including fake or self-serving reviews (see next section for critical warnings)


Why this matters: Product rich results with pricing and ratings get significantly higher click-through rates than standard listings. Users can see price and availability before clicking, which means clicks are more qualified. For B2B services, showing clear pricing (even if it's a range) builds trust and filters leads.


9. Review & Aggregate Rating Schema

What it does: Displays star ratings in search results. One of the most powerful schema types for click-through rate improvement.

When to use: On pages with genuine third-party customer reviews or testimonials.


CRITICAL WARNING ABOUT REVIEWS:

Review schema is heavily policed by Google, particularly for self-serving reviews on LocalBusiness and Organization schema types. Google's guidelines require reviews to be genuine, independent, third-party assessments.


Restricted use cases:

  • Self-serving reviews on LocalBusiness or Organization pages (your organization reviewing itself)

  • Testimonials you've solicited and posted on your own site without third-party verification

  • Reviews written by employees, founders, or anyone affiliated with your business

  • Reviews from friends, family, or business partners

  • Reviews that aren't genuine, independent customer feedback

Safe use cases for Review schema:

  • Reviews aggregated from verified third-party platforms (Google Business Profile, Yelp, Trustpilot, G2, Capterra)

  • Product reviews (Product schema allows more flexibility than Organization/LocalBusiness)

  • Reviews collected through verified third-party review platforms

  • Customer testimonials verified through a third-party service

  • Media reviews and editorial coverage


Individual Review Example (Third-Party Source):

{

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

  "@type": "Review",

  "itemReviewed": {

    "@type": "Organization",

    "name": "Illustrated Domain",

  },

  "author": {

    "@type": "Person",

    "name": "Markos"

  },

  "reviewBody": "ID team did a great job redesigning our corporate website and building it on Wix Studio for a better multilingual experience. Not an easy task, when you have a Swiss client, where every dot needs to have a perfect position and consistency standards are on another level. However, we are amazed and I can only wholeheartedly recommend ID to anyone looking for a great-looking, modern, neat, functional, and smooth website.",

  "publisher": {

    "@type": "Organization",

    "name": "Wix Marketplace"

  },

}


Aggregate Rating Example:

{

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

  "@type": "Organization",

  "name": "Illustrated Domain",

  "sameAs": [

  ],

  "aggregateRating": {

    "@type": "AggregateRating",

    "ratingValue": 4.9,

    "reviewCount": 75,

    "bestRating": 5,

    "worstRating": 1

  }

}


Note: These examples show real third-party reviews from Wix Marketplace. When implementing review schema for your own organization, only use reviews from verified third-party platforms with proper attribution and publisher information. Replace the example data with your actual verified reviews and their source URLs.


Critical requirement: Google requires a minimum of 2 reviews for AggregateRating to display in search results. If reviewCount is less than 2, the rating won't appear even if the schema is valid.


Property Breakdown:

For Individual Reviews:

  • Item Reviewed: The thing being reviewed (Organization, Product, Service, etc.)

  • author: Who wrote the review (Person or Organization)

  • Review Rating: The rating given (Rating object with ratingValue)

  • Review Body: The text of the review

  • Date Published: When review was published (YYYY-MM-DD)

  • Publisher: (Optional but recommended) Where the review was published

For Aggregate Rating:

  • Rating Value: Average rating (1-5 scale typical)

  • Review Count: Total number of reviews aggregated

  • Best Rating: Maximum possible rating (usually 5)

  • Worst Rating: Minimum possible rating (usually 1)

Best practices:

  • Only aggregate reviews from legitimate sources

  • Update reviewCount and ratingValue regularly as new reviews come in

  • Include datePublished for individual reviews

  • Don't round ratingValue to whole numbers if your actual average is 4.7 or 4.3—use the real number

  • Document your review sources in case Google requests verification

Common mistakes that trigger penalties:

  • Marking up testimonials as reviews without third-party verification (especially for Organization/LocalBusiness schema)

  • Using fake or inflated ratings

  • Not having the reviews actually displayed on the page

  • Including ratings for things that don't have actual reviews


Why this matters: Star ratings in search results can dramatically improve click-through rates. However, the risk of manual action on structured data is real for self-serving reviews. If you can't prove your reviews are genuine and third-party, especially for Organization or LocalBusiness schema, don't use Review schema. Product reviews have more flexibility, but still require genuine customer feedback.


10. Person Schema

What it does: Defines people for knowledge graphs and AI systems. Helps establish individual expertise and authority.

When to use: On author pages, team member bios, about pages for individuals, and as part of Article schema (author property).

Complete Example:

{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://example.com/about#person",
"name": "Full Name",
"jobTitle": "Job Title",
"description": "Short professional bio describing expertise, background, and focus areas.",
"url": "https://example.com/about",
"image": {
"@type": "ImageObject",
"url": "https://example.com/images/profile.jpg",
"width": 800,
"height": 800
},
"email": "mailto:email@example.com",
"telephone": "+1234567890",
"address": {
"@type": "PostalAddress",
"addressLocality": "City",
"addressRegion": "State",
"addressCountry": "Country"
},
"worksFor": {
"@type": "Organization",
"@id": "https://example.com/#organization"
},
"alumniOf": [
{
"@type": "CollegeOrUniversity",
"name": "University Name"
}
],
"sameAs": [
"https://www.linkedin.com/in/username"
],
"knowsAbout": [
"Area of Expertise 1",
"Area of Expertise 2",
"Area of Expertise 3"
],
"award": [
"Award or Certification"
]
}

Property Breakdown:

Basic identity:

  • @id: (Optional) Unique identifier for this person that can be referenced across pages

  • name: Full name

  • Job Title: Current position

  • Description: Bio summary

  • Url: Personal website or bio page

  • Image: Professional photo

Contact:

  • Email: Contact email

  • Telephone: Phone number

  • Address: Location (can be just city/state/country, doesn't need full address)

Organizational connections:

  • Works For: Current employer (Organization object)

  • Alumni Of: Educational institutions (array of CollegeOrUniversity or EducationalOrganization)

  • Member Of: Professional organizations or groups

Authority signals:

  • Same As: Social profiles and other web presences

  • KnowsAbout: Areas of expertise (array of strings)

  • Award: Awards, certifications, recognitions


Why this matters: Person schema helps AI systems attribute expertise correctly. When your content gets cited, having Person schema connected to Article schema (via the author property) helps AI systems say "According to Sarah Sherman, founder of Illustrated Domain..." instead of just "According to Illustrated Domain..." It personalizes authority.


Using @id for entity linking: The @id property creates a stable identifier for this person that can be referenced across multiple pages. For example, in Article schema, you can reference this person with "author": {"@id": "#sarah-sherman"} instead of duplicating all the person properties.


11. Video Object Schema

What it does: Helps videos appear in video search results with thumbnails, duration, upload date, and other metadata.

When to use: On pages with embedded videos YouTube embeds, Vimeo embeds, or self-hosted videos.


Complete Example:

{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "How to Implement Schema Markup: Complete Tutorial",
"description": "Step-by-step video guide to adding schema markup to your website for better search visibility and AI citation-friendliness. Covers Organization, Article, FAQPage, and other essential schema types.",
"thumbnailUrl": "https://example.com/images/video-thumbnail.jpg",
"uploadDate": "2026-04-15",
"duration": "PT15M30S",
"contentUrl": "https://example.com/videos/schema-tutorial.mp4",
"embedUrl": "https://www.youtube.com/embed/ABC123",
"publisher": {
"@type": "Organization",
"name": "Your Company Name",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/images/logo.png",
"width": 512,
"height": 512
}
},
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "http://schema.org/WatchAction",
"userInteractionCount": 1247
}
}

Property Breakdown:

Required:

  • Name: Video title

  • Description: Video description

  • Thumbnail Url: URL to video thumbnail image

  • UploadDate: When video was published (YYYY-MM-DD)

Recommended:

  • Duration: Video length (ISO 8601 duration: PT15M30S = 15 minutes 30 seconds)

  • Content Url: Direct URL to video file

  • Embed Url: URL for embedded player

  • Publisher: Who published the video

Optional but valuable:

  • Interaction Statistic: View count

  • Transcript: Full video transcript (helps with accessibility and SEO)


Why this matters: Video rich results show thumbnails, duration, and upload date in search results. This increases click-through rate and helps videos appear in both regular search and video search. For AI systems, VideoObject schema helps them understand video content even though they can't watch videos directly they rely on the description, transcript, and metadata.


Implementation Methods

Now that you understand what schema types matter, let's talk about how to actually implement them on your site. There are several approaches, each with different tradeoffs.


Method 1: Manual Implementation

What it is: Writing JSON-LD code by hand and adding it directly to your HTML.

How it works:

  1. Choose the schema types relevant to each page

  2. Write the JSON-LD code following schema.org documentation

  3. Add the code to your page's <head> section inside <script type="application/ld+json"> tags

  4. Validate with Google Rich Results Test

  5. Deploy to live site

Example implementation:

<!DOCTYPE html>
<html>
<head>
<title>Schema Markup Guide | Your Company Name</title>
<meta name="description" content="Complete guide to implementing schema markup">

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Schema Markup Implementation Guide",
"author": {
"@type": "Person",
"name": "Author Name"
},
"datePublished": "2026-04-18"
}
</script>

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com"
}, {
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog"
}]
}
</script>
</head>
<body>
<!-- Page content -->
</body>
</html>

Pros:

  • Complete control over schema implementation

  • No plugin dependencies or third-party code

  • Cleanest, most efficient implementation

  • Easiest to troubleshoot when issues arise

  • No performance overhead from plugins

Cons:

  • Requires technical knowledge (HTML, JSON)

  • Manual updates needed when content changes

  • Time-consuming for large sites

  • Easy to make syntax errors if not careful


Best for: Developers, technical marketers, small sites where manual control is worth the effort, or situations where you need precise control over schema output.


Method 2: Wix Studio Implementation

What Wix auto-generates:

Wix Studio has limited built-in schema generation. Based on your site settings, it may auto-generate basic:

  • Organization schema (from Business Info settings)

  • Article schema (for blog posts, pulled from post metadata)

  • Product schema (for e-commerce products)

  • Basic breadcrumb schema

What you need to add manually:

Most advanced schema types require manual implementation: WebSite, FAQ Page, How To, Person, detailed organization properties, LocalBusiness/Professional Service, Review/Aggregate Rating, Video Object.


How to add custom schema in Wix Studio:

  1. Go to your page settings (or site-wide settings for all pages)

  2. Navigate to SEO (Google) settings

  3. Find "Custom Code" or "Head Code" section

  4. Paste your JSON-LD schema blocks

  5. Save and publish

Alternatively, for site-wide schema:

  1. Go to Site Settings → Custom Code

  2. Add code to "Head" section

  3. Choose "All Pages" or specific pages

  4. Save

Pros:

  • Some schema auto-generated without effort

  • Easy to add custom schema through UI

  • No plugin needed

  • Direct control over code

Cons:

  • Limited auto-generation (only basic types)

  • Advanced schema requires manual JSON-LD code

  • Must understand schema structure to add custom types

  • Updates require manual editing


Best for: Wix Studio users who want some automation but are willing to manually add advanced schema types for better coverage.


Method 3: WordPress Plugins

If you're on WordPress, plugins can automate most schema implementation. 


Here are the main options:

Rank Math (Free + Pro):

Schema implementation in a WordPress plugin.

Features:

  • Auto-generates schema for posts, pages, products

  • Visual schema editor (no code required)

  • Support for 15+ schema types

  • Built-in Rich Results Test integration

  • Schema templates for different content types

  • Conditional display logic (show schema only on certain posts)

How it works:

  1. Install Rank Math plugin

  2. Run setup wizard, enable schema module

  3. Configure default schema types for posts, pages, products

  4. Edit individual posts to customize schema

  5. Plugin outputs JSON-LD automatically

Cost: Free version covers most needs. Pro version ($59/year) adds advanced schema types and features.


Yoast SEO (Free + Premium):

Popular SEO plugin with basic schema generation.

Features:

  • Auto-generates Organization, Person, Article schema

  • Graph connection between entities

  • Simple interface

  • Limited schema types compared to Rank Math

How it works:

  1. Install Yoast SEO

  2. Configure site-wide schema in Yoast settings

  3. Schema outputs automatically based on content type

Cost: Free version handles basics. Premium ($99/year) adds some additional schema options but still limited compared to Rank Math.


WP Schema (Free):

Simple, lightweight schema plugin.

Features:

  • Limited schema types (Organization, Article, Product, Review)

  • Easy setup

  • Minimal configuration needed

How it works:

  1. Install WP Schema

  2. Configure basic schema in settings

  3. Auto-generates on appropriate pages

Cost: Free.


WordPress Plugin Comparison:

Plugin Schema Types Ease of Use Cost Best ForRank Math15+MediumFree/$59Most WordPress users Yoast SEO Basic Easy Free/$99 Beginners Schema Pro30+Medium $79 Advanced users needing comprehensive coverage WP Schema 5 Easy Free Simple sites

Pros of WordPress plugins:

  • Easy for non-developers

  • Auto-generates schema based on content

  • Regular updates as schema.org evolves

  • Visual editors (no code required)

  • Bulk application across site

Cons:

  • Plugin overhead can slow site

  • Less control than manual implementation

  • Dependent on plugin maintenance and updates

  • Some plugins generate bloated or suboptimal schema

  • Plugin conflicts can break schema output

Best for: WordPress users who want automated schema without learning JSON-LD, or site owners who don't have technical resources.


Method 4: Google Tag Manager Implementation

What it is: Adding schema through Google Tag Manager instead of directly in HTML.

How it works:

  1. Create JSON-LD schema code

  2. Add as Custom HTML tag in Google Tag Manager

  3. Set trigger (which pages the schema appears on)

  4. Publish GTM container

  5. Schema is injected into page via JavaScript


Example GTM setup:

Tag type: Custom HTML Trigger: All Pages (or specific page conditions)

Tag content:

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company Name",
"url": "https://example.com"
}
</script>

Pros:

  • No direct HTML changes needed

  • Easy to update without touching site code

  • Can apply different schema to different pages using GTM triggers

  • Version control through GTM

Cons:

  • JavaScript-dependent (schema loads after page, not in initial HTML)

  • May introduce processing delays compared to server-rendered schema

  • Adds GTM as dependency

  • More complex setup than direct HTML

  • Debugging is harder


Important context: Google can process JavaScript-rendered schema, but it may be delayed compared to server-rendered schema in the initial HTML. For critical schema (Organization, Article), direct HTML implementation is more reliable than GTM. Use GTM when direct HTML access is restricted or for testing before permanent implementation.


Best for: Sites where you can't access HTML directly, temporary schema testing, or situations where you need to update schema frequently without touching site code.


Method 5: Developer / Agency Implementation

What it is: Hiring a developer or agency to implement comprehensive schema strategy.

What they do:

  • Audit your current site and schema (if any)

  • Design comprehensive schema strategy based on content types and business goals

  • Implement all relevant schema types

  • Create templates for content types (so new pages get schema automatically)

  • Validate and test all implementations

  • Monitor ongoing and fix issues

  • Update schema as your content evolves

Cost range: $2,000-$10,000 depending on:

  • Site size (number of pages)

  • Content complexity (variety of content types)

  • Number of schema types needed

  • Whether implementation is one-time or includes ongoing management

When it's worth it:

  • Large site (100+ pages)

  • E-commerce with many products

  • Multiple content types requiring different schema

  • Local business with multiple locations

  • High-value site where schema errors could hurt revenue

  • You don't have in-house technical resources

  • Your time is better spent elsewhere

Pros:

  • Comprehensive implementation across entire site

  • Professional strategy, not just technical execution

  • Saves your time

  • Ongoing support for updates and issues

  • Usually includes monitoring and maintenance

Cons:

  • Higher upfront cost

  • Dependent on external resource

  • Requires finding competent provider (many claim schema expertise, fewer have it)


Best for: Businesses where schema is strategically important and professional implementation is worth the investment.


Schema Validation & Testing

Before launching any schema implementation, you must validate it. Invalid schema won't display rich results and can cause indexing issues.


Google Rich Results Test

What it does: Tests whether your schema is eligible for Google rich results.


How to use:

Option 1: Test live URL

  1. Enter your page URL

  2. Click "Test URL"

  3. Google fetches the page and analyzes schema

  4. Review results

Option 2: Test code directly

  1. Click "Code" tab

  2. Paste your HTML (including schema)

  3. Click "Test Code"

  4. Review results


What the results show:

Eligible for rich results: Green checkmark. Your schema is valid and eligible for rich results. Shows which rich result types are detected (Article, FAQPage, HowTo, etc.).

Not eligible for rich results: Schema detected but doesn't qualify for rich results. This could be because:

  • Schema type doesn't have associated rich result (Person schema, for example, doesn't display as rich result)

  • Missing required properties for rich results

  • Content doesn't match schema (you said it's a Product but there's no product on the page)

Errors: Red X. Critical issues preventing schema from working. Must fix before deployment. Common errors:

  • Invalid JSON syntax (missing comma, quote, bracket)

  • Missing required properties

  • Invalid property values (wrong date format, invalid URL)

  • Incorrect schema type

Warnings: Yellow triangle. Non-critical issues that may limit functionality. Should fix when possible but won't prevent rich results. Common warnings:

  • Missing recommended properties

  • Suboptimal values

  • Properties that enhance


About the Author

Sarah A. Sherman is the founder of Illustrated Domain, a strategy-led digital agency recognized for helping brands thrive in a rapidly shifting search landscape. With 30+ years of experience spanning finance, film, and global nonprofit leadership, her work blends creative clarity with systems thinking. she now advises high-impact businesses navigate the intersection of AI search, SEO, and digital trust building not just traffic, but reputational equity that endures.


Have questions or want to connect directly?

Comments


bottom of page