What Speakable Schema Actually Does
Most schema types tell search engines and AI systems what something is. Speakable schema does something slightly different: it tells them which part of your page is worth reading aloud. That distinction matters more than it sounds.
When a voice assistant answers a query, it does not read out an entire article. It picks a snippet, usually a few sentences, and delivers it as a spoken response. Speakable schema is your way of flagging the sections you want it to use. Think of it as leaving a sticky note on the best parts of your page that says "this bit, read this bit."
Google originally introduced the Speakable schema type with voice-enabled Google Assistant actions and Google News in mind. But its relevance has grown considerably now that AI systems like Gemini, Perplexity, and ChatGPT are increasingly delivering answers in conversational formats, including voice interfaces on mobile and smart devices.
If you want your content to be the source that gets read out, you need to help these systems find the most quotable, spoken-friendly parts of your page. Speakable schema is the most direct way to do that.
The Anatomy of a Speakable Schema Block
Speakable schema uses the SpeakableSpecification type and sits inside a parent WebPage or NewsArticle schema block. There are two ways to point it at your content: using CSS selectors or using XPath expressions. CSS selectors are almost always easier and more practical for most site setups.
Here is a basic JSON-LD example using CSS selectors:
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "How to Choose a Running Shoe",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".intro-summary", ".key-takeaways"]
},
"url": "https://example.com/running-shoe-guide"
}
In this example, the two CSS classes .intro-summary and .key-takeaways are flagged as the speakable content. When an AI voice system pulls from this page, those sections are what you want it to read.
You can also use XPath if your site structure makes CSS selectors awkward:
"speakable": {
"@type": "SpeakableSpecification",
"xpath": [
"/html/body/article/div[@class='summary']",
"/html/body/article/section[1]/p[1]"
]
}
XPath is more precise but harder to maintain, especially on platforms like Shopify or WordPress where page structure can shift with theme updates. CSS selectors are more resilient in those environments.
What Content to Mark as Speakable
This is where most people go wrong. They either mark the entire page or mark nothing meaningful. Neither works well.
Speakable content needs to meet a few practical criteria to actually be useful to a voice system:
- Short enough to be spoken naturally. Aim for sections that are two to four sentences. A 400-word block is not speakable in any practical sense.
- Self-contained. The snippet should make sense without the surrounding context. If someone hears it without reading your page, they should still understand the point.
- Factual and specific. Vague statements like "we offer great products" are useless. Specific claims, definitions, or answers to common questions perform far better.
- Conversational in tone. Written text and spoken text are different. Short sentences, plain language, and active voice all help here.
Good candidates for speakable markup include: introductory summaries, definition paragraphs, key takeaway sections, answers to specific questions, and step introductions. Poor candidates include: tables, lists with lots of items, navigation text, and any paragraph that relies on visual context to make sense.
If your page already has a strong summary paragraph near the top, that is usually your best starting point. Mark it, test how it sounds read aloud, and refine from there.
Speakable Schema and AI Citation Behaviour
It is worth being honest about how AI systems currently use Speakable schema. Google has been the most explicit in supporting it, particularly for Google Assistant and Google News integrations. OpenAI, Anthropic, and Perplexity have not published formal documentation confirming they specifically honour Speakable annotations.
So why implement it anyway?
Because the underlying logic still applies. AI systems that generate spoken or conversational responses need to identify quotable, readable content. A page with clearly marked, well-written, self-contained sections is easier to extract from than a wall of text with no structure. Speakable schema forces you to think about which sections those are and to write them well. That discipline improves your content quality regardless of whether the AI explicitly reads the schema type.
There is also a forward-looking argument. As AI voice interfaces become more common, search platforms are more likely to increase their reliance on structured signals like Speakable to decide what gets surfaced. Implementing it now puts you ahead of that shift rather than scrambling to catch up later.
At FlinnSchema, we treat Speakable markup as part of a broader AI readiness strategy rather than a standalone tactic. It works best alongside other schema types like FAQPage, HowTo, and Article that together paint a complete picture of your content for AI systems. You can read more about the broader approach in our guide on writing content that AI search engines will actually quote.
Implementation on Shopify and WordPress
Shopify
Shopify's built-in schema support does not include Speakable markup. You will need to add it manually or through a schema app. The cleanest approach is to inject a JSON-LD block into your theme's product.liquid, article.liquid, or page.liquid templates, depending on which page types you want to target.
If you have already read our post on adding JSON-LD schema to Shopify without editing theme code, you will know there are app-based routes available. Most schema apps let you inject custom JSON-LD blocks, which is how you would add Speakable if you are not comfortable in the theme editor.
One Shopify-specific tip: make sure your CSS selectors actually match your theme's class names. Themes vary considerably. Use your browser's developer tools to inspect the element you want to mark and copy the exact class name rather than guessing.
WordPress
WordPress gives you a bit more flexibility. If you use a schema plugin like Rank Math or Schema Pro, check whether they support Speakable schema types. Some do, some do not, and the implementations vary in quality.
For full control, add the JSON-LD block directly to your page template or via a custom plugin that hooks into wp_head. This gives you precise control over which CSS selectors you target and makes it easier to update the markup as your content evolves.
One common mistake on WordPress: people mark the entire .entry-content div as speakable. That is the entire post body. It is far too broad. Be specific. Target a dedicated summary div, an introduction paragraph with a unique class, or a clearly labelled key takeaways section.
Testing and Validating Your Speakable Markup
Google's Rich Results Test does not currently show a Speakable result preview in the way it does for FAQ or HowTo schema. However, it will still flag JSON-LD errors if your markup is malformed. Always run your pages through the Rich Results Test after implementation to catch syntax issues.
Schema.org's validator at validator.schema.org is also useful for confirming your JSON-LD is structured correctly. Paste your code in and check for warnings or errors before pushing anything live.
Beyond technical validation, do a manual read-through test. Take each section you have marked as speakable and read it aloud. Does it flow naturally? Does it make sense without the surrounding page content? Would it answer a real user question if read out by a voice assistant? If the answer to any of those is no, rewrite the section before worrying about the markup.
If you are unsure how your overall schema setup is performing, a free AI visibility audit from FlinnSchema will show you where your structured data has gaps, including whether your pages have any speakable-friendly content marked up at all.
Common Mistakes Worth Avoiding
A few patterns come up repeatedly when auditing sites for speakable implementation:
- Marking too much. Speakable is not a content highlight reel for everything on your page. Pick the one or two sections that best answer a spoken query.
- Using classes that do not exist. CSS selectors must match actual elements on the rendered page. If you reference a class that your theme strips out or never adds, the markup points at nothing.
- Ignoring mobile rendering. Some themes render different HTML structures on mobile. If your CSS selector only matches the desktop layout, voice assistants hitting the mobile version will not find the marked content.
- Forgetting to update markup after content edits. If you rewrite your summary section or move it to a different div, your speakable selector may no longer point at anything useful. Schema maintenance is an ongoing task, not a one-off job.
- Applying it only to news articles. Speakable schema works on any
WebPagetype. Product pages, landing pages, and evergreen guides can all benefit, not just news content.
Frequently Asked Questions
Does Speakable schema work on non-news pages?
Yes. Google originally introduced Speakable in the context of news articles, but the schema.org specification allows it on any WebPage type. Product pages, service pages, and blog posts can all use it. The more important question is whether the content you mark is actually written in a voice-friendly, spoken format.
Will adding Speakable schema guarantee my content gets read by voice assistants?
No, it does not guarantee anything. Speakable schema signals to AI and voice systems which sections are suitable for spoken delivery, but whether those systems use your content depends on many other factors: domain authority, content relevance, query match, and the policies of each platform. Think of it as making your content a better candidate, not a certain winner.
How many sections should I mark as speakable on a single page?
One to three sections is a sensible range for most pages. Each section should be short, self-contained, and genuinely useful when heard rather than read. If you find yourself wanting to mark five or six sections, that is usually a sign that your content needs editing down rather than more markup.
Is Speakable schema supported by ChatGPT and Perplexity?
Neither OpenAI nor Perplexity has published documentation confirming explicit support for the Speakable schema type. Google is the most transparent supporter. That said, the discipline of writing clear, structured, quotable content that Speakable implementation encourages is directly beneficial for how any AI system extracts and cites your pages. The markup and the content quality work together.
