Skip to content

Cookie settings

Choose which kinds of cookies you allow. You can change your choice at any time via Cookie settings at the bottom of every page. Privacy statement

Necessary

Always on

Needed to log in, keep your cart and remember your choices. These are always on.

Which cookies?
  • weboke_sessie, weboke_klant, weboke_remember: your session and staying logged in
  • weboke_basket: your cart
  • wkBtwIncl: showing prices with or without VAT
  • wok_cookies: your cookie choice, 12 months

Measures which ad leads to a visit or order, so we do not pay for ads that do nothing.

Which cookies?
  • Google Ads via Google Tag Manager (_gcl_au, _gcl_aw), up to 90 days
  • OpenAI Ads, ads in ChatGPT
  • wok_aff: which partner referred you to us (affiliate programme), 60 days

4.6

Country and language

Each country has its own site, with prices and VAT for that country.

View

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 TestSchema Markup Validator
Made byGoogleschema.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 typesOnly types for which Google has a special displayAll types from schema.org
Checks Google's rulesYes: required and recommended properties according to GoogleNo, only schema.org itself
InputAddress of a page or pasted codeAddress 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 priceRange or geo. 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:

  1. 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.
  2. The type is unknown (Bloemist instead of Florist) or misspelt (localbusiness).
  3. 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 LocalBusiness block, and so does your SEO plugin, with a different phone number. Choose one source and switch the other off. Two blocks of different kinds (a WebSite and a Florist) 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 validFrom and validThrough; 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

1. You want to know whether your Florist block meets Google's rules for local businesses. Which tool do you use first?



2. The Rich Results Test gives a warning: "Missing field priceRange". What do you do?



3. Your SEO plugin adds "aggregateRating": {"ratingValue": "4.8", ...} to the LocalBusiness block of your own business. What does Google say about this?



4. The Rich Results Test finds no items, while you're sure there is a JSON-LD block in the source code. What is the most likely cause?



5. Google takes a manual action for structured data against your site. According to Google, what is the consequence?



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.

Exercise A5.3: Find the mistakes

File for this exercise: jsonld-fouten-1.json

A. @context points to the wrong address. B. telephone has the wrong format. C. The type Bloemist does not exist in schema.org. D. The address is plain text instead of a PostalAddress. E. The values of geo must be in quotation marks. F. The opening hours use Dutch day names and no 24-hour notation. G. It contains a rating of the business itself. H. url must not start with https. I. There is a comma after the last property, which makes the JSON invalid. J. sameAs must not point to Instagram. Then paste the file into the Schema Markup Validator: which errors does that tool report?


What you enter and what we find isn't stored. Your browser remembers your answers and whether you've passed the exercise. If you're signed in, we only save that you got the exercise (almost) right in My courses; you can delete that there too.

Further reading

One moment…

Set up your domains

For each domain, arrange the nameservers, the link to your hosting and who becomes the owner.

Loading your domains…