Module 5 · 5.3
English
Testing, maintenance and what's not allowed
Module 5: Structured data · Reading time: 12 minutes
Learning objective: After this lesson you can test structured data with the Rich Results Test and the Schema Markup Validator, explain the difference between errors and warnings, and apply Google's rules, such as the ban on reviews about your own business.
Key concepts: Rich Results Test, Schema Markup Validator, critical issue (error) versus non-critical issue (warning), rendered HTML, reports in Search Console, structured data guidelines, self-serving reviews, manual action, duplicate blocks, maintenance
Two testing tools, two questions
There are two free tools, and each one answers a different question.
| Rich Results Test | Schema Markup Validator | |
|---|---|---|
| Made by | schema.org (the successor to Google's old Structured Data Testing Tool, at schema.org since 2021) | |
| Question it answers | "Is this page eligible for a special display in Google?" | "Is this valid schema.org markup?" |
| Which types | Only types for which Google has a special display | All types from schema.org |
| Checks Google's rules | Yes: required and recommended properties according to Google | No, only schema.org itself |
| Input | Address of a page or pasted code | Address of a page or pasted code |
Start with the Rich Results Test (https://search.google.com/test/rich-results). Enter the address of your page, not the code: the tool then sees the page the way Googlebot fetches it, including JSON-LD that is added with JavaScript. If you paste your code, JavaScript may run into limitations, as Google itself says. If you want to know whether your markup is correct according to schema.org, also for types Google does nothing with, use the Schema Markup Validator (https://validator.schema.org/).
Reading errors and warnings
The Rich Results Test sorts problems into two kinds:
- Critical issues (errors). A required property is missing, or a value is invalid. The item is then not eligible for a special display. Always fix these.
- Non-critical issues (warnings). A recommended property is missing, such as
priceRangeorgeo. The item is valid. Fill in the property if you have the information and it is correct; never make something up just to get rid of a warning.
Does the test say "No items detected" while you know there is JSON-LD on the page? Then look at three possible causes:
- The JSON is invalid (one comma too many or too few, a forgotten quotation mark). The whole block is then skipped. The Schema Markup Validator usually shows the line where it goes wrong.
- The type is unknown (
Bloemistinstead ofFlorist) or misspelt (localbusiness). - The page is blocked for Googlebot with robots.txt or
noindex(lessons 3.3 and 1.3). Google explicitly asks: don't block pages with structured data.
Search Console keeps track
Once your site is in Search Console (module 2), Search Console shows a report under Enhancements for each type for which Google has a special display and finds valid markup on your site. There you see valid items, items with non-critical issues and invalid items, with example pages. A few things to know:
- There is no "fix this" button. You correct the source (your site, your plugin, your website builder), and then you can ask for validation in the report.
- The numbers are items, not pages. One page can contain several items.
- If there is no report for a type, Google found no valid markup of that type, or the type has no display of its own.
What's not allowed
Google's structured data guidelines are short and strict. The most important ones:
- Only describe what is visible. No opening hours, prices or reviews in your JSON-LD that a visitor can't find on the page.
- No misleading content. The data must be an honest representation of the page.
- On the right page. Put the markup on the page it describes.
- Images in your structured data must be crawlable and indexable for Google.
- No fake reviews and no reviews that don't come from real users.
Reviews about your own business
A rule that surprises many businesses: don't put an aggregateRating or review about yourself in the LocalBusiness block on your own site. Google says: if the business being reviewed controls the reviews about itself, pages with LocalBusiness or other Organization markup are not eligible for stars in the search results. Google introduced this rule in 2019. It makes no difference whether you collect the reviews yourself, pull them from a widget or copy them from a review site. The stars next to your business in Google Maps come from your Business Profile (lesson 6.5), not from your own JSON-LD.
Plugins and themes sometimes add such a rating to your markup automatically. So check your own JSON-LD for aggregateRating, and switch it off if it's about your own business.
What happens if you break the rules
If you violate the guidelines, Google can take a manual action for structured data. You'll see it in Search Console under Security & Manual Actions (lesson 2.4). The consequence according to Google: the page is no longer eligible for special displays. According to Google, such a manual action has no effect on the normal ranking in the search results. Once you've fixed the problem, you request a review in Search Console.
Maintenance: the silent errors
Most problems don't arise when you write the markup, but later.
- Two blocks that contradict each other. Your theme adds a
LocalBusinessblock, and so does your SEO plugin, with a different phone number. Choose one source and switch the other off. Two blocks of different kinds (aWebSiteand aFlorist) are no problem; the same business twice with different details is. - Details that change. A new phone number, a move, different opening hours in summer. Update them first in your usual place (your website builder or plugin), and then go through your Business Profile, Apple Business (formerly Apple Business Connect) and directories (module 6).
- A new theme or a new builder. After a site redesign, the JSON-LD is sometimes gone, or duplicated. Test after every major change.
- Temporary hours. Put public holidays and holidays in your Business Profile as special hours. In JSON-LD you can use
validFromandvalidThrough; don't forget to remove them again afterwards.
A good habit: test your contact page in the Rich Results Test after every change to your business details and after every major update of your site, and check the report in Search Console once a quarter.
In practice: testing a WordPress site and an AI Builder site
On a WordPress site with an SEO plugin, the Rich Results Test often shows several items: WebSite, Organization or LocalBusiness, BreadcrumbList and an Article for each post. On a site made with WebOké's AI Builder, you'll find an @graph on the homepage with a WebSite and the business as a subtype of LocalBusiness. To see all the properties of that block, including the opening hours in the short notation openingHours, also paste the address into the Schema Markup Validator: it shows every schema.org type and every property. Testing works exactly the same way for other website builders.
Summary
- The Rich Results Test tells you whether your page is eligible for a display in Google; the Schema Markup Validator tells you whether your markup is valid schema.org.
- Test with the page address, not with pasted code. Always fix critical issues; fix warnings only with real data.
- No invalid JSON, no unknown types, and don't block pages with structured data for Googlebot.
- No reviews or ratings about your own business in your own markup; abuse can lead to a manual action.
- Test again after every change to your details or your site, and avoid duplicate blocks that contradict each other.
Quiz
Exercise
Exercise A5.3: Find the mistakes. Download the example file jsonld-fouten-1.json: a JSON-LD block for a flower shop with six mistakes. Read it line by line (you may also paste it into the Schema Markup Validator) and, from the ten statements in the exercise, choose the six that describe a real mistake. The program compares your choice with the fixed answer key and explains each statement.
Further reading
- Google's Rich Results Test: https://search.google.com/test/rich-results
- Schema Markup Validator: https://validator.schema.org/
- Google Search Central, General structured data guidelines: https://developers.google.com/search/docs/appearance/structured-data/sd-policies
- Google Search Central, Review snippets (including the rule on self-serving reviews): https://developers.google.com/search/docs/appearance/structured-data/review-snippet
- Google Search Console Help, Rich result status reports: https://support.google.com/webmasters/answer/7552505
- Google Search Central, Generating structured data with JavaScript: https://developers.google.com/search/docs/appearance/structured-data/generate-structured-data-with-javascript
