
Schema Markup That Actually Matters (And What to Skip)
Structured data is a small block of JSON on your page that tells a machine what it is looking at: this is an organisation, this is a service, this is a review and here is who wrote it. It will not rescue weak content, but it removes ambiguity — and ambiguity is what stops you being attributed correctly.
The types worth implementing
Most small business sites need a short list, not the whole vocabulary.
- Organization or LocalBusiness. The anchor for everything else. Give it a stable
@id, a logo, real contact details andsameAslinks to your profiles elsewhere. Other markup then points at this one entity instead of implying several. - Service. One per service page, linked to the organisation as its provider, with the area served.
- BreadcrumbList. Cheap, and it clarifies where a page sits in the site.
- Article or BlogPosting. For editorial content, with a real publication date and named publisher.
- FAQPage. Only where genuine questions and answers appear on the page.
- Review and AggregateRating. Powerful, and the easiest to get wrong. See below.
The rule that keeps you out of trouble
Structured data must describe what is visibly on the page. Marking up a five-star rating that no visitor can see, or an FAQ that does not exist in the content, is grounds for a manual action — and beyond the penalty, it is a claim you cannot support.
We apply a simple constraint on our own site: review markup is generated from the same data the page renders. The two cannot diverge, because they are the same source. If a quote is removed from the page, it disappears from the markup automatically.
Be careful with aggregate ratings
An aggregateRating asserts an average across a review count. If you cannot verify both numbers, do not publish it. We deliberately left it off our own site because we could not confirm a total review count from the source — marking up individual reviews we could verify was the honest option.
How to check it
Google's Rich Results Test and the Schema Markup Validator will both parse a live URL. One extra check worth doing: view the page source rather than testing the rendered DOM. If your structured data is injected by JavaScript, tools that render will see it while raw-HTML crawlers will not.
A mistake worth naming
When we added prerendering to our own site, homepage review markup ended up baked into every other page — including the terms of service — because the prerendered homepage was being reused as the shell for other routes. Review schema on a terms page is precisely the kind of thing that triggers a structured data penalty.
It only surfaced because we audited the generated HTML page by page rather than trusting the build output. If you generate structured data programmatically, check the result on several URLs, not one.
Digova handles technical SEO and structured data as part of every website build.