Files
ivangdavila_seo/schema.md

2.3 KiB

Structured Data (Schema Markup)

Basics

  • JSON-LD format preferred — script tag in head, cleanest implementation
  • Test with Rich Results Test — not all schema triggers rich results
  • Test with Schema Validator (schema.org) — catches syntax errors
  • Required vs recommended properties — missing required = invalid
  • One schema type per thing — don't mark same content as Article AND BlogPosting

Common Schema Types

Article / BlogPosting

{
  "@type": "Article",
  "headline": "...",
  "author": {"@type": "Person", "name": "..."},
  "datePublished": "2025-01-15",
  "dateModified": "2025-01-20",
  "image": "..."
}
  • datePublished required — omitting it loses rich result eligibility
  • dateModified shows in search when different from published
  • image recommended for better visual in search results

LocalBusiness

{
  "@type": "LocalBusiness",
  "name": "...",
  "address": {"@type": "PostalAddress", ...},
  "telephone": "...",
  "openingHoursSpecification": [...]
}
  • Use specific subtype: Restaurant, Dentist, LegalService
  • geo coordinates help Google verify location
  • priceRange shows in Knowledge Panel

FAQ

{
  "@type": "FAQPage",
  "mainEntity": [
    {"@type": "Question", "name": "...", "acceptedAnswer": {...}}
  ]
}
  • FAQ schema shows expandable Q&A in search results — HUGE CTR boost
  • Content must be visible on page — hidden FAQ = spam
  • Max ~10 questions typically shown

Product

{
  "@type": "Product",
  "name": "...",
  "offers": {"@type": "Offer", "price": "...", "priceCurrency": "USD"},
  "aggregateRating": {...}
}
  • offers required for price in search results
  • aggregateRating shows stars — needs actual review data
  • availability (InStock, OutOfStock) shows availability badge

HowTo

  • Step-by-step instructions with images
  • Can show as rich result with step previews
  • Each step needs text, optionally image

Review

  • Individual review with reviewRating
  • Self-serving reviews (reviewing own business) = spam

Traps

  • Marking invisible content — schema must match visible page content
  • Fake reviews/ratings — Google detects and penalizes
  • Schema for content that doesn't exist — "Product" on info page
  • Mixing incompatible types — Article + Product on same page
  • Not updating dateModified when content changes