Required
Recommended
Optional
WebPage schema.org/WebPage
NoteApplied on the outermost wrapper (e.g. a div inside <body>, or on body itself). Wraps your entire page tree.
Property Value example Priority
name Page <title> text Required
description Meta description text Required
url Canonical URL Required
inLanguage en-US Recommended
dateModified ISO 8601 date Recommended
primaryImageOfPage Hero image URL Optional
breadcrumb Nested BreadcrumbList Optional
HTML · WebPage wrapper
<!-- Place on <body> or first div inside body -->
<div itemscope
     itemtype="https://schema.org/WebPage">

  <meta itemprop="name"
        content="Product Page Title" />
  <meta itemprop="description"
        content="Page meta description here." />
  <meta itemprop="url"
        content="https://example.com/page" />
  <meta itemprop="inLanguage"
        content="en-US" />
  <meta itemprop="dateModified"
        content="2026-03-05" />
  <link itemprop="primaryImageOfPage"
        href="https://example.com/hero.jpg" />

  <!-- All other schemas live inside here -->

</div>
Product schema.org/Product
NoteMain product. Nest Offer, AggregateRating, Review, ImageObject, VideoObject inside the same itemscope.
Property Value Priority
name Product name visible on page Required
description Full product description Required
brand / brand.name Manufacturer brand Required
sku Stock keeping unit Recommended
mpn Manufacturer part number Recommended
gtin13 / gtin Barcode / EAN / ISBN Recommended
color Color variant Optional
material Material composition Optional
HTML · Product (shell — nests child schemas)
<div itemscope
     itemtype="https://schema.org/Product">

  <!-- Core identity -->
  <h1 itemprop="name">BrandX Pro 900</h1>
  <p  itemprop="description">
    40-hour battery, active noise cancellation...
  </p>

  <!-- Brand -->
  <div itemprop="brand" itemscope
       itemtype="https://schema.org/Brand">
    <meta itemprop="name" content="BrandX" />
  </div>

  <!-- Identifiers -->
  <meta itemprop="sku"    content="BX-PRO-900-BLK"   />
  <meta itemprop="mpn"    content="MPN-900-2026"     />
  <meta itemprop="gtin13" content="0012345678905"    />
  <meta itemprop="color"  content="Midnight Black"   />

  <!-- ↓ Nest: ImageObject, VideoObject, Offer,
              AggregateRating, Review here -->

</div>
Review + Rating schema.org/Review
NoteIndividual review. Nest Rating inside. Multiple Review blocks are allowed inside a Product or independently on the page.
·
★★★★★

Best headphones I've owned

Incredible ANC, extremely comfortable, and the battery really does last 40 hours.

HTML · Review + Rating
<div itemprop="review" itemscope
     itemtype="https://schema.org/Review">

  <!-- Author -->
  <div itemprop="author" itemscope
       itemtype="https://schema.org/Person">
    <span itemprop="name">Sarah K.</span>
  </div>

  <!-- Date -->
  <time itemprop="datePublished"
        datetime="2026-02-10">Feb 10, 2026</time>

  <!-- Rating (nested) -->
  <div itemprop="reviewRating" itemscope
       itemtype="https://schema.org/Rating">
    <meta itemprop="worstRating" content="1" />
    <meta itemprop="ratingValue" content="5" />
    <meta itemprop="bestRating"  content="5" />
    <span>★★★★★</span>
  </div>

  <!-- Title + body -->
  <p itemprop="name">Best headphones I've owned</p>
  <p itemprop="reviewBody">
    Incredible ANC, extremely comfortable...
  </p>

</div>
AggregateRating schema.org/AggregateRating
NoteSits inside the Product itemscope as itemprop="aggregateRating". Drives the star snippet in Google SERPs.
HTML · AggregateRating (inside Product)
<!-- Inside the Product div -->
<div itemprop="aggregateRating" itemscope
     itemtype="https://schema.org/AggregateRating">

  <meta itemprop="worstRating"  content="1"    />
  <meta itemprop="bestRating"   content="5"    />
  <meta itemprop="ratingValue"  content="4.7"  />
  <meta itemprop="reviewCount"  content="1284" />

  <!-- Visible text (optional but good for a11y) -->
  <span>
    Rated <span itemprop="ratingValue">4.7</span>
    out of <span itemprop="bestRating">5</span>
    (<span itemprop="reviewCount">1,284</span> reviews)
  </span>

</div>
Google requirement: ratingValue, ratingCount or reviewCount, and the parent entity (Product/Recipe/etc.) must all be present for rich results eligibility.
Offer schema.org/Offer
NoteNest inside Product as itemprop="offers". Multiple Offer items can share the same Product (different variants/sellers).
HTML · Offer (inside Product)
<!-- Inside the Product div -->
<div itemprop="offers" itemscope
     itemtype="https://schema.org/Offer">

  <!-- Price -->
  <meta itemprop="price"         content="299.00" />
  <meta itemprop="priceCurrency" content="USD"    />

  <!-- Availability -->
  <link itemprop="availability"
        href="https://schema.org/InStock" />

  <!-- Condition -->
  <link itemprop="itemCondition"
        href="https://schema.org/NewCondition" />

  <!-- Price validity (required by Google) -->
  <meta itemprop="priceValidUntil"
        content="2026-12-31" />

  <!-- Seller -->
  <div itemprop="seller" itemscope
       itemtype="https://schema.org/Organization">
    <meta itemprop="name" content="BrandX Store" />
  </div>

  <!-- Shipping (optional) -->
  <div itemprop="shippingDetails" itemscope
       itemtype="https://schema.org/OfferShippingDetails">
    <div itemprop="shippingRate" itemscope
         itemtype="https://schema.org/MonetaryAmount">
      <meta itemprop="value"    content="0"   />
      <meta itemprop="currency" content="USD" />
    </div>
  </div>

  <!-- Visible CTA -->
  <a itemprop="url"
     href="https://example.com/buy/bx-pro-900">
    Buy Now — $299.00
  </a>

</div>
ImageObject schema.org/ImageObject
NoteNest inside Product as itemprop="image". Repeat the block for multiple product images.
HTML · ImageObject (inside Product)
<!-- Inside the Product div -->
<div itemprop="image" itemscope
     itemtype="https://schema.org/ImageObject">

  <img
    itemprop="url contentUrl"
    src="https://example.com/images/bx-pro-900-hero.jpg"
    alt="BrandX Pro 900 Headphones — Front View"
  />

  <meta itemprop="name"
        content="BrandX Pro 900 — Front View"         />
  <meta itemprop="width"   content="1200"             />
  <meta itemprop="height"  content="1200"             />
  <meta itemprop="encodingFormat" content="image/jpeg" />
  <meta itemprop="description"
        content="Hero product shot of the Pro 900"      />

</div>
Tip: itemprop="url contentUrl" sets both properties simultaneously — a valid microdata shorthand when the same value applies to multiple itemprop names.
VideoObject schema.org/VideoObject
NoteNest inside Product as itemprop="subjectOf" or use standalone. Unlocks Video rich results in Google.
HTML · VideoObject
<div itemprop="subjectOf" itemscope
     itemtype="https://schema.org/VideoObject">

  <meta itemprop="name"
        content="BrandX Pro 900 — Full Review"           />
  <meta itemprop="description"
        content="Watch our in-depth review of the Pro 900." />

  <!-- Thumbnail (required by Google) -->
  <link itemprop="thumbnailUrl"
        href="https://example.com/thumb/review.jpg"     />

  <!-- Upload date (required by Google) -->
  <meta itemprop="uploadDate"
        content="2026-01-20"                            />

  <!-- Duration: ISO 8601 (PT#M#S) -->
  <meta itemprop="duration"  content="PT12M30S"       />

  <!-- Content / embed URL -->
  <meta itemprop="contentUrl"
        content="https://example.com/video/review.mp4"  />
  <meta itemprop="embedUrl"
        content="https://example.com/embed/review"      />

  <!-- Visible player -->
  <video controls
         src="https://example.com/video/review.mp4"
         poster="https://example.com/thumb/review.jpg"
         width="640" height="360">
  </video>

</div>
More from This Brand schema.org/ItemList + Product
NoteWrap a set of related products in an ItemList. Each product card gets its own Product scope with AggregateRating.
BrandX
Air 200
★★★★½ (632)
$199
BrandX
Studio 500
★★★★★ (291)
$449
BrandX
Lite 80
★★★★ (1,108)
$89
HTML · ItemList of Products with AggregateRating
<section itemscope
          itemtype="https://schema.org/ItemList">

  <meta itemprop="name" content="More from BrandX" />
  <h2>More from BrandX</h2>

  <!-- Product card 1 -->
  <div itemprop="itemListElement" itemscope
       itemtype="https://schema.org/ListItem">
    <meta itemprop="position" content="1" />

    <div itemprop="item" itemscope
         itemtype="https://schema.org/Product">

      <h3 itemprop="name">BrandX Air 200</h3>

      <!-- AggregateRating nested in each product -->
      <div itemprop="aggregateRating" itemscope
           itemtype="https://schema.org/AggregateRating">
        <meta itemprop="ratingValue"  content="4.5"  />
        <meta itemprop="reviewCount"  content="632"  />
        <meta itemprop="bestRating"   content="5"    />
        <meta itemprop="worstRating"  content="1"    />
        <span>★★★★½ (632 reviews)</span>
      </div>

      <!-- Offer nested in each product -->
      <div itemprop="offers" itemscope
           itemtype="https://schema.org/Offer">
        <meta itemprop="price"         content="199.00"    />
        <meta itemprop="priceCurrency" content="USD"        />
        <link itemprop="availability"
              href="https://schema.org/InStock"              />
        <span>$199.00</span>
      </div>

    </div><!-- /Product -->
  </div><!-- /ListItem -->

  <!-- Repeat for card 2, 3 … with position="2", "3" -->

</section>
FAQPage schema.org/FAQPage
NoteEach Q&A is a Question with acceptedAnswer > Answer. Drives FAQ rich results directly in SERPs — high click-through impact.

How long does the battery last?

The Pro 900 delivers up to 40 hours of playback with ANC enabled, and 60 hours with ANC off.

Does it work with multiple devices?

Yes. Multipoint Bluetooth lets you connect to two devices simultaneously.

HTML · FAQPage
<section itemscope
          itemtype="https://schema.org/FAQPage">

  <h2>Frequently Asked Questions</h2>

  <!-- Question 1 -->
  <div itemprop="mainEntity" itemscope
       itemtype="https://schema.org/Question">

    <h3 itemprop="name">
      How long does the battery last?
    </h3>

    <div itemprop="acceptedAnswer" itemscope
         itemtype="https://schema.org/Answer">
      <p itemprop="text">
        Up to 40 hours with ANC on, 60 hours with ANC off.
      </p>
    </div>

  </div>

  <!-- Question 2 (same pattern) -->
  <div itemprop="mainEntity" itemscope
       itemtype="https://schema.org/Question">
    <h3 itemprop="name">
      Does it support multipoint Bluetooth?
    </h3>
    <div itemprop="acceptedAnswer" itemscope
         itemtype="https://schema.org/Answer">
      <p itemprop="text">
        Yes — connect to two devices simultaneously.
      </p>
    </div>
  </div>

</section>
Article — AI Crawlable schema.org/Article
NoteFor AI crawlers (GPTBot, ClaudeBot, Google-Extended): semantic headings inside articleBody, no JS rendering required, author + datePublished are essential for trust signals.
Property AI crawler signal Priority
headline Page title used for citation Required
datePublished Recency / freshness signal Required
dateModified Last-updated signal Recommended
author.name Attribution for AI citation Recommended
publisher Source trustworthiness Recommended
articleBody Full text — crawled directly Recommended
keywords Topical classification Optional
speakable Sections for voice / AI summary Optional
HTML · Article (AI-optimised)
<article itemscope
          itemtype="https://schema.org/Article">

  <!-- Core identity -->
  <h1 itemprop="headline">
    BrandX Pro 900: Everything You Need to Know
  </h1>

  <!-- Dates -->
  <time itemprop="datePublished"
        datetime="2026-01-15">January 15, 2026</time>
  <meta itemprop="dateModified"
        content="2026-03-05" />

  <!-- Author -->
  <div itemprop="author" itemscope
       itemtype="https://schema.org/Person">
    By <a itemprop="url"
           href="https://example.com/authors/jane">
      <span itemprop="name">Jane Smith</span>
    </a>
  </div>

  <!-- Publisher -->
  <div itemprop="publisher" itemscope
       itemtype="https://schema.org/Organization">
    <meta itemprop="name" content="BrandX Review Hub" />
    <div itemprop="logo" itemscope
         itemtype="https://schema.org/ImageObject">
      <link itemprop="url"
            href="https://example.com/logo.png" />
    </div>
  </div>

  <!-- Keywords (AI topical signal) -->
  <meta itemprop="keywords"
        content="headphones,ANC,BrandX,wireless,review" />

  <!-- articleBody: full plain text for AI indexing.
       Use semantic HTML inside — AI crawlers follow
       heading hierarchy for document structure. -->
  <div itemprop="articleBody">
    <h2>Design & Build Quality</h2>
    <p>The Pro 900 features aircraft-grade aluminum...</p>

    <h2>Sound Performance</h2>
    <p>40mm dynamic drivers deliver wide soundstage...</p>

    <h2>Verdict</h2>
    <p>Best-in-class ANC for the price in 2026.</p>
  </div>

  <!-- speakable: sections AI / voice assistants
       should prioritise for spoken summaries -->
  <div itemprop="speakable" itemscope
       itemtype="https://schema.org/SpeakableSpecification">
    <meta itemprop="cssSelector" content="h1, h2, p" />
  </div>

</article>
AI crawler tips: Render full content server-side (SSR/SSG). Avoid hiding article text behind JS. Include a visible datePublished — AI models use recency to rank cited sources. Add robots.txt allow rules for GPTBot, ClaudeBot, Google-Extended if you want AI indexing.
Organization / Person schema.org/Organization · Person
NoteDeclare once sitewide — typically in the footer or a hidden block. Drives knowledge panels, author trust, and sameAs entity disambiguation across the web.
Property Value Priority
name Legal org / full person name Required
url Homepage / profile URL Required
logo (Org) ImageObject of brand logo Recommended
sameAs Array of authoritative profile URLs (Wikipedia, LinkedIn, Wikidata…) Recommended
contactPoint Phone / email / support type Recommended
foundingDate (Org) ISO date org was founded Optional
numberOfEmployees (Org) QuantitativeValue Optional
jobTitle (Person) Role / occupation Optional
knowsAbout (Person) Topic expertise — AI trust signal Optional
HTML · Organization
<!-- Typically in <footer> or a hidden div -->
<div itemscope
     itemtype="https://schema.org/Organization">

  <meta itemprop="name"         content="BrandX Inc."               />
  <meta itemprop="url"          content="https://example.com"        />
  <meta itemprop="foundingDate" content="2010"                     />
  <meta itemprop="email"        content="support@example.com"       />
  <meta itemprop="telephone"    content="+1-800-555-0100"           />

  <!-- Logo -->
  <div itemprop="logo" itemscope
       itemtype="https://schema.org/ImageObject">
    <link itemprop="url"
          href="https://example.com/logo.png"                   />
    <meta itemprop="width"  content="200"                       />
    <meta itemprop="height" content="60"                        />
  </div>

  <!-- sameAs: links to authoritative external profiles -->
  <link itemprop="sameAs"
        href="https://en.wikipedia.org/wiki/BrandX"              />
  <link itemprop="sameAs"
        href="https://www.linkedin.com/company/brandx"           />
  <link itemprop="sameAs"
        href="https://twitter.com/brandx"                       />
  <link itemprop="sameAs"
        href="https://www.wikidata.org/wiki/Q12345"             />

  <!-- Contact point -->
  <div itemprop="contactPoint" itemscope
       itemtype="https://schema.org/ContactPoint">
    <meta itemprop="contactType"    content="customer support"    />
    <meta itemprop="telephone"      content="+1-800-555-0100"    />
    <meta itemprop="availableLanguage" content="English"        />
    <meta itemprop="areaServed"     content="US"                 />
  </div>

</div>
HTML · Person (author / founder)
<div itemscope
     itemtype="https://schema.org/Person">

  <meta itemprop="name"       content="Jane Smith"                   />
  <meta itemprop="jobTitle"   content="Senior Audio Engineer"         />
  <meta itemprop="email"      content="jane@example.com"              />
  <link itemprop="url"
        href="https://example.com/authors/jane"                    />

  <!-- Expertise — strong AI authorship signal -->
  <meta itemprop="knowsAbout" content="headphones"                  />
  <meta itemprop="knowsAbout" content="active noise cancellation"   />
  <meta itemprop="knowsAbout" content="consumer electronics"        />

  <!-- sameAs: LinkedIn, ORCID, personal site, etc. -->
  <link itemprop="sameAs"
        href="https://www.linkedin.com/in/jane-smith"              />
  <link itemprop="sameAs"
        href="https://twitter.com/janesmith"                      />

  <!-- Affiliation -->
  <div itemprop="affiliation" itemscope
       itemtype="https://schema.org/Organization">
    <meta itemprop="name" content="BrandX Review Hub"              />
  </div>

</div>
sameAs is your most powerful property. Google and AI crawlers use it to link your entity to authoritative third-party sources — Wikipedia, Wikidata, LinkedIn, Crunchbase. The more high-quality sameAs targets, the stronger the knowledge panel signal.
NewsArticle / BlogPosting schema.org/NewsArticle · BlogPosting
NoteNewsArticle targets Google's Top Stories carousel — requires AMP or Core Web Vitals compliance. BlogPosting is the correct type for standard blog content; it extends Article and does not require AMP.
Property Value Priority
headline Max 110 chars for Top Stories Required
datePublished ISO 8601 datetime with timezone Required
dateModified Must be ≥ datePublished Required
author Person or Organization Required
publisher Organization with logo Required
image Min 1200×628px for Top Stories Required
articleSection Category / section name Recommended
wordCount Integer word count Optional
isAccessibleForFree "True" / "False" (paywall signal) Optional
HTML · NewsArticle
<article itemscope
          itemtype="https://schema.org/NewsArticle">

  <!-- Headline: 110 char max for Top Stories -->
  <h1 itemprop="headline">
    BrandX Pro 900 Wins Best ANC Headphone 2026
  </h1>

  <!-- Dates — include timezone offset -->
  <time itemprop="datePublished"
        datetime="2026-03-05T09:00:00+00:00">
    March 5, 2026
  </time>
  <meta itemprop="dateModified"
        content="2026-03-05T11:30:00+00:00"              />

  <!-- Author -->
  <div itemprop="author" itemscope
       itemtype="https://schema.org/Person">
    <span itemprop="name">Jane Smith</span>
    <link itemprop="url"
          href="https://example.com/authors/jane"          />
  </div>

  <!-- Publisher with logo (required for Top Stories) -->
  <div itemprop="publisher" itemscope
       itemtype="https://schema.org/Organization">
    <meta itemprop="name" content="BrandX Review Hub"        />
    <div itemprop="logo" itemscope
         itemtype="https://schema.org/ImageObject">
      <link itemprop="url"
            href="https://example.com/logo.png"              />
      <meta itemprop="width"  content="200"                  />
      <meta itemprop="height" content="60"                   />
    </div>
  </div>

  <!-- Hero image: 1200×628px min for Top Stories -->
  <div itemprop="image" itemscope
       itemtype="https://schema.org/ImageObject">
    <img itemprop="url"
         src="https://example.com/news/hero.jpg"
         alt="BrandX Pro 900 award ceremony"                 />
    <meta itemprop="width"  content="1200"                  />
    <meta itemprop="height" content="628"                   />
  </div>

  <!-- Section + extras -->
  <meta itemprop="articleSection"      content="Awards"        />
  <meta itemprop="wordCount"           content="820"           />
  <meta itemprop="isAccessibleForFree" content="True"          />

  <!-- Body text -->
  <div itemprop="articleBody">
    <p>The BrandX Pro 900 claimed the top spot...</p>
  </div>

</article>

<!-- ── BlogPosting: swap itemtype only ── -->
<article itemscope
          itemtype="https://schema.org/BlogPosting">
  <!-- Same properties as NewsArticle.
       No AMP required. No 1200px image rule.
       Use for standard blog posts / tutorials. -->
  <h1 itemprop="headline">How to Choose ANC Headphones</h1>
  <!-- ... same nested structure ... -->
</article>
Top Stories eligibility checklist:headline ≤ 110 chars ② datePublished with full timezone ③ publisher.logo present ④ hero image ≥ 1200×628px ⑤ page passes Core Web Vitals. Missing any one of these will disqualify the article from the carousel.
SoftwareApplication schema.org/SoftwareApplication
NotePowers app rich results (rating, price, OS) in Google Search and the Play/App Store knowledge panels. Use MobileApplication or WebApplication subtypes for more precision.
Property Value Priority
name App name as listed in store Required
operatingSystem "iOS", "Android", "Windows"… Required
applicationCategory GameApplication, MusicApplication, etc. Required
aggregateRating Nested AggregateRating Recommended
offers Price / Free indicator Recommended
softwareVersion Current release version string Recommended
downloadUrl Direct download / store URL Optional
fileSize e.g. "45MB" Optional
screenshot ImageObject of app screenshot Optional
featureList Comma-separated feature strings Optional
HTML · SoftwareApplication
<div itemscope
     itemtype="https://schema.org/MobileApplication">

  <!-- Identity -->
  <h1 itemprop="name">BrandX Sound Studio</h1>
  <meta itemprop="softwareVersion"      content="4.2.1"        />

  <!-- Platform -->
  <meta itemprop="operatingSystem"     content="iOS, Android" />
  <meta itemprop="applicationCategory"  content="MusicApplication" />
  <meta itemprop="fileSize"            content="68MB"         />

  <!-- Aggregate rating (same nesting as Product) -->
  <div itemprop="aggregateRating" itemscope
       itemtype="https://schema.org/AggregateRating">
    <meta itemprop="ratingValue"  content="4.6"    />
    <meta itemprop="reviewCount"  content="28400"  />
    <meta itemprop="bestRating"   content="5"      />
    <meta itemprop="worstRating"  content="1"      />
    <span>★★★★½ — 28,400 ratings</span>
  </div>

  <!-- Offer: free app example -->
  <div itemprop="offers" itemscope
       itemtype="https://schema.org/Offer">
    <meta itemprop="price"         content="0"    />
    <meta itemprop="priceCurrency" content="USD"  />
    <span>Free</span>
  </div>

  <!-- Download link -->
  <a itemprop="downloadUrl"
     href="https://apps.apple.com/app/brandx-sound-studio">
    Download on the App Store
  </a>

  <!-- Screenshot -->
  <div itemprop="screenshot" itemscope
       itemtype="https://schema.org/ImageObject">
    <img itemprop="url"
         src="https://example.com/app/screenshot1.png"
         alt="BrandX Sound Studio equalizer screen"          />
  </div>

  <!-- Feature list -->
  <meta itemprop="featureList"
        content="10-band EQ, Spatial Audio, Sleep Timer, Offline Mode" />

</div>

<!-- ── WebApplication variant ── -->
<div itemscope
     itemtype="https://schema.org/WebApplication">
  <!-- Same as above but add: -->
  <meta itemprop="browserRequirements"
        content="Requires JavaScript. Chrome 90+, Firefox 88+." />
  <link itemprop="url"
        href="https://app.example.com"                         />
</div>
Subtype guide: Use MobileApplication for native iOS/Android apps, WebApplication for browser-based tools (SaaS, dashboards), and the base SoftwareApplication for desktop software or when the platform is mixed. applicationCategory values must match schema.org's enumerated list — common valid values include GameApplication, MusicApplication, UtilitiesApplication, BusinessApplication.