Warningstructured.required

Structured data is missing something it needs

Why it matters

Structured data earns a rich result — a recipe with its picture and rating, a product with its price, a breadcrumb trail instead of a bare address — and each of those has properties Google treats as required. Miss one and you don't get a smaller rich result; you get none, and the markup does nothing at all. The page still ranks; it just looks like every other page in the list.

There is no warning anywhere that this has happened. The markup is invisible, the page looks fine, and the only sign is the rich result never appearing. It is usually a plugin filling in what it was given and leaving out what it wasn't.

We check only what Google lists as required, and only for the types we know. Anything merely recommended is left alone. Google's own Rich Results Test is the last word, and it tests the page as rendered, which we don't.

Source: Structured data general guidelines and the per-type pages under it.

How to fix it

Add the missing property to the block it belongs to. A product needs a name and a price, at least:

{
    "@context": "https://schema.org",
    "@type": "Product",
    "name": "Three-tier wedding cake",
    "offers": { "@type": "Offer", "price": "320.00", "priceCurrency": "GBP" }
}

Then check it with Google's Rich Results Test, which renders the page as Google does and names anything we can't see. In WordPress this is usually a setting in the SEO plugin rather than markup you write by hand.

Examples

These are the rule's own test pages, and what it says about each. They are run on every change to the rule book.

"@graph": [
{
"@type": "BreadcrumbList"
},
{
"@type": "Organization",
"name": "Flour & Co"
}
]

WarningThe BreadcrumbList markup has no itemListElement, which Google requires for the Breadcrumb rich result, so it earns nothing.

fail-breadcrumb-empty
Example page
"@graph": [
{
"@type": "BreadcrumbList"
},
{
"@type": "Organization",
"name": "Flour & Co"
}
]
"@type": "Product",
"name": "Three-tier wedding cake"

WarningThe Product markup has no offers or review or aggregateRating, which Google requires for the Product snippet rich result, so it earns nothing.

fail-product-no-price
"@type": "Product",
"name": "Three-tier wedding cake",
"offers": {
"@type": "Offer",
"price": "320.00",
"priceCurrency": "GBP"
}

PassedThe Product markup has everything Google requires of it.

pass-complete