
Google Rich Results and no items detected
Google Rich Results, no items detected, and how to fix it.
Structured data assists search engines in determining the type of content on a page. JSON-LD (<script type="application/ld+json">
) is a structured data type recommended by Google. It offers a variety of schemas for various types of web pages, such as FAQs, Articles, Products, and so on. Including the appropriate schema markups can help Google better understand and rank the web page.
However, while working with schema on Google Rich Results, you may get a message: No items detected
(known also as no rich results detected in this url
). It could mean that the specific page being analyzed doesn’t have any structured data that qualifies for rich results. In other words, Google didn’t find any relevant information to display in an enhanced format.
What does that mean?
Why do I see No items detected
message?
Here are 3 common issues that cause No items detected message:
- The structured data may not be accessible or fetched by Googlebot due to JavaScript generation or other technical issues. Check that the
JSON-LD
code is easily accessible and parseable by search engine bots. - The page may not contain any structured data that qualifies for rich results, or the provided schema is not supported by Google. In other words, there may not be any relevant information for Google to display in an enhanced format.
- The schema has an invalid structure and could not be parsed because of a syntax error.
How to fix it
Here are the potential solutions:
Test your structured data
The schema type used on the web page may be unsupported by Google or have an incorrect structure or syntax, preventing Google from correctly parsing it. Google advises that you start with the Rich Results Test to determine what Google rich results can be generated for your page.
Ensure that you use a schema type that is compatible with Google’s parsing capabilities.
Keep JSON as a single string
Make sure your structured data LD+JSON
is being represented as a single string, without whitespaces, especially new lines.
Keeping JSON
without whitespaces ensures compatibility across different platforms and tools that may have varying expectations regarding whitespace in JSON
. Additionally, it simplifies validation processes since the absence of whitespace makes the JSON
structure clearer and easier to validate against schemas.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How are you doing?",
"acceptedAnswer": {
"@type": "Answer",
"text": "I am doing fine."
}
}]
}
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"How are you doing?","acceptedAnswer":{"@type":"Answer","text":"I am doing fine."}}]}
Use schema that is supported by Google
Use schema that is supported by Google. If you can’t and your schema is valid from the specification perspective, then leave it. It won’t negatively impact your ranking and there is always a chance that other search engines will support it.
Escape HTML in your JSON
When including HTML content in JSON, it’s important to escape the HTML to ensure that it is properly represented and does not interfere with the JSON structure. Escaping HTML in JSON helps prevent errors during JSON parsing by ensuring that special characters within the HTML content are properly encoded. Otherwise, it won’t be parsed.
The NPM package escape-html can help you escape special characters in a given string of text so that they can be interpolated in HTML content.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How are you doing?",
"acceptedAnswer": {
"@type": "Answer",
"text": "I am doing <strong>fine</strong>"
}
}]
}
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How are you doing?",
"acceptedAnswer": {
"@type": "Answer",
"text": "I am doing <strong>fine</strong>"
}
}]
}
Schema and WordPress
If you’re using WordPress plugin Markup (JSON-LD) structured in schema.org then enable (check the checkbox) option Compress output data under section Schema.org Config.
PHP language
For PHP language use: json_encode($value, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
.
The second parameter of this function specifies options that modify how the output JSON string is formatted.
JSON_UNESCAPED_UNICODE
: This option tellsjson_encode
to encode multibyte Unicode characters literally, instead of escaping them. This means that if your$value
contains characters outside the ASCII range (like emojis, accented letters, etc.), they will appear exactly as they are in the resulting JSON string without being escaped. Without this option, such characters would be represented using escape sequences like\uXXXX
, whereXXXX
is the hexadecimal representation of the character’s Unicode code point.JSON_UNESCAPED_SLASHES
: This option preventsjson_encode
from adding slashes (\
) before double quotes inside strings. Normally,json_encode
escapes double quotes within strings by prefixing them with a backslash, which is standard behavior in JSON. However, this can sometimes lead to confusion or errors, especially when dealing with JSON strings that contain double quotes. By setting this option, you ensure that the resulting JSON string has the simplest possible form, which can be particularly useful when generating JSON for use in JavaScript or other contexts where minimal escaping is preferred.
Final words
Remember that just because you see no items detected
does not always indicate there is a problem with your webpage. It simply implies that Google’s technologies could not identify any structured data that met the requirements for rich results at the time. If you feel your website should be displaying rich results but are receiving this warning, you should check and correct the implementation of your structured data.
Comments