---
title: "Schema That Survives Being Lifted: Article, Speakable and FAQPage"
url: https://hostmy.blog/schema-markup-guide-ai/
date: 2026-09-19
modified: 2026-09-07
lang: en
author: "Aditya Sharma"
description: "Three schema types earn their place for AI retrieval. Here is what each one actually buys you, with the JSON-LD and the test command."
categories:
  - "AI Search"
image: https://hostmy.blog/wp-content/uploads/2026/09/hmb-card-1879-1024x538.jpg
word_count: 1489
---

# Schema That Survives Being Lifted: Article, Speakable and FAQPage

Schema markup does one useful thing for an AI retrieval agent: it states, in a format that needs no parsing guesswork, what the page is, when it changed and who wrote it. Three types carry most of that weight. Article, Speakable and FAQPage.

Everything else on schema.org is either irrelevant to this job or a rich-result play that belongs in a different conversation. Markup is one item on [the list of WordPress tasks AI search advice maps to](/ai-search-optimization-wordpress/), and this piece covers the three types, what each one buys, and how to check yours is actually being served.

Start with the check, because a surprising amount of schema exists only after JavaScript runs.

## Schema that needs JavaScript to appear does not exist

A retrieval agent fetching your URL gets the raw HTML response. If your structured data is injected client side, it is not in that response.

`curl -sS https://example.com/your-post/ | grep -c 'application/ld+json'`

Zero means no JSON-LD in the raw HTML. Compare that against what a rendering validator shows you in a browser, and if the browser shows schema while curl shows none, the schema is being added after load. The longer version of that comparison, [validating JSON-LD from the command line](/check-schema-without-google/), does not need a browser at all.

To read what is actually there:

`curl -sS https://example.com/your-post/ \
| grep -o '"@type": *"[^"]*"' | sort | uniq -c`

That gives a count of every type on the page. Two things to look for: the types you expected, and the types you did not. Plugin stacks accumulate schema, and a page carrying nine entity types is telling an agent nine things at once, which is [the duplicate-node problem in a WordPress plugin stack](/schema-plugin-wordpress/) in its most visible form.

## Article buys you the date and the author, which is what freshness runs on

Article is the base type and the one that does real work. Its value is not the type name. It is `dateModified` and `author`.

Median cited page age was 298 days across the 153,425 citation set, and 61.9 percent of dated cited pages came from 2025 or 2026. Stale pages were roughly 3 times more likely to lose citations.

Note the phrasing in that first finding: dated cited pages. A page with no machine-readable date cannot participate in a freshness comparison at all. Article schema is how you supply the date without relying on an agent parsing "Last updated: March" out of a sidebar.

`{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Your post title, under 110 characters",
"datePublished": "2025-11-04T09:00:00+00:00",
"dateModified": "2026-08-19T14:20:00+00:00",
"author": {
"@type": "Person",
"name": "Full Name",
"url": "https://example.com/author/full-name/"
},
"publisher": {
"@type": "Organization",
"name": "Your Site"
},
"mainEntityOfPage": "https://example.com/your-post/"
}`

One rule that gets broken constantly: `dateModified` must reflect a real edit. Bumping it nightly on unchanged content is a lie told in a machine-readable format, which is a worse class of lie than the ordinary kind. Which pages genuinely deserve a refresh is the subject of [the delete, redirect or refresh decision](/content-pruning-for-ai/).

The `author` block matters for a different reason. A `Person` with a URL points at a page that can carry credentials. A bare string cannot. [The full Person and FAQPage markup for WordPress](/structured-data-wordpress/) covers the fields worth filling in.

## Speakable marks the sentences you want lifted, which is the whole game

Speakable exists to nominate specific passages as the ones worth reading aloud. Whatever its original purpose, the mechanic is the one the citation data cares about: it lets you point at particular sentences rather than a whole page.

Mean cited sentence length was 9.27 words. Median 10. Across all 11,346 cited sentences a study could extract, nothing longer than 18 words was cited once, and the 6 to 10 word band carried 45.2 percent.

So the sentences worth nominating are already tightly constrained. If the passage you mark as speakable runs 30 words, you have marked something outside the band that ever gets quoted.

`{
"@context": "https://schema.org",
"@type": "Article",
"speakable": {
"@type": "SpeakableSpecification",
"cssSelector": [".rnrd-answer", "h1"]
}
}`

The `cssSelector` form is the practical one. Give your answer sentence a class, put that class in the selector, and the nomination survives every future edit to the paragraph around it.

Speakable has documented eligibility limits on Google's side, so treat it as a way of declaring structure rather than a feature request. Check Google's current documentation before assuming any particular surface consumes it.

Placement still applies. 41.9 percent of citations came from the first 30 percent of the page, and the mean sat 37 percent down, across the 9,968 cited sentences analysed. A speakable passage two thirds of the way down is nominating a sentence in the part of the page that is read least.

## FAQPage buys you short question and answer pairs in exactly the right shape

The format of FAQPage is its own argument. Every entry is a question and a self-contained answer, which is the structure the citation data keeps rewarding.

`{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long does setup take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Setup takes about five minutes."
}
}]
}`

That answer is five words. It sits inside the 6 to 10 band that carried 45.2 percent of citations, it makes exactly one claim, and it needs no surrounding context to make sense.

Google has narrowed which sites get FAQ rich results in search, so do not build an FAQPage block expecting a visual result. Build it because it forces you to write self-contained answers and hands them over pre-separated.

A second reason to keep FAQPage on the page is platform spread. Citation volume across the six platforms was AI Mode 88,392, Grok 30,676, Gemini 13,487, Copilot 8,779, Perplexity 8,562 and ChatGPT 3,529. Grok returned 35.79 citations per query against Gemini's 7.06. A page offering six clean question and answer pairs gives a wide-citing platform six separate things to pick from, and a selective one six chances to find the right one.

Two failure modes to avoid. Do not mark up questions that are not on the visible page, because that is a mismatch between what a person sees and what a machine reads. And do not pad answers to three sentences for search engines, because the padding is what pushes them past the ceiling.

Three schema types that survive being lifted

Three schema types that survive being lifted

Rendered by JavaScript
schema that needs JS to appear does not exist

Article
the date and the author, which is what freshness runs on

Speakable
marks the sentences you want lifted

FAQPage
question and answer pairs in exactly the right shape

Each type answers one question a parser is already asking. Anything rendered after page load answers none of them, because the parser has gone.

## Order and nesting matter as much as the schema

Structured data does not rescue a badly ordered document. Sequential headings, H2 then H3 without skipping levels, showed a 2.8x lift in the same dataset.

The counterweight is real: order is the signal, not volume. Order them properly and use fewer of them.

Readability follows the same bimodal pattern broken down in [the four checks an assistant runs before quoting you](/ai-seo-checker-curl/). Schema does not move that number; sentence construction does.

## What schema cannot do

Schema declares. It does not persuade.

Only 23.05 percent of cited URLs ranked in the organic top ten, and for ChatGPT that was 4.2 percent. AI Mode and Gemini, both Google products, shared only 4.66 percent of cited domains. The selection behaviour differs sharply by platform, and no markup makes a page get chosen.

What markup does is remove ambiguity about what the page is, when it changed and who stands behind it. That is a crawlability and parseability improvement, and it is worth doing on its own terms. Treat any claim beyond that with suspicion.

## Generating this without hand-editing every post

Hand-writing Article, Speakable and FAQPage JSON-LD for every post is what RankReady exists to skip. It outputs all three in the raw HTML, keeps `dateModified` tied to real edits rather than a nightly bump, and adds the Markdown endpoint, robots.txt with Content Signals, an author box and llms.txt. About five minutes to set up, and it runs alongside Rank Math, Yoast, AIOSEO or SEOPress without touching their titles, descriptions or sitemap.

One thing worth doing right after installing: run the `uniq -c` command above again. A stack already emitting Article from two sources should emit it from one. The plugin is on [the WordPress.org directory](https://wordpress.org/plugins/rankready-ai-llm-seo/), and the wider request chain it sits in is described in [the request chain between a question and your server](/ai-crawlers-request-by-request/).

## Before you add another schema type

Run the type count on your three best pages.

If it comes back with seven or eight types, the question is not which type to add next. Which of them is your page actually about, and what are the other six telling an agent that you never meant to say?