{"id":25526,"date":"2026-09-05T02:44:51","date_gmt":"2026-09-04T23:44:51","guid":{"rendered":"https:\/\/alienroad.com\/google-bilgi-bankasi\/product-variant-structured-data-productgroup-product\/"},"modified":"2026-09-05T02:44:51","modified_gmt":"2026-09-04T23:44:51","slug":"product-variant-structured-data-productgroup-product","status":"publish","type":"ar_kb","link":"https:\/\/alienroad.com\/google-bilgi-bankasi\/product-variant-structured-data-productgroup-product\/","title":{"rendered":"Product variant structured data (ProductGroup, Product)"},"content":{"rendered":"<p><img decoding=\"async\" class=\"attempt-right\" src=\"https:\/\/alienroad.com\/wp-content\/uploads\/kb-gorsel\/g-7ac24c90973b.png\" loading=\"lazy\" alt=\"product variants in search results\"><\/p>\n<p>\n  Many types of products such as apparel, shoes, furniture, electronic devices, and luggage are sold<br \/>\n  in different variations (for example various sizes, colors, materials, or patterns). To help Google<br \/>\n  better understand which products are variations of the same parent product, use the <code>ProductGroup<\/code> class with<br \/>\n  associated properties <code>variesBy<\/code>, <code>hasVariant<\/code>, and <code>productGroupID<\/code><br \/>\n  to group such variants together, in addition to <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/introduction-to-product-structured-data\/\"><code>Product<\/code> structured data<\/a>.<br \/>\n  Adding this markup also makes your products eligible for display with variant information in<br \/>\n  merchant listing experiences.\n<\/p>\n<p>\n  <code>ProductGroup<\/code> also lets you specify common product-properties for all variants, such as<br \/>\n  brand and review information, as well as the variant-determining properties, which<br \/>\n  can reduce the duplication of information.\n<\/p>\n<h2 id=\"add-structured-data\" tabindex=\"-1\">\n    How to add structured data<br \/>\n  <\/h2>\n<p>\n    Structured data is a standardized format for providing information about a page and classifying the page<br \/>\n    content. If you&#8217;re new to structured data, you can learn more about<br \/>\n    <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/structured-data-intro\/\">how structured data works<\/a>.\n    <\/p>\n<p>\n    Here&#8217;s an overview of how to build, test, and release structured data.<\/p>\n<ol>\n<li>Add the <a href=\"#structured-data-type-definitions\">required properties<\/a>. Based on the<br \/>\n      format you&#8217;re using, learn where to <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/structured-data-intro\/#format-placement\">insert structured data on the page<\/a>.<\/p>\n<aside class=\"note\">\n      <b>Using a CMS?<\/b> It may be easier to use a plugin that&#8217;s integrated into your CMS.<br \/>\n      <br \/>\n      <b>Using JavaScript?<\/b> Learn how to<br \/>\n      <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/generate-structured-data-with-javascript\/\">generate structured data with JavaScript<\/a>.<\/aside>\n<\/li>\n<li>Follow the <a href=\"#guidelines\">guidelines<\/a>.<\/li>\n<li>Validate your code using the<br \/>\n      <a href=\"https:\/\/search.google.com\/test\/rich-results\" class=\"external-link\">Rich Results Test<\/a><br \/>\n      and fix any critical errors. Consider also fixing any non-critical issues that may be flagged<br \/>\n      in the tool, as they can help improve the quality of your structured data (however, this isn&#8217;t necessary to be eligible for rich results). <\/li>\n<li>Deploy a few pages that include your structured data and use the <a href=\"https:\/\/support.google.com\/webmasters\/answer\/9012289\" class=\"external-link\">URL Inspection tool<\/a> to test how Google sees the page. Be sure that your page is<br \/>\n      accessible to Google and not blocked by a robots.txt file, the <code>noindex<\/code> tag, or<br \/>\n      login requirements. If the page looks okay, you can<br \/>\n      <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/recrawl-request\/\" class=\"external-link\">ask Google to recrawl your URLs<\/a>.<\/p>\n<aside class=\"note\"><b>Note<\/b>: Allow time for re-crawling and re-indexing. Remember that it<br \/>\n      may take several days after publishing a page for Google to find and crawl it.<\/aside>\n<\/li>\n<li>To keep Google informed of future changes, we recommend that you<br \/>\n      <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/build-submit-sitemap\/\" class=\"external-link\">submit a sitemap<\/a>. You can automate this with the<br \/>\n      <a href=\"https:\/\/developers.google.com\/webmaster-tools\/v1\/sitemaps\" class=\"external-link\">Search Console Sitemap API<\/a>.<\/li>\n<\/ol>\n<h2 id=\"examples\" tabindex=\"-1\">Examples<\/h2>\n<p>\n  In general, there are two main design approaches that ecommerce websites use for product variants.<br \/>\n  This section describes how to set up product variant markup, depending on your<br \/>\n  website&#8217;s design approach:\n<\/p>\n<ul>\n<li><a href=\"#single-page-website\">Single page<\/a>, where all variants are selectable on<br \/>\n  a single page without page reloads (usually through query parameters)<\/li>\n<li><a href=\"#multi-page-website\">Multi page<\/a>, where variants of the same product are<br \/>\n    accessible on different pages<\/li>\n<\/ul>\n<h3 id=\"single-page-website\" tabindex=\"-1\">Single-page website<\/h3>\n<p>The single-page website examples use a website with the following assumptions:<\/p>\n<ul>\n<li>When no variants are selected, the main product page is returned by the following URL:<br \/>\n    <code>https:\/\/www.example.com\/coat<\/code><\/li>\n<li>The same page is returned with a specific, preselected variant using the following URLs:\n<ul>\n<li><code>https:\/\/www.example.com\/coat?size=small&color=green<\/code><\/li>\n<li><code>https:\/\/www.example.com\/coat?size=small&color=lightblue<\/code><\/li>\n<li><code>https:\/\/www.example.com\/coat?size=large&color=lightblue<\/code><\/li>\n<\/ul>\n<\/li>\n<li>When the user selects a different variant on the page (using dropdowns for color and size), the<br \/>\n    image, price, and availability information change dynamically on the page without a page<br \/>\n    reload. The markup on the page doesn&#8217;t change dynamically as the user selects different variants.\n  <\/li>\n<\/ul>\n<h4 id=\"single-page-example-1\" tabindex=\"-1\">Single page example: variants nested under <code>ProductGroup<\/code><\/h4>\n<p>In this example, the variants are nested under the top-level <code>ProductGroup<\/code> entity<br \/>\n  using the <code>hasVariant<\/code> property:<\/p>\n<ul>\n<li>The <code>ProductGroup<\/code> and three <code>Offer<\/code> entities (under the <code>Product<\/code><br \/>\n    properties) all have distinct URLs. Alternatively, the URLs could have also been provided under<br \/>\n    <code>Product<\/code>.<\/li>\n<li>A common title and description are specified at the <code>ProductGroup<\/code> level.<br \/>\n    Variant-specific titles and descriptions are specified at the <code>Product<\/code> level.<\/li>\n<li>Other common variant properties (such as brand, pattern, material, and audience information) are also specified at the<br \/>\n    <code>ProductGroup<\/code> level.<\/li>\n<li>The <code>ProductGroup<\/code> specifies the variant-identifying properties using the<br \/>\n    <code>variesBy<\/code> property.<\/li>\n<li>The <code>ProductGroup<\/code> specifies the parent sku using <code>productGroupID<\/code><br \/>\n     (which doesn&#8217;t need to be repeated under the <code>Product<\/code> properties using<br \/>\n     <code>inProductGroupWithID<\/code>).<\/li>\n<\/ul>\n<p>\n  We recommend this approach because it&#8217;s the most compact and natural representation of a product<br \/>\n  group and its variants.\n<\/p>\n<form method=\"post\" target=\"_blank\" action=\"https:\/\/search.google.com\/test\/rich-results?utm_campaign=devsite&#038;utm_medium=jsonld&#038;utm_source=merchant\"><input type=\"submit\" value=\"Try it out in the Rich Results Test\" \/><textarea name=\"code_snippet\" style=\"display:none\">&lt;html&gt;<br \/>\n  &lt;head&gt;<br \/>\n    &lt;title&gt;Wool winter coat&lt;\/title&gt;<br \/>\n    &lt;script type=&#8221;application\/ld+json&#8221;&gt;<br \/>\n    [<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org\/&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;ProductGroup&#8221;,<br \/>\n        &#8220;name&#8221;: &#8220;Wool winter coat&#8221;,<br \/>\n        &#8220;description&#8221;: &#8220;Wool coat, new for the coming winter season&#8221;,<br \/>\n        &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat&#8221;,<br \/>\n        &#8220;brand&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;Brand&#8221;,<br \/>\n          &#8220;name&#8221;: &#8220;Good brand&#8221;<br \/>\n        },<br \/>\n        &#8220;audience&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;PeopleAudience&#8221;,<br \/>\n          &#8220;suggestedGender&#8221;: &#8220;unisex&#8221;,<br \/>\n          &#8220;suggestedAge&#8221;: {<br \/>\n            &#8220;@type&#8221;: &#8220;QuantitativeValue&#8221;,<br \/>\n            &#8220;minValue&#8221;: 13,<br \/>\n            &#8220;unitCode&#8221;: &#8220;ANN&#8221;<br \/>\n          }<br \/>\n        },<br \/>\n        &#8220;productGroupID&#8221;: &#8220;44E01&#8221;,<br \/>\n        &#8220;pattern&#8221;: &#8220;striped&#8221;,<br \/>\n        &#8220;material&#8221;: &#8220;wool&#8221;,<br \/>\n        &#8220;variesBy&#8221;: [<br \/>\n          &#8220;https:\/\/schema.org\/size&#8221;,<br \/>\n          &#8220;https:\/\/schema.org\/color&#8221;<br \/>\n        ],<br \/>\n        &#8220;hasVariant&#8221;: [<br \/>\n          {<br \/>\n            &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n            &#8220;sku&#8221;: &#8220;44E01-M11000&#8221;,<br \/>\n            &#8220;gtin14&#8221;: &#8220;98766051104214&#8221;,<br \/>\n            &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_small_green.jpg&#8221;,<br \/>\n            &#8220;name&#8221;: &#8220;Small green coat&#8221;,<br \/>\n            &#8220;description&#8221;: &#8220;Small wool green coat for the winter season&#8221;,<br \/>\n            &#8220;color&#8221;: &#8220;Green&#8221;,<br \/>\n            &#8220;size&#8221;: &#8220;small&#8221;,<br \/>\n            &#8220;offers&#8221;: {<br \/>\n              &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n              &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=small&amp;color=green&#8221;,<br \/>\n              &#8220;priceCurrency&#8221;: &#8220;USD&#8221;,<br \/>\n              &#8220;price&#8221;: 39.99,<br \/>\n              &#8220;itemCondition&#8221;: &#8220;https:\/\/schema.org\/NewCondition&#8221;,<br \/>\n              &#8220;availability&#8221;: &#8220;https:\/\/schema.org\/InStock&#8221;,<br \/>\n              &#8220;shippingDetails&#8221;: { &#8220;@id&#8221;: &#8220;#shipping_policy&#8221; },<br \/>\n              &#8220;hasMerchantReturnPolicy&#8221;: { &#8220;@id&#8221;: &#8220;#return_policy&#8221; }<br \/>\n            }<br \/>\n          },<br \/>\n          {<br \/>\n            &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n            &#8220;sku&#8221;: &#8220;44E01-K11000&#8221;,<br \/>\n            &#8220;gtin14&#8221;: &#8220;98766051104207&#8221;,<br \/>\n            &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_small_lightblue.jpg&#8221;,<br \/>\n            &#8220;name&#8221;: &#8220;Small light blue coat&#8221;,<br \/>\n            &#8220;description&#8221;: &#8220;Small wool light blue coat for the winter season&#8221;,<br \/>\n            &#8220;color&#8221;: &#8220;light blue&#8221;,<br \/>\n            &#8220;size&#8221;: &#8220;small&#8221;,<br \/>\n            &#8220;offers&#8221;: {<br \/>\n              &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n              &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=small&amp;color=lightblue&#8221;,<br \/>\n              &#8220;priceCurrency&#8221;: &#8220;USD&#8221;,<br \/>\n              &#8220;price&#8221;: 39.99,<br \/>\n              &#8220;itemCondition&#8221;: &#8220;https:\/\/schema.org\/NewCondition&#8221;,<br \/>\n              &#8220;availability&#8221;: &#8220;https:\/\/schema.org\/InStock&#8221;,<br \/>\n              &#8220;shippingDetails&#8221;: { &#8220;@id&#8221;: &#8220;#shipping_policy&#8221; },<br \/>\n              &#8220;hasMerchantReturnPolicy&#8221;: { &#8220;@id&#8221;: &#8220;#return_policy&#8221; }<br \/>\n            }<br \/>\n          },<br \/>\n          {<br \/>\n            &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n            &#8220;sku&#8221;: &#8220;44E01-X1100000&#8221;,<br \/>\n            &#8220;gtin14&#8221;: &#8220;98766051104399&#8221;,<br \/>\n            &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_large_lightblue.jpg&#8221;,<br \/>\n            &#8220;name&#8221;: &#8220;Large light blue coat&#8221;,<br \/>\n            &#8220;description&#8221;: &#8220;Large wool light blue coat for the winter season&#8221;,<br \/>\n            &#8220;color&#8221;: &#8220;light blue&#8221;,<br \/>\n            &#8220;size&#8221;: &#8220;large&#8221;,<br \/>\n            &#8220;offers&#8221;: {<br \/>\n              &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n              &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=large&amp;color=lightblue&#8221;,<br \/>\n              &#8220;priceCurrency&#8221;: &#8220;USD&#8221;,<br \/>\n              &#8220;price&#8221;: 49.99,<br \/>\n              &#8220;itemCondition&#8221;: &#8220;https:\/\/schema.org\/NewCondition&#8221;,<br \/>\n              &#8220;availability&#8221;: &#8220;https:\/\/schema.org\/BackOrder&#8221;,<br \/>\n              &#8220;shippingDetails&#8221;: { &#8220;@id&#8221;: &#8220;#shipping_policy&#8221; },<br \/>\n              &#8220;hasMerchantReturnPolicy&#8221;: { &#8220;@id&#8221;: &#8220;#return_policy&#8221; }<br \/>\n            }<br \/>\n          }<br \/>\n        ]<br \/>\n      },<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org\/&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;OfferShippingDetails&#8221;,<br \/>\n        &#8220;@id&#8221;: &#8220;#shipping_policy&#8221;,<br \/>\n        &#8220;shippingRate&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;MonetaryAmount&#8221;,<br \/>\n          &#8220;value&#8221;: 2.99,<br \/>\n          &#8220;currency&#8221;: &#8220;USD&#8221;<br \/>\n        },<br \/>\n        &#8220;shippingDestination&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;DefinedRegion&#8221;,<br \/>\n          &#8220;addressCountry&#8221;: &#8220;US&#8221;<br \/>\n        },<br \/>\n        &#8220;deliveryTime&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;ShippingDeliveryTime&#8221;,<br \/>\n          &#8220;handlingTime&#8221;: {<br \/>\n            &#8220;@type&#8221;: &#8220;QuantitativeValue&#8221;,<br \/>\n            &#8220;minValue&#8221;: 0,<br \/>\n            &#8220;maxValue&#8221;: 1,<br \/>\n            &#8220;unitCode&#8221;: &#8220;DAY&#8221;<br \/>\n          },<br \/>\n          &#8220;transitTime&#8221;: {<br \/>\n            &#8220;@type&#8221;: &#8220;QuantitativeValue&#8221;,<br \/>\n            &#8220;minValue&#8221;: 1,<br \/>\n            &#8220;maxValue&#8221;: 5,<br \/>\n            &#8220;unitCode&#8221;: &#8220;DAY&#8221;<br \/>\n          }<br \/>\n        }<br \/>\n      },<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;http:\/\/schema.org\/&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;MerchantReturnPolicy&#8221;,<br \/>\n        &#8220;@id&#8221;: &#8220;#return_policy&#8221;,<br \/>\n        &#8220;applicableCountry&#8221;: &#8220;US&#8221;,<br \/>\n        &#8220;returnPolicyCountry&#8221;: &#8220;US&#8221;,<br \/>\n        &#8220;returnPolicyCategory&#8221;: &#8220;https:\/\/schema.org\/MerchantReturnFiniteReturnWindow&#8221;,<br \/>\n        &#8220;merchantReturnDays&#8221;: 60,<br \/>\n        &#8220;returnMethod&#8221;: &#8220;https:\/\/schema.org\/ReturnByMail&#8221;,<br \/>\n        &#8220;returnFees&#8221;: &#8220;https:\/\/schema.org\/FreeReturn&#8221;<br \/>\n      }<br \/>\n    ]<br \/>\n    &lt;\/script&gt;<br \/>\n  &lt;\/head&gt;<br \/>\n  &lt;body&gt;<br \/>\n  &lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/textarea><\/form>\n<p><\/p>\n<div><\/div>\n<h4 id=\"single-page-example-2\" tabindex=\"-1\">Single page example: variants separate from <code>ProductGroup<\/code><\/h4>\n<p>This structure is similar to the previous example except the variants are defined separate (unnested) from<br \/>\n  the <code>ProductGroup<\/code>. This approach might be easier for some content management systems (CMSes) to<br \/>\n  generate.<\/p>\n<form method=\"post\" target=\"_blank\" action=\"https:\/\/search.google.com\/test\/rich-results?utm_campaign=devsite&#038;utm_medium=jsonld&#038;utm_source=merchant\"><input type=\"submit\" value=\"Try it out in the Rich Results Test\" \/><textarea name=\"code_snippet\" style=\"display:none\">&lt;html&gt;<br \/>\n  &lt;head&gt;<br \/>\n    &lt;title&gt;Wool winter coat&lt;\/title&gt;<br \/>\n    &lt;script type=&#8221;application\/ld+json&#8221;&gt;<br \/>\n    [<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;ProductGroup&#8221;,<br \/>\n        &#8220;@id&#8221;: &#8220;#coat_parent&#8221;,<br \/>\n        &#8220;name&#8221;: &#8220;Wool winter coat&#8221;,<br \/>\n        &#8220;description&#8221;: &#8220;Wool coat, new for the coming winter season&#8221;,<br \/>\n        &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat&#8221;,<br \/>\n        \/\/ &#8230; other ProductGroup-level properties<br \/>\n        &#8220;brand&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;Brand&#8221;,<br \/>\n          &#8220;name&#8221;: &#8220;Good brand&#8221;<br \/>\n        },<br \/>\n        &#8220;productGroupID&#8221;: &#8220;44E01&#8221;,<br \/>\n        &#8220;variesBy&#8221;: [<br \/>\n          &#8220;https:\/\/schema.org\/size&#8221;,<br \/>\n          &#8220;https:\/\/schema.org\/color&#8221;<br \/>\n        ]<br \/>\n      },<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n        &#8220;isVariantOf&#8221;: { &#8220;@id&#8221;: &#8220;#coat_parent&#8221; },<br \/>\n        &#8220;name&#8221;: &#8220;Small green coat&#8221;,<br \/>\n        &#8220;description&#8221;: &#8220;Small wool green coat for the winter season&#8221;,<br \/>\n        &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_small_green.jpg&#8221;,<br \/>\n        &#8220;size&#8221;: &#8220;small&#8221;,<br \/>\n        &#8220;color&#8221;: &#8220;green&#8221;,<br \/>\n        \/\/ &#8230; other Product-level properties<br \/>\n        &#8220;offers&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n          &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=small&amp;color=green&#8221;,<br \/>\n          &#8220;price&#8221;: 39.99,<br \/>\n          &#8220;priceCurrency&#8221;: &#8220;USD&#8221;<br \/>\n          \/\/ &#8230; other offer-level properties<br \/>\n        }<br \/>\n      },<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n        &#8220;isVariantOf&#8221;: { &#8220;@id&#8221;: &#8220;#coat_parent&#8221; },<br \/>\n        &#8220;name&#8221;: &#8220;Small dark blue coat&#8221;,<br \/>\n        &#8220;description&#8221;: &#8220;Small wool light blue coat for the winter season&#8221;,<br \/>\n        &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_small_lightblue.jpg&#8221;,<br \/>\n        &#8220;size&#8221;: &#8220;small&#8221;,<br \/>\n        &#8220;color&#8221;: &#8220;light blue&#8221;,<br \/>\n        \/\/ &#8230; other Product-level properties<br \/>\n        &#8220;offers&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n          &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=small&amp;color=lightblue&#8221;,<br \/>\n          &#8220;price&#8221;: 39.99,<br \/>\n          &#8220;priceCurrency&#8221;: &#8220;USD&#8221;<br \/>\n          \/\/ &#8230; other offer-level properties<br \/>\n        }<br \/>\n      },<br \/>\n      {<br \/>\n        &#8220;@context&#8221;: &#8220;https:\/\/schema.org&#8221;,<br \/>\n        &#8220;@type&#8221;: &#8220;Product&#8221;,<br \/>\n        &#8220;isVariantOf&#8221;: { &#8220;@id&#8221;: &#8220;#coat_parent&#8221; },<br \/>\n        &#8220;name&#8221;: &#8220;Large light blue coat&#8221;,<br \/>\n        &#8220;description&#8221;: &#8220;Large wool light blue coat for the winter season&#8221;,<br \/>\n        &#8220;image&#8221;: &#8220;https:\/\/www.example.com\/coat_large_lightblue.jpg&#8221;,<br \/>\n        &#8220;size&#8221;: &#8220;large&#8221;,<br \/>\n        &#8220;color&#8221;: &#8220;light blue&#8221;,<br \/>\n        \/\/ &#8230; other Product-level properties<br \/>\n        &#8220;offers&#8221;: {<br \/>\n          &#8220;@type&#8221;: &#8220;Offer&#8221;,<br \/>\n          &#8220;url&#8221;: &#8220;https:\/\/www.example.com\/coat?size=large&amp;color=lightblue&#8221;,<br \/>\n          &#8220;price&#8221;: 49.99,<br \/>\n          &#8220;priceCurrency&#8221;: &#8220;USD&#8221;<br \/>\n          \/\/ &#8230; other offer-level properties<br \/>\n        }<br \/>\n      }<br \/>\n    ]<br \/>\n    &lt;\/script&gt;<br \/>\n  &lt;\/head&gt;<br \/>\n  &lt;body&gt;<br \/>\n  &lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/textarea><\/form>\n<p><\/p>\n<div><\/div>\n<h3 id=\"multi-page-website\" tabindex=\"-1\">Multi-page website<\/h3>\n<p>The multi-page website markup examples use a website with the following assumptions:<\/p>\n<ul>\n<li>The light blue variants are available at the following URLs for small and large sizes:\n<ul>\n<li><code>https:\/\/www.example.com\/coat\/lightblue?size=small<\/code><\/li>\n<li><code>https:\/\/www.example.com\/coat\/lightblue?size=large<\/code><\/li>\n<\/ul>\n<\/li>\n<li>The green variant is available only in size small at <code>https:\/\/www.example.com\/coat\/green?size=small<\/code>.<\/li>\n<li>Both pages allow &#8220;jumping&#8221; to the other page (meaning, the page reloads) through a color selector in the UI.<\/li>\n<li>The site splits the equivalent markup from the single page examples across the two pages.<\/li>\n<\/ul>\n<p>Notice that there&#8217;s no <code>ProductGroup<\/code> definition on only one page which gets<br \/>\n  referenced from another page. This is because the <code>ProductGroup<\/code> needs to reference common<br \/>\n  attributes of the variants, such as brand, material, and age group. This also means that the full<br \/>\n  <code>ProductGroup<\/code> definition needs to be repeated on each of the variant pages.<\/p>\n<h4 id=\"multi-page-example-1\" tabindex=\"-1\">Multi-page example: variants nested under <code>ProductGroup<\/code><\/h4>\n<p>\n  This is the equivalent of the <a href=\"#single-page-example-1\">first single-page example<\/a>, with<br \/>\n  the variant <code>Product<\/code> properties nested under the top-level <code>ProductGroup<\/code><br \/>\n  using the<code>hasVariant<\/code> property. The <code>ProductGroup<\/code> definition is duplicated<br \/>\n  on both pages. Note the following:<\/p>\n<ul>\n<li><code>ProductGroup<\/code> doesn&#8217;t have a canonical URL, as there isn&#8217;t a single URL representing<br \/>\n    the <code>ProductGroup<\/code>.<\/li>\n<li>The <code>ProductGroup<\/code> on each page has a full definition of the variants on the page<br \/>\n    as well as a variant with only the <code>url<\/code> property to link to the variants on the<br \/>\n    other page, which helps Google find your variants.<\/li>\n<\/ul>\n<h4 id=\"multi-page-example-2\" tabindex=\"-1\">Multi-page example: variants separate from <code>ProductGroup<\/code><\/h4>\n<p>This structure is similar to the previous multi-page example, except the variants are defined<br \/>\n  separately (unnested) from the <code>ProductGroup<\/code>. This approach might be easier for some<br \/>\n  CMSes to generate.<\/p>\n<h2 id=\"guidelines\" tabindex=\"-1\">Guidelines<\/h2>\n<p>For your product variant markup to be eligible for usage in Google Search, you must follow<br \/>\n  these guidelines:<\/p>\n<ul>\n<li><a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/structured-data-guidelines\/\">General structured data guidelines<\/a><\/li>\n<li><a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/search-essentials-overview\/\">Search Essentials<\/a><\/li>\n<li><a href=\"#technical-guidelines\">Technical guidelines<\/a><\/li>\n<li><a href=\"https:\/\/support.google.com\/merchants\/answer\/12073010\" class=\"external-link\">Free listings guidelines<\/a> (for merchant listing experiences)<\/li>\n<\/ul>\n<h3 id=\"technical-guidelines\" tabindex=\"-1\">Technical guidelines<\/h3>\n<ul>\n<li>Each variant must have a unique ID in its corresponding structured data markup (for example,<br \/>\n    using the <code>sku<\/code> \u0438\u043b\u0438 <code>gtin<\/code> properties).<\/li>\n<li>Each product group must have a unique ID in its corresponding structured data markup, specified<br \/>\n   with the <code>inProductGroupWithID<\/code> property in variant <code>Product<\/code> properties or<br \/>\n   the <code>productGroupID<\/code> property in the <code>ProductGroup<\/code> property.<\/li>\n<li>Be sure to add <code>Product<\/code> structured data in addition to the product variant properties,<br \/>\n    following the list of <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/merchant-listing-product-offer-structured-data\/#structured-data-type-definitions\">required properties<br \/>\n    for merchant listings<\/a> (or <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/product-snippet-product-review-offer-structured-data\/#structured-data-type-definitions\">product snippets<\/a>).\n  <\/li>\n<li>For <a href=\"#single-page-website\">single-page sites<\/a>, there must be only one distinct<br \/>\n    canonical URL for the overall <code>ProductGroup<\/code> that all variants belong to. Typically<br \/>\n    this is the base URL that leads to a page without a variant pre-selected, for example: <code>https:\/\/www.example.com\/winter_coat<\/code>.<\/p>\n<aside class=\"note\">For <a href=\"#multi-page-website\">multi-page sites<\/a>, this doesn&#8217;t apply since there is no single canonical URL representing the <code>ProductGroup<\/code> property<br \/>\n    (since the variants are distributed across equally important pages).<\/aside>\n<\/li>\n<li>For <a href=\"#multi-page-website\">multi-page sites<\/a>, each page must have full and<br \/>\n    self-contained markup for the entities defined on that page (meaning, off-page entities shouldn&#8217;t<br \/>\n    be necessary to fully understand the markup on the page<br \/>\n    itself).<\/li>\n<li>The site must have the ability to preselect each variant directly with a distinct URL (using URL query parameters),<br \/>\n    for example <code>https:\/\/www.example.com\/winter_coat\/size=small&color=green<\/code>. This allows Google to crawl and<br \/>\n    identity each variant. Preselecting each variant includes showing the right image, price,<br \/>\n    and availability, as well as allowing the user to add the variant to the cart.<\/li>\n<li>If you&#8217;re a merchant optimizing for all types of shopping results, we recommend putting<br \/>\n    <code>Product<\/code> structured data in the initial HTML for best results.<\/li>\n<li><b>For JavaScript-generated <code>Product<\/code> markup<\/b>: Be aware that <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/generate-structured-data-with-javascript\/\">dynamically-generated markup<\/a><br \/>\n    can make Shopping crawls less frequent and less reliable, which can be an issue for<br \/>\n    fast-changing content like product availability and price. If you&#8217;re using JavaScript to<br \/>\n    generate <code>Product<\/code> markup, make sure your server has enough computing resources to<br \/>\n    handle increased traffic from Google.<\/li>\n<\/ul>\n<h2 id=\"structured-data-type-definitions\" tabindex=\"-1\">Structured data type definitions<\/h2>\n<p>You must include the required properties for your structured data to be eligible for usage in<br \/>\n  Google Search. You can also include the recommended properties to add more information about your<br \/>\n  product variants, which could provide a better user experience.<\/p>\n<h3 id=\"productgroup\" tabindex=\"-1\"><code>ProductGroup<\/code><\/h3>\n<p>Google recognizes the following properties of <code>ProductGroup<\/code>. The full definition<br \/>\n  of <code>ProductGroup<\/code> is available at<br \/>\n  <a href=\"https:\/\/schema.org\/ProductGroup\" class=\"external-link\">schema.org\/ProductGroup<\/a>. When you mark up<br \/>\n  your content with product variant information, use the following properties of the<br \/>\n  <code>ProductGroup<\/code> property.\n<\/p>\n<table class=\"responsive fixed\">\n<colgroup>\n<col width=\"20%\"><\/colgroup>\n<thead>\n<tr>\n<th colspan=\"2\">Required properties<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>name<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Text\" class=\"external-link\">Text<\/a><\/code><\/p>\n<p>The name of the <code>ProductGroup<\/code> (for example, &#8220;Wool winter coat&#8221;). Make sure that<br \/>\n        the name of the variants in each <code>Product<\/code> item is more specific<br \/>\n        (for example, &#8220;Wool winter coat &#8211; green, size small&#8221;, based on the variant-identifying properties.<br \/>\n        See the <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/merchant-listing-product-offer-structured-data\/#name\">Product documentation<\/a> for details.\n      <\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table class=\"responsive fixed\">\n<colgroup>\n<col width=\"20%\"><\/colgroup>\n<thead>\n<tr>\n<th colspan=\"2\">Recommended properties<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>aggregateRating<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/AggregateRating\" class=\"external-link\">AggregateRating<\/a><\/code>\n    <\/p>\n<p>A nested <code>aggregateRating<\/code> of the <code>ProductGroup<\/code> (which is representative<br \/>\n        of all variants), if applicable. Follow the<br \/>\n          <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/review-snippet-review-aggregaterating-structured-data\/#guidelines\">Review snippet guidelines<\/a><br \/>\n           and the list of required and recommended<br \/>\n          <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/review-snippet-review-aggregaterating-structured-data\/#aggregated-rating-type-definition\"><code>AggregateRating<\/code> properties<\/a>.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>brand<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Brand\" class=\"external-link\">Brand<\/a><\/code>\n    <\/p>\n<p>Brand information about the <code>ProductGroup<\/code> (same across all variants), if applicable.<br \/>\n        See the <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/merchant-listing-product-offer-structured-data\/#brand\">Product documentation<\/a><br \/>\n        for details on <code>brand<\/code>.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>brand.name<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Text\" class=\"external-link\">Text<\/a><\/code>\n    <\/p>\n<p>The name of the brand of the <code>ProductGroup<\/code> (same across all variants). If you&#8217;re<br \/>\n        already adding the brand at the <code>ProductGroup<\/code> level, you don&#8217;t need to add it<br \/>\n        again at the <code>Product<\/code> level.<br \/>\n        See the <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/merchant-listing-product-offer-structured-data\/#brand\">Product documentation<\/a><br \/>\n        for details on <code>brand<\/code>.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>description<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Text\" class=\"external-link\">Text<\/a><\/code> \u0438\u043b\u0438<br \/>\n           <code><a href=\"https:\/\/schema.org\/TextObject\" class=\"external-link\">TextObject<\/a><\/code>\n    <\/p>\n<p>The description of the <code>ProductGroup<\/code>. For example, &#8220;Wool winter coat for cold<br \/>\n        weather climates&#8221;. Make sure that the variant description is more specific and ideally uses<br \/>\n        words that identify the variant (such as color, size, material).\n      <\/p>\n<aside class=\"note\">In addition to the description of the <code>ProductGroup<\/code>, we<br \/>\n        recommend also adding a description of each variant at the <code>Product<\/code><br \/>\n        level. See the <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/merchant-listing-product-offer-structured-data\/#description\">Product documentation<\/a><br \/>\n        for details.<\/aside>\n<\/td>\n<\/tr>\n<tr>\n<td><code>hasAdultConsideration<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/AdultOrientedEnumeration\" class=\"external-link\">AdultOrientedEnumeration<\/a><\/code><\/p>\n<p>Indicates that the product is designated as adult-oriented for example, because it<br \/>\n        contains nudity or sexual content. If you sell products that are considered adult-oriented according to Google&#8217;s<br \/>\n        <a href=\"https:\/\/support.google.com\/merchants\/answer\/12073010#res\" class=\"external-link\">adult-oriented content policy<\/a>,<br \/>\n        you must use this property to label them as adult-oriented. While these products<br \/>\n        are eligible to be shown in Shopping ads and free listings, they are subject to age- and<br \/>\n        country-based restrictions. Labelling them ensures that Google can apply these<br \/>\n        restrictions and show appropriate and legally compliant content to people shopping online.<br \/>\n        While schema.org defines multiple values for <code>AdultOrientedEnumeration<\/code>,<br \/>\n        Google Search only supports the value <code>https:\/\/schema.org\/SexualContentConsideration<\/code> for this property.<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>hasVariant<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Product\" class=\"external-link\">Product<\/a><\/code><\/p>\n<p>A nested <code>Product<\/code> property that is one of the variants of the<br \/>\n        <code>ProductGroup<\/code> property, if applicable. A <code>ProductGroup<\/code> typically has multiple<br \/>\n        nested variant <code>Product<\/code> properties.<\/p>\n<p>Alternatively, a variant <code>Product<\/code> property can reference back to its parent<br \/>\n        <code>ProductGroup<\/code> using the <code>isVariantOf<\/code> property on the <code>Product<\/code><br \/>\n        property.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>productGroupID<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Text\" class=\"external-link\">Text<\/a><\/code><\/p>\n<p>The identifier of the product group (also known as the <i>parent sku<\/i>). This identifier must be<br \/>\n        provided for the <code>ProductGroup<\/code> property or, alternatively, using <code>inProductGroupWithID<\/code><br \/>\n        property for variants of the <code>ProductGroup<\/code> property. If you provide the identifier<br \/>\n        for both the <code>ProductGroup<\/code> property and its variant <code>Product<\/code><br \/>\n        properties, they must match.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>review<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/Review\" class=\"external-link\">Review<\/a><\/code>\n    <\/p>\n<p>A nested <code>review<\/code> of the <code>ProductGroup<\/code>, if applicable. Follow the<br \/>\n        <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/review-snippet-review-aggregaterating-structured-data\/#guidelines\">Review snippet guidelines<\/a><br \/>\n        and the list of required and recommended<br \/>\n        <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/review-snippet-review-aggregaterating-structured-data\/#review-properties\">review properties<\/a>.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>url<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/URL\" class=\"external-link\">URL<\/a><\/code>\n    <\/p>\n<p><b>For <a href=\"#single-page-website\">single-page websites<\/a> only<\/b>: The URL (without variant<br \/>\n        selectors) where the <code>ProductGroup<\/code> property is located, if applicable. Don&#8217;t use this property<br \/>\n        for multi-page websites.\n      <\/p>\n<\/td>\n<\/tr>\n<tr>\n<td><code>variesBy<\/code><\/td>\n<td>\n<p><code><a href=\"https:\/\/schema.org\/DefinedTerm\" class=\"external-link\">DefinedTerm<\/a><\/code><\/p>\n<p>Aspects by which the variants in the <code>ProductGroup<\/code><br \/>\n        vary, (for example, size or color), if applicable. Reference these variant-identifying properties through<br \/>\n        their full Schema.org URL (for example,<br \/>\n      <code>https:\/\/schema.org\/color<\/code>). The following properties are supported:\n      <\/p>\n<ul>\n<li><code>https:\/\/schema.org\/color<\/code><\/li>\n<li><code>https:\/\/schema.org\/size<\/code><\/li>\n<li><code>https:\/\/schema.org\/suggestedAge<\/code><\/li>\n<li><code>https:\/\/schema.org\/suggestedGender<\/code><\/li>\n<li><code>https:\/\/schema.org\/material<\/code><\/li>\n<li><code>https:\/\/schema.org\/pattern<\/code><\/li>\n<\/ul>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"troubleshooting\" tabindex=\"-1\">Troubleshooting<\/h2>\n<p>\n    If you&#8217;re having trouble implementing or debugging structured data, here are some resources that<br \/>\n    may help you.\n  <\/p>\n<ul>\n<li>If you&#8217;re using a content management system (CMS) or someone else is taking care of your site,<br \/>\n      ask them to help you. Make sure to forward any Search Console message that details the issue to them.<\/li>\n<li>Google does not guarantee that features that consume structured data will show up in search results.<br \/>\n      For a list of common reasons why Google may not show your content in a rich result, see the<br \/>\n      <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/structured-data-guidelines\/\">General Structured Data Guidelines<\/a>.<\/li>\n<li>You might have an error in your structured data. Check the<br \/>\n      <a href=\"https:\/\/support.google.com\/webmasters\/answer\/13300873\" class=\"external-link\">list of structured data errors<\/a><br \/>\n      and the <a href=\"https:\/\/support.google.com\/webmasters\/answer\/9166415\" class=\"external-link\">Unparsable structured data report<\/a>.<\/li>\n<li>If you received a structured data manual action against your page, the structured data on<br \/>\n      the page will be ignored (although the page can still appear in Google Search results). To fix<br \/>\n      <a href=\"https:\/\/support.google.com\/webmasters\/answer\/9044175#zippy=%2Cstructured-data-issue\" class=\"external-link\">structured data issues<\/a>, use the <a href=\"https:\/\/support.google.com\/webmasters\/answer\/9044175\" class=\"external-link\">Manual Actions report<\/a>.\n    <\/li>\n<li>Review the <a href=\"#guidelines\">guidelines<\/a> again to identify if your content isn&#8217;t compliant<br \/>\n      with the guidelines. The problem can be caused by either spammy content or spammy markup usage.<br \/>\n        However, the issue may not be a syntax issue, and so the Rich Results Test won&#8217;t be able to<br \/>\n        identify these issues.\n    <\/li>\n<li><a href=\"https:\/\/support.google.com\/webmasters\/answer\/13300208\" class=\"external-link\">Troubleshoot missing rich results \/ drop in total rich results<\/a>.<\/li>\n<li>Allow time for re-crawling and re-indexing. Remember that it may take several days after<br \/>\n      publishing a page for Google to find and crawl it. For general questions about crawling and indexing, check the<br \/>\n      <a href=\"https:\/\/alienroad.com\/google-bilgi-bankasi\/google-search-crawling-and-indexing-faq\/\" class=\"external-link\">Google Search crawling and indexing FAQ<\/a>.\n    <\/li>\n<li>Post a question in the <a href=\"https:\/\/support.google.com\/webmasters\/community\" class=\"external-link\">Google Search Central forum<\/a>.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to mark up product variants that come in various sizes, colors, materials, or patterns.<\/p>\n","protected":false},"menu_order":101,"template":"","meta":{"footnotes":""},"ar_kb_kategori":[680],"ar_kb_etiket":[],"class_list":["post-25526","ar_kb","type-ar_kb","status-publish","has-post-thumbnail","hentry","ar_kb_kategori-shopping"],"_links":{"self":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb\/25526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb"}],"about":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/types\/ar_kb"}],"version-history":[{"count":0,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb\/25526\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media\/27558"}],"wp:attachment":[{"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/media?parent=25526"}],"wp:term":[{"taxonomy":"ar_kb_kategori","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb_kategori?post=25526"},{"taxonomy":"ar_kb_etiket","embeddable":true,"href":"https:\/\/alienroad.com\/wp-json\/wp\/v2\/ar_kb_etiket?post=25526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}