Lightening Tech Evidence, not opinion

SEO & Organic Growth

Structured data that validates, and that keeps validating after your prices change

JSON-LD generated from the same data that renders the page, tested in Google's Rich Results Test template by template, with a screenshot of every pass.

From
$150–$1,200
Typical time
3–7 days
Usually bought by
Any site

What the markup is actually for

A search engine reading your product page can infer a great deal from the HTML and cannot be certain of any of it. It sees a number near a currency symbol and guesses it is the price. It sees a row of stars and guesses they are ratings. Structured data removes the guessing. It is a block of JSON-LD in the page that states plainly what each thing is, using a vocabulary Google, Bing and Yahoo agreed on in 2011 so that everyone would be describing pages in the same terms.

Two things follow from that, and only one of them is what gets bought. The visible one is rich results — the price, the availability, the star rating, the breadcrumb trail, the event date appearing in the result itself instead of a plain blue link. The less visible one has become more valuable as AI answers spread, because systems summarising a page rely on unambiguous machine-readable meaning to do it quickly and to attribute it correctly.

It is worth being blunt about what is and is not available. Google withdrew most FAQ and HowTo rich results in 2023. Product, Review, Breadcrumb, LocalBusiness, Event, Job posting and Video still produce visible results. If a proposal is priced on the promise of FAQ accordions in the search listing, it is priced on something that largely stopped appearing three years ago.

How the work runs

  1. Inventory the templates and decide the types. Not the pages — the templates. A store with four thousand products has perhaps six page types that matter, and the markup is written once per type. This is also where we decide which types genuinely apply, which is a shorter list than most schema proposals contain. Half a day.
  2. Establish where each field comes from. For every property the markup will carry, the source in your system that already holds it. Price, availability, brand, image, opening hours, address, coordinates. Anything with no source gets left out rather than filled in with a plausible value, because markup that disagrees with the page is worse than no markup. Half a day to a day.
  3. Generate and implement, template by template. The JSON-LD is produced from live data rather than typed, with explicit rules for the awkward cases — availability mapped to the correct schema.org values, an optional identifier omitted entirely when empty rather than written as an empty string, and aggregate ratings included only where both a rating value and a review count above zero genuinely exist. One to three days depending on template count.
  4. Validate every template and keep the evidence. Each template gets run through Google's Rich Results Test, which names the exact failing field when something is wrong. We fix, re-run and screenshot the pass. That screenshot is the deliverable — this is one of the few parts of search work that is provable rather than probable. Half a day.
  5. Watch the enhancement reports and hand over. Search Console reports markup errors across the site over the following weeks as pages are re-crawled, which catches the cases a template test cannot — the one product with a malformed price, the category with missing images. Two weeks of monitoring, then a handover note.

What sets the price

The range is $150–$1,200 over 3–7 days, and the spread is wide because two jobs with the same name can be very different.

Template count and catalogue size. LocalBusiness markup on a single site is a small job. Product markup across a catalogue where availability and price change daily is a data pipeline question, and the cost is in wiring it to the source rather than in writing the JSON.

Where the markup has to be injected. A CMS with a structured data field is straightforward. A hosted store where the markup lives in theme files, or an application that renders content after page load, means working inside someone else's template system and testing more carefully.

How complete the underlying data is. Missing brand values, images with no absolute URL, no stored coordinates for a location. Every gap is either a field left out or a small data project first, and it is better to find those on day one than to discover them at validation.

The three ways this goes wrong

Ratings get marked up that the business does not have. It is the most tempting field on the page, because stars in a result raise clicks visibly. Markup describing reviews that do not exist, or an aggregate rating with a zero count, is treated as spam rather than as an error, and the consequence lands on the site rather than on the page. If the reviews are real, this is a straightforward win. If they are not, the correct answer is to go and collect some.

The markup is hand-written and then the values move. A price typed into JSON-LD in March is still saying March's price in September, while the page above it says something else. Nothing warns you. The customer sees one number in the search result and another on the page, and the markup that was supposed to build confidence spends its time undermining it. Generated markup that reads the same source as the page cannot fall out of step this way.

A schema plugin is switched on and treated as the job. The output validates, so the box is ticked, and nobody notices that it is emitting the same generic organisation block on every URL while the product pages carry no offer data at all. Validation is not the same as coverage. The question to ask of any structured data work is which templates carry which types, and whether a screenshot exists for each one.

See where the site stands before you brief anyone.

If the site is already live, start from what it scores rather than from a guess. The audit reports what it checked, what it found, and — the part most tools leave out — what it could not check, and why.

See the website audit Talk about this work

Questions people ask before they commit.

Will this get us stars and prices in the search results?
It makes them possible and it does not make them certain. Structured data qualifies a page for a rich result, Google decides whether to show one, and that decision varies by query and changes over time. What we can prove is the part we control — valid markup on every template, passing Google's own test, with the screenshots to show it. Anyone promising the visual result itself is promising a decision that is not theirs.
We were told to add FAQ markup. Is that still worth it?
Not for the reason you were probably given. Google largely withdrew FAQ and HowTo rich results in 2023, so adding that markup to win the expandable questions in the results is buying something that mostly no longer appears. Product, Review, Breadcrumb, LocalBusiness, Event, Job posting and Video are the types still producing visible results. FAQ markup can still help machines read a page, and AI systems lean on structured data to understand meaning quickly, which is a legitimate reason to add it — just not the one that was sold to you.
Can our developer not just paste this in?
They can, and on a five page site that is the right answer. It stops being the right answer the moment the values change. Hand-pasted markup freezes a price, a stock status or an opening hour at the moment it was written, and nothing tells you when the page moved on without it. The work here is wiring the markup to the same source the page renders from so the two cannot disagree.
What happens if the markup is wrong?
It ranges from nothing to a manual penalty depending on which kind of wrong. A missing optional field is ignored. A malformed required field means the rich result never appears and Search Console reports the error. Marking up reviews or ratings you do not have is a different category — Google treats fabricated review markup as spam, and that is a risk to the whole site rather than to one page.
How do we know it is actually working after you leave?
Two ways, and both are yours to check. Google's Rich Results Test on any URL tells you immediately whether that page's markup parses and which result types it qualifies for. The enhancement reports in Search Console then track it across the whole site over the following weeks and email you when errors appear, which is where a template change six months from now will surface.
Is this the same schema our database people talk about?
No, and the shared word causes real confusion in meetings. A database schema is the structure of your tables. Schema markup is a block of JSON-LD placed in a page that states in machine-readable terms what the page contains — this number is the price, this is the brand, these are the opening hours. Same word, unrelated things.

Often taken together.

Start with the brief, not the invoice.

Send what you are trying to achieve. You get a written scope, a price and a date — or an honest “this is not the right service for that”.

Talk about Schema & structured data All SEO & Organic Growth services