Use Schema Markup Validator

Enter your data below to use the Schema Markup Validator

📌 Try these examples:
RESULT

Last updated

Schema Markup Validator Examples

The Schema Markup Validator checks JSON-LD, Microdata, and RDFa structured data against schema.org specifications. Below are examples of valid markup, common errors, and rich result eligibility checks.

Valid JSON-LD — Article

A correctly implemented Article schema:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Build a REST API",
  "author": {
    "@type": "Person",
    "name": "Jane Smith"
  },
  "datePublished": "2026-03-17",
  "dateModified": "2026-03-17",
  "image": "https://example.com/images/rest-api.jpg",
  "publisher": {
    "@type": "Organization",
    "name": "TechBlog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  }
}
</script>

Validation result: ✓ Valid
Rich results eligible: Article rich result ✓

Common Error — Missing Required Property

Validation error:
  ERROR: Missing required property "headline"
  The Article type requires: headline, author, datePublished, image, publisher

  Missing: headline
  Fix: Add "headline": "Your Article Title"

Common Error — Invalid Date Format

Markup:
  "datePublished": "March 17, 2026"

Validation error:
  ERROR: Invalid date format for "datePublished"
  Expected: ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ)
  Found: "March 17, 2026"

  Fix: "datePublished": "2026-03-17"

Valid JSON-LD — Product with Rich Result

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Wireless Bluetooth Headphones",
  "image": "https://example.com/images/headphones.jpg",
  "description": "Premium wireless headphones with 30-hour battery life.",
  "brand": {
    "@type": "Brand",
    "name": "AudioPro"
  },
  "offers": {
    "@type": "Offer",
    "price": "79.99",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://example.com/products/headphones"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "reviewCount": "127"
  }
}
</script>

Validation result: ✓ Valid
Rich results eligible:
  ✓ Product rich result (price, availability)
  ✓ Review snippet (star rating)

Valid JSON-LD — FAQ

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is a REST API?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A REST API is an architectural style for building web services that use HTTP methods to perform operations on resources."
      }
    },
    {
      "@type": "Question",
      "name": "What HTTP methods does REST use?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "REST APIs use GET (read), POST (create), PUT (update), PATCH (partial update), and DELETE (remove) methods."
      }
    }
  ]
}
</script>

Validation result: ✓ Valid
Rich results eligible: ✓ FAQ rich result (expandable Q&A in search results)

Valid JSON-LD — Local Business

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Restaurant",
  "name": "The Corner Bistro",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "742 Maple Street",
    "addressLocality": "Portland",
    "addressRegion": "OR",
    "postalCode": "97201",
    "addressCountry": "US"
  },
  "telephone": "+1-503-555-0147",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "11:00",
      "closes": "22:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Saturday", "Sunday"],
      "opens": "10:00",
      "closes": "23:00"
    }
  ],
  "servesCuisine": "American",
  "priceRange": "$$"
}
</script>

Validation result: ✓ Valid
Rich results eligible: ✓ Local business rich result

Rich Result Eligibility Check — Recipe

Current markup has:
  ✓ name
  ✓ image
  ✓ description
  ✓ recipeIngredient
  ✗ recipeInstructions (MISSING — required for rich result)
  ✗ totalTime (recommended)
  ✗ nutrition (recommended)

Rich result status: ✗ Not eligible
Reason: recipeInstructions is required for Recipe rich results

Fix:
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "text": "Preheat oven to 375°F."
    },
    {
      "@type": "HowToStep",
      "text": "Mix dry ingredients in a bowl."
    }
  ]

Nested Type Validation

Validation of nested types in a Product schema:

Product ✓
  └── Offer ✓
        ├── price: "79.99" ✓
        ├── priceCurrency: "USD" ✓
        └── availability: "https://schema.org/InStock" ✓
  └── AggregateRating ✓
        ├── ratingValue: "4.5" ✓ (must be 0-5)
        └── reviewCount: "127" ✓
  └── Brand ✓
        └── name: "AudioPro" ✓

All nested types valid.

Content Mismatch Warning

Validation warning:
  WARNING: Structured data may not match page content

  Schema claims: "aggregateRating": { "ratingValue": "4.5", "reviewCount": "127" }
  Page content: No visible reviews or ratings found on page

  Google may ignore or penalize structured data that describes
  content not present on the page. Add visible reviews to the page
  or remove the aggregateRating from the schema.

Frequently Asked Questions

Simply enter your data, click the process button, and get instant results. All processing happens in your browser for maximum privacy and security.

Yes! Schema Markup Validator is completely free to use with no registration required. All processing is done client-side in your browser.

Absolutely! All processing happens locally in your browser. Your data never leaves your device, ensuring complete privacy and security.