Why does this page have suspicious JSON-LD type combinations?
jsonld-suspicious-type-patterns page
The issue
A page that declares types its content doesn’t support earns no rich results from them. A blog post that also claims to be a LocalBusiness, or every page on a site carrying the same Organization, WebSite, WebPage and BreadcrumbList blocks, gives a search engine several entities to reconcile and little to use. Each block can be valid on its own.
The cause is usually a theme or a plugin, or several of them, adding the same template to every page without looking at what the page is.
Scope
Each page is checked on its own, across every JSON-LD block in its source, including blocks from different plugins that don’t know about each other.
How to check you have it
- By hand: list the types declared in each JSON-LD block on the page. Each one should describe something the page shows.
- Across templates: compare a product page, an article and the homepage. Identical blocks on all three come from a site-wide template.
- With a validator: the Schema Markup Validator lists every entity found on a URL, which makes the extras easy to see.
The fix
Make the structured data follow the page type, not the site.
A product page declares a Product, and an article declares an Article or BlogPosting. Organization and WebSite belong on the homepage. A BreadcrumbList follows the page’s real path. If a theme or a plugin forces the same blocks on every page, turn its output off and add markup per template.
Done when: each page declares only the types that describe what it shows, and the check above comes back clean.
Do not
- Do not remove all structured data; keep the types that describe the page.
- Do not add more types to make up for missing rich results.
- Do not rely on one site-wide template for every page type.
- Do not take a pass in the Rich Results Test to mean the markup is doing its job.
FAQ
Is it wrong to have multiple JSON-LD types on one page?
Not inherently. A product page with Product and BreadcrumbList is reasonable. The issue is when the combination is implausible or when every page emits the same set of types regardless of content. Multiple types should each correspond to something the page actually describes.
How do themes and plugins cause this problem?
Most WordPress themes and SEO plugins inject structured data from a single template applied site-wide. The template typically includes Organization, WebSite, WebPage, and BreadcrumbList as defaults. The plugin has no awareness of page-specific content, so it emits the same block on a blog post, a product page, a contact form, and a 404 page.
Will Google penalize suspicious type patterns?
Google does not apply a manual penalty for nonsensical structured data. However, search engines may ignore the structured data entirely if the type combinations do not match the page content. The practical effect is the same — the markup produces no rich results and provides no ranking benefit.
What is the difference between this and an incorrect @type?
An incorrect @type means the declared type does not exist in schema.org or does not match the entity at all. Suspicious type patterns involve valid types that are semantically inappropriate in combination or context. A blog post with @type Product is an incorrect type. A blog post with Organization + WebSite + WebPage + BlogPosting is a suspicious pattern — each type is valid, but the combination is boilerplate.
Should I remove all structured data except the primary entity?
Not necessarily. Supporting types like BreadcrumbList add navigation context. The goal is relevance: each type should describe something present on the page. Remove types that describe site-level concepts from individual content pages, and ensure supporting types contain real data rather than static defaults.
How do I fix this if my theme controls the JSON-LD output?
Disable the theme or plugin’s structured data output and implement your own per-template markup. Most SEO plugins provide an option to disable JSON-LD output. Replace it with structured data specific to each page template — Article for blog posts, Product for product pages, and Organization only on the homepage or about page.
Which product detects this
Probeo checks this on every page of your site as part of Site Clarity. This page explains one instance; the product tells you every page that has it.