Guide

How to check structured data on a page

Updated 6 November 2026 • AppStudio Desk

Structured data is the machine-readable description of a page that sits in a script tag and never appears on screen. When it is valid, Google can show richer results: ratings, prices, FAQs, breadcrumbs. When it is broken, nothing happens at all, and you usually get no warning. Checking it takes two minutes.

List every block on the page

Run this in the Console:

[...document.querySelectorAll('script[type="application/ld+json"]')]
  .forEach((s, i) => {
    try { console.log(i, JSON.parse(s.textContent)); }
    catch (e) { console.error(i, 'PARSE ERROR', e.message); }
  });

A parse error here is the most common failure and the worst kind: one stray comma means the entire block is ignored. Search engines do not fall back to partial parsing.

Understand the @type you are declaring

Each block declares a type. The ones that earn visible results are narrow:

  • Product with offers — price and availability.
  • FAQPage — only for a page where users can actually read questions and answers.
  • Article / NewsArticle — with a real author and date.
  • BreadcrumbList — navigation trail.
  • SoftwareApplication — apps and extensions.

Marking up content that is not visible on the page is a spam violation, not a clever trick. A FAQPage block whose questions never appear on screen can earn a manual action.

Check it the way Google does

Two official tools, both free:

  1. Rich Results Test — shows which Google features the page is eligible for, and lists missing required properties.
  2. Schema Markup Validator — checks against schema.org itself, which is stricter than Google's subset and useful for types Google does not render.

Use both. A page can pass the Rich Results Test and still have schema.org errors, because Google only validates the properties it uses.

The mistakes that cost you rich results

  1. Price without a currency. offers.price needs priceCurrency, and the currency must match the site's actual market.
  2. FAQ markup on marketing copy. Questions must be real questions with real answers, visible on the page.
  3. Relative URLs where absolute are required. image and url should be absolute.
  4. Dates in the wrong format. Use ISO 8601: 2026-11-06, not 6 November 2026.
  5. Two blocks contradicting each other. Two Product blocks with different prices make the page ineligible rather than picking one.

Keep it in sync with the page

Structured data is maintained by hand, so it drifts. The failure mode is silent: the page shows £29 and the markup says £19, and Google may show the stale price or drop the result entirely. Anything generated — price, rating, availability, date — should be produced from the same source as the visible text, not typed twice.

Checking all of this by hand is what SEOAudit Pro automates: it lists every JSON-LD block, flags parse errors and shows the heading and meta picture next to it.

SEOAudit Pro

Every JSON-LD block, parse error and required field, checked locally.

See SEOAudit Pro →

Common questions

Why is my JSON-LD ignored even though it looks correct?
Check for a parse error first: one trailing comma or a smart quote inside the script breaks the whole block. Then check that every required property for that type is present. Google silently drops blocks it cannot validate.
Do I need JSON-LD or is microdata fine?
Both work. JSON-LD is what Google recommends and what most sites use, because it lives in one block rather than being scattered through the markup, which makes it far easier to validate and maintain.
Can structured data improve my rankings?
It does not raise rankings directly. It can change how a result appears, which affects click-through rate, and rich results are only granted when the markup and the visible page agree.