How to set the correct @type for this JSON-LD block?
jsonld-incorrect-type page
The issue
A page with a missing or wrong @type doesn’t get the search result its markup was written for: no price on a product, no date on an article, no expandable answers on an FAQ. Nothing on the page looks wrong, so the loss goes unnoticed.
The cause is that @type says what kind of thing the block describes. Search engines choose the result format from it and check every other property against it. Without one, the data is unclassified. With the wrong one, it is checked against the wrong rules.
Scope
Each JSON-LD object needs its own @type, including each object in an array and each node in a @graph. A wrong type on one object doesn’t affect the others on the page.
How to check you have it
- In probeo: the page reports
Missing @type, or a warning that the type is unknown or looks like a plugin’s or a theme’s own invention. - By hand: view the page source, find each
<script type="application/ld+json">block, and confirm every object has a@typethat names what the page is about. - With a validator: paste the block into the Schema Markup Validator. It lists each object under the type it found.
The fix
Set @type to the schema.org type that matches the thing being described.
Use the most specific type that applies, such as Product or BlogPosting rather than Thing or CreativeWork. Then add the properties that type requires.
Done when: every object has a @type that names what it describes, and the check above comes back clean.
Do not
- Do not use a generic type like
Thingwhen a specific one applies. - Do not invent types outside schema.org.
- Do not add unrelated types to reach a rich result.
- Do not leave
@typeout on the assumption that it can be inferred from the properties.
FAQ
Can an entity have multiple @type values?
Yes. @type can be an array when an entity legitimately belongs to multiple schema types. This is common for specialized types that combine characteristics, such as a BlogPosting that is also a TechArticle.
What happens when @type is valid but overly generic?
Search engines process the data but may not enable specific rich results. Using Thing instead of Product means product-specific features like price and availability will not appear in search results.
How does @type interact with @context?
@context defines the vocabulary namespace. @type identifies the specific entity class within that vocabulary. Both must be present and compatible for correct interpretation.
Should custom types be used when schema.org lacks an exact match?
No. Use the closest available schema.org type. Custom types are not recognized by search engines. Schema.org provides extension mechanisms, but custom types outside that system have no effect.
Does @type order matter when multiple types are specified?
Not to JSON-LD, where the types are a set and either order means the same thing. Probeo checks the object against the first type listed, so put the one whose required properties you want checked first.
What distinguishes a @type error from a missing required property error?
Type errors occur when the declared type does not match the entity or is not a valid schema.org type. Missing property errors occur when the type is correct but expected properties are absent.
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.