🔥Keystone Cohort: Be the AI-Cited Source — Content Structure & Schema

  1. SEJ
  2.  ⋅ 
  3. SEO

Google’s New Merchant Listing Structured Data Improves SEO

Google's new Category and Sale Duration structured data properties help merchants rank better information in the search results.

Google’s New Merchant Listing Structured Data Improves SEO

Google made a major change to their Merchant Listing structured data requirements in addition to adding clarification on how to use structured data to indicate how long a sale prices will last. In total, there are three new additions but the biggest change by far is the addition of a new Category property. While it’s not a “required” structured data property it’s still a recommended one.

New Category Property

In Schema.org structured data, a Type is a classification of an entity, to say what something is. A structured data Property is an attribute of the Type, it can say what kind of type or add other descriptive details about the Type.

Google added a new category property to the Product structured data, which enables merchants to more granularly classify products directly in markup rather than relying solely on feed attributes. It also gives merchants a way to tie the web page structured data to Google’s own product taxonomy, closing a gap between what’s marked up on the page and what’s submitted through the Merchant Center feed.

Google’s new category property accepts either plain text or a CategoryCode object.

Plain Text

Plain text works like the existing product_type attribute in product feeds. It’s a custom category label that merchants define themselves.

CategoryCode

CategoryCode is a structured object that lets you declare a Google Product Category (GPC) directly in markup, using inCodeSet to point to Google’s taxonomy and codeValue to specify the category, either by numeric ID or full path. The CategoryCode object directly corresponds to the merchant feed specific Google Product Category (GPC). CategoryCode enables merchants to put that same GPC value directly into their on-page structured data instead of it only appearing in the merchant feed.

Here is example structured data showing how it works:

"category": [
{
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "2271"
},
{
"@type": "CategoryCode",
"inCodeSet": "https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt",
"codeValue": "Apparel & Accessories > Clothing > Dresses"
},
"Dresses",
"Special Occasion > Wedding & Bridal Party Dresses"
]

Google’s new guidance explains:

“Text or CategoryCode

Specifies the product’s categories. This property can accept an array of values, mixing plain text strings and CategoryCode objects.

Custom product types: Plain Text values represent your custom product category, similar to the product_type attribute in product feeds. We recommend keeping custom product types under the 750-character limit.

Google Product Category (GPC): To specify a GPC, similar to the google_product_category attribute in product feeds, use the CategoryCode type.

Set @type to CategoryCode.

Set inCodeSet to a Google Product Taxonomy URL (for example, “https://www.google.com/basepages/producttype/taxonomy-with-ids.en-US.txt”).

Set codeValue to the GPC ID (for example, “2271”) or the full category path (for example, “Apparel & Accessories > Clothing > Dresses”).

When using the path format, use > as the separator between levels. Each segment in the path must contain at least one letter. Numeric IDs are also accepted.
You can provide multiple category values. For example, you can include several GPC codes or paths and several custom product type strings.”

Sale Duration Structured Data

Google also added a new section to the Merchant Listing structured data documentation that enables merchants to express how long a sale will last. It adds new documentation about three properties:

  • priceValidUntil
  • validFrom
  • validThrough

Here are the new explanations:

“priceValidUntil

Date

The date and time after which the price will no longer be available, in ISO 8601 format. Your listing may not display if the priceValidUntil property indicates a past date. For details and markup examples, see Sale duration.

validFrom
DateTime or Date

The start date and time when the price is valid, in ISO 8601 format. For details and markup examples, see Sale duration.

validThrough
DateTime or Date

The end date and time when the price is valid, in ISO 8601 format. For details and markup examples, see Sale duration.”

Sale Duration

Lastly there is an entirely new section about Sale Duration. Sale duration is just the date that corresponds to the three structured data properties, priceValidUntil, validFrom, and validThrough. It tells Google exactly when a sale price starts and ends. It’s meant to keep sale pricing accurate in search results, so a listing doesn’t keep showing a deal after it’s expired.

The new documentation explains:

“Sale duration
To specify the period when a sale price is active, use the following schema.org properties in ISO 8601 format (for example, 2025-12-31T23:59:59+01:00):

Start date and time: Use the validFrom property.
End date and time: Use either the validThrough property or the priceValidUntil property.

Best practices:
Provide both a start and an end date/time to clearly define the sale period.
Ensure the start date/time (from the validFrom property) is earlier than or equal to the end date/time (from the validThrough property or the priceValidUntil property).

We recommend including the time and timezone in the ISO 8601 format for accuracy in Google systems.

Where to place the properties:
On the Offer node: You can add the validFrom property and (the validThrough property or the priceValidUntil property) directly to the Offer node. These dates apply when the price property on the Offer node represents the current active sale price.

On a PriceSpecification node: If the sale price is defined within a PriceSpecification node (typically one without the priceType property when a StrikethroughPrice value is also present), add the validFrom property and the validThrough property to that specific PriceSpecification node. Note that the priceValidUntil property isn’t applicable to the PriceSpecification type.”

How It Benefits Merchants

Google’s new documentation enables merchants to express category and sale pricing details directly in structured data, which helps Google display accurate product information in the search results. The new structured data properties create unity between the Schema.org structured data and the Merchant Feed Google Product Category (GPC) data. Category now matches product_type and google_product_category from Merchant Center feeds, and Sale Duration matches sale_price_effective_date, so merchants have a page-level way to express them instead of relying solely on the feed.

Featured Image by Shutterstock/allegro

Category News SEO
SEJ STAFF Roger Montti Owner - Martinibuster.com at Martinibuster.com

I have 25 years hands-on experience in SEO, evolving along with the search engines by keeping up with the latest ...