How Speakable Schema Works
Speakable schema is implemented in JSON-LD and tells Google's systems: "the content at this CSS selector is the best representation of what this page is about, and it is structured for extraction and reading." Google's voice assistants and AI systems use this signal to select which content to surface when answering queries related to the page's topic.
The schema lives in the page's @graph block, alongside the WebPage, BreadcrumbList, and FAQPage entries. It references a CSS class, .aeo-nugget in SEO Local's implementation, and the content with that class is what gets read and cited.
Implementation Code
Add this to every page's @graph block:
Then show the HTML usage example:
Every page on every website SEO Local builds uses this exact implementation pattern, validated through Google's Rich Results Test before launch.
What to Put Inside the Speakable Element
The content marked as speakable should meet five criteria:
Direct answer
It answers the primary question implied by the page's URL and H1 in the first sentence. No preamble, no "great question," no setup.
Hard fact
It contains at least one verifiable measurement, timeframe, cost figure, technical specification, or regulatory reference. Generic statements are not citation-worthy.
Forty to sixty words
Long enough to provide context, short enough to read in under 20 seconds. AI systems prefer extractable chunks, not paragraphs.
No promotional language
"Call us today" or "We offer the best service" in the speakable element actively reduces citation probability. The speakable element is informational, not promotional.
Natural sentence structure
AI systems reading text aloud or extracting for citations perform better with simple, declarative sentences than with complex nested clauses.
Common Implementation Errors
Three errors appear most frequently in speakable implementations reviewed by SEO Local.
The speakable element is too long
Paragraphs over 100 words or entire sections marked as speakable dilute the signal. Mark only the AEO nugget paragraph.
The speakable element contains promotional content
If your opening paragraph starts with "At [Business Name], we pride ourselves on..." it will not be cited. Rewrite as direct factual content.
The schema references a CSS class that does not exist on the page
The JSON-LD says ".aeo-nugget" but the HTML uses "aeo_nugget" or the class is not applied to any element. Validate with the Rich Results Test.
SEO Local