Skip to main content

Schema.org in Practice

3.1 What is Schema.org

Schema.org is a structured data standard created jointly by Google, Microsoft, Yahoo, and Yandex. It defines a unified vocabulary that turns web page content into machine-readable data. Plain-language explanation: Your product page displays “Nike Air Max 90, $129.99, In Stock.” A human reads that instantly, but a machine sees only a string of text. Schema.org markup tells the machine: this is a Product, the name is “Nike Air Max 90,” the price is “129.99 USD,” and the availability is InStock. Impact on AI agents: AI agents (ChatGPT, Claude, Gemini, etc.) prioritize pages with structured data when making product recommendations, because they can extract product information accurately and reduce hallucination.

3.2 Three Implementation Formats

FormatRecommendationDescription
JSON-LDRecommendedOfficially recommended by Google. A standalone script tag that does not affect HTML structure
MicrodataAcceptableEmbedded in HTML tag attributes (itemprop, itemscope)
RDFaNot recommendedOlder format with low adoption
Why JSON-LD is recommended:
  • Completely decoupled from HTML, easy to maintain
  • Can be dynamically generated on the server side
  • Parsed most efficiently by AI agents
  • Explicitly recommended by Google

3.3 E-Commerce Essential: Product Markup

A complete Product markup example:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Classic Canvas Sneakers",
  "description": "Comfortable, breathable classic canvas shoes for everyday wear.",
  "image": [
    "https://example.com/photos/shoe-1.jpg",
    "https://example.com/photos/shoe-2.jpg"
  ],
  "brand": {
    "@type": "Brand",
    "name": "ExampleBrand"
  },
  "sku": "SHOE-001",
  "gtin13": "1234567890123",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/shoe-001",
    "priceCurrency": "USD",
    "price": "49.99",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "Example Store"
    },
    "shippingDetails": {
      "@type": "OfferShippingDetails",
      "shippingDestination": {
        "@type": "DefinedRegion",
        "addressCountry": "US"
      },
      "deliveryTime": {
        "@type": "ShippingDeliveryTime",
        "businessDays": {
          "@type": "QuantitativeValue",
          "minValue": 1,
          "maxValue": 5
        }
      }
    },
    "hasMerchantReturnPolicy": {
      "@type": "MerchantReturnPolicy",
      "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow",
      "merchantReturnDays": 30
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "reviewCount": "128"
  }
}
</script>
Required fields checklist:
FieldImportanceDescription
nameRequiredProduct name
descriptionRequiredProduct description
imageRequiredAt least one high-quality image URL
offers.priceRequiredPrice
offers.priceCurrencyRequiredCurrency code (USD/EUR/GBP, etc.)
offers.availabilityRequiredStock status
brandStrongly recommendedBrand name
skuRecommendedUnique product identifier
gtin13 / gtin14RecommendedInternational barcode
aggregateRatingRecommendedRating summary
shippingDetailsRecommendedShipping information
hasMerchantReturnPolicyRecommendedReturn policy

3.4 Company Information: Organization Markup

In addition to products, your company information needs to be structured. Place this on your homepage or “About Us” page:
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Company Name",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "description": "A one-line description of your business",
  "foundingDate": "2020-01-01",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94105",
    "addressCountry": "US"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "support@example.com",
    "telephone": "+1-555-123-4567"
  },
  "sameAs": [
    "https://twitter.com/example",
    "https://www.linkedin.com/company/example"
  ]
}
</script>

3.5 Breadcrumb Navigation: BreadcrumbList

Helps AI agents understand your site’s hierarchical structure:
<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": "Sneakers",
      "item": "https://example.com/category/sneakers"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Classic Canvas Sneakers"
    }
  ]
}
</script>

3.6 Common Mistakes

MistakeConsequenceFix
Price missing currency codeAI cannot compare pricesAlways include priceCurrency
Missing availability statusAI does not know if the product is purchasableDynamically update availability
Relative image pathsAI fails to fetch imagesUse full https:// URLs
Markup inconsistent with visible contentPenalized by search enginesKeep markup data aligned with on-page content
Malformed nested JSONParse failureValidate with testing tools

3.7 Validation Tools

After configuring Schema.org markup, validate with these tools:
  1. Google Rich Results Test — Checks if markup is correct and eligible for rich results
  2. Schema.org Validator — The official validation tool
  3. Browser DevTools — Inspect the page source for script type="application/ld+json" content

3.8 Self-Assessment Checklist

  • Every product page has a Product JSON-LD block
  • Product markup includes name, description, image, price, and availability
  • Homepage or About page has an Organization JSON-LD block
  • Category pages have BreadcrumbList markup
  • At least 3 pages validated with Google Rich Results Test
  • Markup data is consistent with visible page content

Next chapter: JSON-LD vs Microdata — Technical comparison and migration guide