Structured Data Updates – November 2025

What are the latest structured data updates?

In November 2025, Google released some documentation updates which directly impact organisations using Organization, Review, Merchant Center, Practice Problem and Dataset structured data.

Google Updates – 5th November 2025

1. Practice Problem

Google announced that it will no longer support Practice Problem structured data as of January 2026.

Practice Problem, also known as Quiz schema markup, is used to mark up quizzes and educational problems, so that they show up in Rich Results.

I personally think this is very likely because AI mode now offers quiz and educational practice problems, rather then users interacting with them in search results. I have noticed that they are very difficult to get Rich Results for anyway, and hardly ever show up in search results, despite having Quiz or Question structured data present and correct on the page.

Google says this is part of its ongoing efforts to simplify the search results page.

Google has updated the documentation for Dataset, to clarify that it only uses it in Dataset Search and not normal Google search results. This is despite them still having the “Note: The actual appearance in search results might be different. You can preview most features with the Rich Results Test.” banner on this page.

Datasets are mostly used for things like weather data, government data and other large sets of data that people may want to search. One useful thing about datasets is that we can use the references in our sameAs or possibly in DefinedTermSet by following through from the dataset to external websites.

3. Removal of the deprecation banner from Book

Google have said that they have removed the deprecation banner from Book actions documentation, because they are actually still using structured data markup for one of the features in Google Search.

Google Updates – 11th November 2025

There are two updates to the documentation on 11th November:

1. Review & AggregateRating

Google has clarified why nesting is important, particularly for reviews and aggregate ratings. It said that you don’t need to add itemReviewed if you’ve nested the Review markup within another type such as a Product.

This is what they mean by that – this is markup using itemReviewed which could potentially be either injected with a plugin, or not nested, e.g. as part of a “graph” markup:

"aggregateRating": {
   "@type": "AggregateRating",
   "ratingValue": "5",
   "reviewCount": "1",
   "itemReviewed": {"@id": "https://www.mywebsite.com/products/product1#schema"}
}

or the longer version:

"aggregateRating": {
   "@type": "AggregateRating",
   "ratingValue": "5",
   "reviewCount": "1",
   "itemReviewed": {
      "@type": "Product",
      "@id": "https://www.mywebsite.com/products/product1#schema",
      "name": "Product 1",
      "url": "https://www.mywebsite.com/products/product1"
    }
},

If the aggregateRating or Review is already nested inside another type such as Product, like in this example below – then you don’t need the itemReviewed property:

{
  "@context": "https://schema.org/",
  "@type": "Product",
  "@id": "https://www.mywebsite.com/products/product1#schema",
  "url": "https://www.mywebsite.com/products/product1",
  "name": "Product 1",
  "image": "https://www.mywebsite.com/images/product1-photo.jpg"
  "aggregateRating": {
     "@type": "AggregateRating",
     "ratingValue": "5",
     "reviewCount": "1"
  }
}

Google said in their update that this is

“To prevent ambiguity and make sure Google can better interpret your review and aggregate rating structured data”.

2. ShippingService

Google have finally added merchant-level shipping information! This is great news as it means that the shipping costs and delivery times can be added to the Organization level structured data, rather than having to have the markup present for every single product. This is particularly useful for pages with lots of products (although best practice is to use the @id to reference the ShippingService in the first product on that page, e.g. for category pages).

Google has created a new page especially for the shipping information. The great news is that Google also allows you to override the default shipping options if you want to, by adding the OfferShippingDetails type, which is nested under the Offer type using the shippingDetails property.

It looks like this:

{
"@context": "https://schema.org/",
"@type": "Product",
"offers": {
    "@type": "Offer",
    "name": "My Great Product",
    "price": "10.00",
    "priceCurrency": "GBP",
    "itemCondition": "https://schema.org/NewCondition",
    "availability": "https://schema.org/InStock",
    "shippingDetails": {
           "@type": "OfferShippingDetails",
           "name": "Free Delivery - £100 or over",
            "shippingRate": {
                            "@type": "MonetaryAmount",
                            "value": 0,
                            "currency": "GBP"
                        },
           "shippingDestination": {
                            "@type": "DefinedRegion",
                            "addressCountry": "GB"
                          },
           "hasShippingService": {
                  "@type": "ShippingService",
                  "handlingTime": {
                    "@type": "ServicePeriod",
                    "cutoffTime": "14:00:00+00:00"
                  },
                   "shippingConditions": [
                     {
                      "@type": "ShippingConditions",
                      "doesNotShip": true,
                      "shippingDestination": 
                          {
                            "@type": "DefinedRegion",
                            "postalCode": ["AB", "CF", "DD", "DG"]
                          }
                     },
                     {
                        "@type": "ShippingConditions",
                        "shippingDestination": {
                            "@type": "DefinedRegion",
                            "addressCountry": "GB"
                          },
                        "orderValue": {
                          "@type": "MonetaryAmount",
                          "minValue": 100,
                          "currency": "GBP"
                        }
                       
                       }
                  ]
            },
            "deliveryTime": {
                "@type": "ShippingDeliveryTime",
                "businessDays": {
                      "@type": "OpeningHoursSpecification",
                      "dayOfWeek": [
                          "https://schema.org/Monday",
                          "https://schema.org/Tuesday",
                          "https://schema.org/Wednesday",
                          "https://schema.org/Thursday",
                          "https://schema.org/Friday"
                      ]
                  },
                "handlingTime": {
                "@type": "QuantitativeValue",
                "minValue": 0,
                "maxValue": 1,
                "unitCode": "DAY"
                },
                "transitTime": {
                  "@type": "QuantitativeValue",
                  "minValue": 2,
                  "maxValue": 3,
                  "unitCode": "DAY"
                }
            }
          }
  }
  }
Published by Kelly Sheppard

Kelly Sheppard is a search engine optimisation professional, author of the book “The Structured Data Guide for Beginners” and the founder of The Structured Data Company.

Let's Discuss Your Structured Data

Book a FREE 30 minute consultation to discuss your structured data requirements.