Updates  /  Guides

Preview, validate, publish

By Alison SainsburyPublished 28 Oct 20264 minutes

The reason to build schema in an app rather than by hand is that you can see what you are about to publish before you publish it. This guide is about that moment: what the preview shows you, what the app has already checked, what still needs Google, and what happens when you press publish.

The preview is the real thing

Open Preview on any graph, pick a real page, and the app shows the exact JSON-LD it will put in that page's HTML. It is built by the same engine that renders the live page, so what you see in the preview is what Sitecore publishes. There is no sample data and no approximation.

Pick a few pages, not one. A page with every field filled in looks fine. The page with no main image or no author is the one that tells you something.

The Preview tab for an Article graph in JSON-LD Schema Manager, with a page chosen from the picker and the JSON-LD it will publish shown in full.⤡ Expand
The Preview tab for an Article graph in JSON-LD Schema Manager, with a page chosen from the picker and the JSON-LD it will publish shown in full.

What the app checks for you

The app checks three things as you work, before you go anywhere near a validator.

  • Vocabulary. Every type and property is a real schema.org term, spelled correctly, and every value is the kind the property expects. Because the app draws from the schema.org catalogue, you cannot invent a property by mistake.
  • Required values. The block marks the properties Google requires for a rich result. A required property with no source shows VALUE NEEDED, and the graph is not valid until it has one.
  • Assembly. The pieces join up: the shared records a graph points at exist, the @id references resolve, and the result is one well-formed JSON-LD block.

What VALUE NEEDED means

It means a required property has no source yet, or its source is empty on the page you are previewing. The app leaves an empty property out rather than publish a blank, so the page is not wrong, it is incomplete, and the entity will not qualify for a rich result until the value is there. Fix it in the graph if the source is missing, or in the content if the field is empty on that page.

The Preview tab in JSON-LD Schema Manager showing a warning that the image property is required and has no value on the chosen page.⤡ Expand
The Preview tab in JSON-LD Schema Manager showing a warning that the image property is required and has no value on the chosen page.

Check it with Google

The app's checks are quick and local. Google's are authoritative. From the preview, send the JSON-LD to the Google Rich Results Test, or copy it to the Schema.org validator. Do this before the first publish of each graph, and again whenever you change what a required property points at. You do not need to do it for every page, because every page built on the template publishes the same shape.

✓
Two tools, two questions

The Schema.org validator asks "is this valid schema.org?" The Google Rich Results Test asks "will Google show a rich result for this?" A page can pass the first and fail the second, because Google requires more than the vocabulary does.

What happens when you publish

The graph is a partial design in Sitecore, bound to a page design. When you publish, Sitecore renders the JSON-LD into the head of every page built on that design, server-side, as part of the HTML. Nothing runs in the visitor's browser, so every crawler reads it, including the AI crawlers that do not run JavaScript. View the source of any published page and the block is there.

The HTML source of a published Sirius Insurance article page, with the JSON-LD script block in the head.⤡ Expand
The HTML source of a published Sirius Insurance article page, with the JSON-LD script block in the head.

When something changes

Change a mapping, save, and publish the pages. Every page built on that page design picks up the change on its next publish. Change the content of a page, and that page's values change with it, because the values come from the fields. The one thing to treat with care is the @id pattern, which you set before the first publish and then leave alone. See Stable identifiers for why.

i
The full guide is in the app

Every guide here is the short version. The full one, step by step with the screens, is inside the app under Help & guides.

Get the app How to install it See all updates

More updates

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.