Last updated: October 16, 2026
What is declared, in what types, and where each node appears across this site.
Only types live on published pages are listed here. Answer pages publish September 30, 2026 — their types are documented separately below.
| Type | Declares | Pages |
|---|---|---|
DataCatalog |
The reference library as a curated, freely accessible collection of expert answers. Publisher is the Organization node. The WebSite node references it via about. |
Homepage |
WebSite |
Site-level identity: name, URL, publisher, language. Anchor for cross-page @id references. |
Homepage |
Organization |
Cited Conversations as a named entity, with sameAs linking to Ringmaster and @citedconv on X. Founder references the Person node. |
Homepage |
Person |
Each named speaker: name, title, employer, and sameAs links to their LinkedIn profile and company URL. One stable @id per speaker, intended to match the future /speakers/{name}/ page. |
Homepage (site founders); answer and episode pages from Sep 30 |
FAQPage |
A page where the site itself wrote both the questions and the answers. Used only on /faq/, where every Q&A is site voice, not a speaker quote from a recording. |
/faq/ |
WebPage / CollectionPage |
Page-level identity: URL, name, description, parent site reference, and breadcrumb. CollectionPage on index pages; WebPage elsewhere. | All pages |
BreadcrumbList |
Page position in the site hierarchy. Two or three levels depending on depth. | All pages except homepage |
A conversation, not a single answer, is this library’s addressable unit. Each recorded conversation publishes at /answers/{lead-question-slug}/, titled with its lead question — the question the whole conversation was designed to answer. Every other question raised in that conversation is a supporting answer, anchored within the same page and individually citable at the passage level (its own Clip + Quotation schema node) without being addressable at its own URL.
A supporting answer is promoted to its own page only once three or more separate conversations, across different shows, converge on close variants of the same underlying question — at that point it becomes a genuine cross-show comparison worth a dedicated address. Below that bar, it stays a supporting section, still fully structured and still fully citable by Clip + Quotation, just filed under its parent conversation.
This library does not use FAQPage for conversation pages. FAQPage is reserved for /faq/, where the site itself wrote both the question and the answer. A conversation page’s content is an attributed quotation from a named person in a recording — the correct schema is PodcastEpisode, Clip, and Quotation, never FAQPage.
| Type | Declares | Pages |
|---|---|---|
PodcastEpisode / PodcastSeries |
The source recording and show, as provenance for the conversation. | Conversation pages |
Clip + Quotation |
One pair per supporting answer: the timestamped moment plus the speaker’s exact words. relatedLink cross-links sibling answers on the same underlying question across conversations. |
Conversation pages |
Person |
Each named speaker, stable @id resolving to /speakers/{name}/. |
Conversation pages; full profile on /speakers/{name}/ |
CollectionPage / DefinedTerm |
A topic as a named, overlapping grouping of conversations. | /answers/ (topic index), future /topics/{slug}/ pages once 2+ conversations share a topic |
FAQPage |
Site-authored Q&A only. | /faq/ only — never conversation pages |
Every answer on this site originates from a specific moment in a recorded conversation. That moment is identified by two nodes that travel together: a Clip marking the segment of the recording by start and end time, and a Quotation carrying the speaker’s exact words.
The Clip’s url points to the source podcast episode at the exact second the answer begins. The URL format uses a query parameter, not a fragment, because the Transistor player responds to query parameters:
https://podcast.citedconversations.com/<episode-slug>?t=<seconds>
// example: answer begins at 6 minutes 23 seconds
https://podcast.citedconversations.com/ep1-aeo-practice?t=383
Google’s structured data guidelines accept FAQPage only where the site owner wrote both the questions and the answers. The answers on this site are spoken by guests in a recording — they are clips of source audio, not site-authored content. Clip + Quotation is the correct description. FAQPage is used on /faq/ only, where every answer is site voice.
Below is the structured data for a single answer, as it will appear in the <script type="application/ld+json"> block on an answer page.
{
"@type": "Clip",
"@id": "https://citedconversations.com/answers/<slug>/#clip",
"name": "<the question as asked>",
"startOffset": <seconds>,
"endOffset": <seconds>,
"url": "https://podcast.citedconversations.com/<episode-slug>?t=<seconds>",
"partOfEpisode": { "@id": "https://citedconversations.com/episodes/<show>/<episode>/#episode" }
},
{
"@type": "Quotation",
"@id": "https://citedconversations.com/answers/<slug>/#quotation",
"text": "<the speaker's exact words>",
"spokenByCharacter": { "@id": "https://citedconversations.com/speakers/<name>/#speaker" },
"creator": { "@id": "https://citedconversations.com/speakers/<name>/#speaker" },
"isPartOf": { "@id": "https://citedconversations.com/episodes/<show>/<episode>/#episode" }
}
Every named speaker gets a Person node with a stable @id scoped to the future /speakers/{name}/ URL. The node carries their name, job title, employer (as an Organization), and sameAs links. These let crawlers resolve the speaker to a known public identity.
{
"@type": "Person",
"@id": "https://citedconversations.com/speakers/casey-cheshire/#speaker",
"name": "Casey Cheshire",
"jobTitle": "Founder & CEO",
"worksFor": {
"@type": "Organization",
"name": "Ringmaster",
"url": "https://ringmaster.com"
},
"sameAs": [
"https://linkedin.com/in/caseycheshire",
"https://ringmaster.com"
]
}
Speaker identity is confirmed before recording begins, not inferred from the transcript afterward. The Person node reflects intake data, not a guess from audio analysis.
The homepage declares a DataCatalog node identifying the site as a curated, freely accessible collection. Its publisher is the Organization node. The WebSite node references it via about.
{
"@type": "DataCatalog",
"@id": "https://citedconversations.com/#datacatalog",
"name": "Cited Conversations",
"description": "A reference library of expert answers from recorded human conversations. Every claim is attributed to a named speaker and links to the exact moment it was said.",
"url": "https://citedconversations.com/",
"inLanguage": "en-US",
"isAccessibleForFree": true,
"publisher": { "@id": "https://citedconversations.com/#organization" }
}
isAccessibleForFree: true reflects that the answer pages are publicly readable without a login, paywall, or registration.
creativeWorkStatusEvery Clip, Quotation, WebPage, and PodcastEpisode node on this site carries a creativeWorkStatus field. This field communicates the transcript verification state to AI crawlers and agents in machine-readable form, not just as a visual badge in the page body.
"Published"`"Published"` — The only active value. All published answer pages have been verified against source audio. Speaker attribution, timestamps, and quoted text confirmed.
The field is set consistently on four node types per episode page:
WebPage — the page itselfPodcastEpisode — the source episodeClip node — each timestamped answer segmentQuotation node — each attributed speaker quotation{
"@type": "Quotation",
"@id": "https://citedconversations.com/answers/<slug>/#q1-quotation",
"text": "<speaker's exact words>",
"spokenByCharacter": { "@id": "https://citedconversations.com/speakers/<name>/#speaker" },
"creator": { "@id": "https://citedconversations.com/speakers/<name>/#speaker" },
"isPartOf": { "@id": "https://citedconversations.com/answers/<slug>/#episode" },
"citation": "https://podcast.citedconversations.com/<slug>?t=<seconds>",
"relatedLink": [],
"creativeWorkStatus": "Published"
}
creativeWorkStatuscreativeWorkStatus is a standard schema.org property on CreativeWork (and all its subtypes, including Clip, Quotation, WebPage, and PodcastEpisode). Its vocabulary is unrestricted — any string value is valid. Using it here lets agents that read only structured data distinguish verified claims from pending ones without parsing the human-readable DOM. The site’s core trust promise — verified, source-linked claims — is now visible to both humans and machines.
creativeWorkStatus values)We use creativeWorkStatus to communicate auditable states about each piece of content. The values below are the only ones in use on this site.
| Value | Meaning | Applied to |
|---|---|---|
Published |
The work has been published and is publicly accessible. No specific verification state beyond publication. | WebPage, PodcastEpisode, AudioObject |
Published — transcript verified against source audio by Kristina, 2026-10-10 |
The transcript text for this clip or quotation has been checked against the source audio recording by Kristina (the podcast producer and episode editor). The check confirms the text accurately represents what the speaker said. | Clip, Quotation nodes on answer pages |
Factual claim verification is separate from transcript verification. Where we could not verify a specific factual claim, an editor’s note appears under that answer on the page. The creativeWorkStatus above reflects transcript accuracy only, not factual claim verification.
All crawlers are explicitly permitted. The robots.txt file names AI answer engine bots by User-agent and allows them individually, then sets a global allow for everything else.
# AI answer engine crawlers
User-agent: GPTBot
Allow: /
User-agent: OAI-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
User-agent: ClaudeBot
Allow: /
User-agent: *
Allow: /
A sitemap at /sitemap.xml lists all published pages. Answer and episode pages are added before each publishes.
No content on this site requires JavaScript to render. The structured data is in <script type="application/ld+json"> tags in each page’s <head>. The syntax-highlighted JSON-LD visible on this page is server-side HTML with CSS classes — no client-side highlighting library.