Restaurant, fully implemented
A complete Restaurant and Menu implementation on a page that says plainly the business is fictional.
This is a laboratory, not a business. Every page here exists to test how search engines and AI assistants handle structured data. Nothing is for sale and no organisation described on this site is real.
Structured data under controlled conditions
Every real site confounds the question. Its authority, its links and its age all push the results around, and no amount of careful markup separates its effect from theirs. This site has none of them. No reputation, nothing to sell, and markup that is complete and honest, so whatever happens here is the markup talking.
13 specimens 30 types 39 declarations 2 controls
Each specimen is a working page of its kind, marked up completely and honestly, then watched. The markup on the page is the markup in the head: the theme prints both from one object, so the two cannot drift apart.
A complete Restaurant and Menu implementation on a page that says plainly the business is fictional.
Event markup with time zones, eventStatus, attendance mode and a real Place, on an openly fictional listing.
The same page shape with no JSON-LD at all. Without this, nothing else here is a comparison.
A full Product and Offer implementation. The authored markup carries invented reviews; the output does not.
The one specimen whose subject is genuinely real: this site. Every question and answer below is true.
A genuinely useful procedure: checking what structured data a page really ships, rather than what it claims to.
A real article on why a control page matters, marked up as Article with a named author and dated revisions.
Full LocalBusiness markup with geo, hours and service area, deliberately placed where no business could be.
Person markup for someone who does not exist, with no sameAs links borrowing a real profile.
The one type you cannot fake without shipping invalid markup, so the lab made a real six-second video for it.
An olive oil cake written out properly, because a Recipe specimen that nobody could cook tests nothing.
The one type where a fictional specimen could waste somebody's time, so the fiction is stated in the fields themselves.
The same record as the plates above, dense enough to read in one pass. Where a check has not been run it says so, rather than showing a zero that looks like a finding.
| # | Specimen | Type | Validator | Rich result | Indexed | AI citation |
|---|---|---|---|---|---|---|
| 01 | Restaurant, fully implemented | Restaurant | queued | not run | not run | not run |
| 02 | Event, with the properties everyone skips | Event | queued | not run | not run | not run |
| 03 | Control: no structured data | control | not run | not run | not run | not run |
| 04 | Product, and the ratings that never ship | Product | queued | not run | not run | not run |
| 05 | FAQPage, answering real questions about this lab | FAQPage | queued | not run | not run | not run |
| 06 | HowTo, with steps that actually work | HowTo | queued | not run | not run | not run |
| 07 | Article, about the thing most collections leave out | Article | queued | not run | not run | not run |
| 08 | LocalBusiness, at coordinates in open water | LocalBusiness | queued | not run | not run | not run |
| 09 | Person, invented on purpose | Person | queued | not run | not run | not run |
| 10 | VideoObject, pointing at a video that exists | VideoObject | queued | not run | not run | not run |
| 11 | Recipe, which genuinely works | Recipe | queued | not run | not run | not run |
| 12 | JobPosting, with the disclaimer inside the markup | JobPosting | queued | not run | not run | not run |
| 13 | Control B: no structured data, second batch | control | not run | not run | not run | not run |