Quotation
Quotation is a CreativeWork subtype in the "new" area of schema.org for a quoted statement: a line of dialogue, a famous quote, an on-the-record statement from a press briefing, a line attributed to a fictional character. It adds one property, spokenByCharacter (Person or Organization), which attributes the quote to its utterer, especially when that utterer is a fictional character in a containing work.
Use inherited properties: text (the quote itself), creator (the original speaker, for real-person quotations), isBasedOn (the source work), recordedIn (the specific event or publication), and about (what the quote is about).
Full example of schema.org/Quotation json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Quotation",
"text": "Structured data is a love letter from your present self to your future crawlers.",
"creator": { "@type": "Person", "name": "Jane Xoo", "jobTitle": "Founder, Xoo Code" },
"recordedIn": { "@type": "Event", "name": "SchemaConf 2025 keynote", "startDate": "2025-10-14", "location": { "@type": "Place", "name": "Moscone Center, San Francisco" } },
"about": { "@type": "Thing", "name": "Structured data" },
"datePublished": "2025-10-14",
"isBasedOn": { "@type": "PresentationDigitalDocument", "name": "SchemaConf 2025 keynote deck", "url": "https://xoocode.com/talks/schemaconf-2025" }
}
</script>Quotation vs Review vs Claim
Quotation is for verbatim words attributed to someone. Review is for structured evaluation of a thing (with rating and reviewer). Claim is for factual assertions being fact-checked. A quote from a review is a Quotation; the review itself is a Review; a claim inside the quote is a Claim.
spokenByCharacter vs creator
Use spokenByCharacter when the speaker is a fictional character inside a work (Hamlet's soliloquy, a line from Star Wars). Use creator when the speaker is a real person quoted directly. The two can coexist if the real person voiced a fictional character.
Minimal valid version
The smallest markup that still produces a valid Quotation entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Quotation",
"text": "Structured data is a love letter from your present self to your future crawlers.",
"creator": { "@type": "Person", "name": "Jane Xoo" }
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsNo dedicated rich result (used by citation/knowledge systems)
Common Quotation mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Using text inside a parent CreativeWork to hold quotes
WrongCramming quoted passages into the parent work's text without structureRightEach cited quote as its own Quotation with creator and recordedInQuotations inside a larger CreativeWork benefit from individual Quotation markup so search engines, citation graphs, and AI summarisers can treat each quote as a citable unit.
- 02
Confusing creator and spokenByCharacter
WrongspokenByCharacter for a real-person direct quoteRightcreator for real-person quotes; spokenByCharacter for fictional characters in a workThe two properties look similar but carry different semantics. creator is about real-world attribution; spokenByCharacter is about in-work character voice.
Schema properties in this example
About the example data
A quotation from Jane Xoo's 2025 keynote at SchemaConf, cited on the Xoo Code quotes page.
Comments
Loading comments...