Structured data for AI answers: what to mark up and how
Structured data does not unlock AI answers by itself, but it removes doubt about facts. Mark up the publisher as an Organization with sameAs links, each article with author, datePublished and dateModified, products with offers, price and currency, and question sections with FAQPage. Use JSON-LD and keep it identical to what the page shows.
A crawler reading HTML has to infer who published a page, when it changed and what a product costs. JSON-LD states those facts explicitly in schema.org vocabulary. Google says no special schema is needed for its AI features, and other AI vendors do not publish how they use markup, so the honest goal is clarity rather than a ranking trick.
On this page
Why does structured data help AI answers?
AI answers often have to state facts: who makes a product, what it costs, whether an article is current. When those facts are only in prose, they can be misread or mixed with facts from other pages. Markup gives a single, consistent statement of each fact that any parser can read.
Use JSON-LD where you can; Google recommends it as the easiest format to implement and maintain. And follow Google's basic rule: do not mark up information that is not visible to users on the page, even if it is accurate.
How should I mark up my organization?
An Organization with name, url, logo and sameAs tells a crawler who stands behind the site. schema.org defines sameAs as the URL of a reference page that unambiguously indicates the item's identity, such as your official profiles elsewhere. Google suggests placing this on the home page or an about page; you do not need it on every page.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://example.com/#org",
"name": "Example Co",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example-co",
"https://github.com/example-co"
]
}
Give the organization a stable @id so other markup on your site, such as an article's publisher, can refer to it. Only list profiles you control in sameAs. Links to pages about a different company with a similar name do the opposite of what you want: they blur the identity the markup is meant to make clear.
Google also lists optional properties such as description, legalName, contactPoint and address. Add the ones that are true and stable; leave out anything you would have to keep updating by hand.
What should Article or BlogPosting markup include?
For articles, the properties that matter most for trust and freshness are headline, author with a name and a url that identifies the author, datePublished and dateModified. Google asks for ISO 8601 dates and recommends including a time zone.
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "How to choose a clinic scheduling app",
"author": {"@type": "Person", "name": "Jane Doe", "url": "https://example.com/team/jane"},
"publisher": {"@id": "https://example.com/#org"},
"datePublished": "2026-10-01T09:00:00+00:00",
"dateModified": "2026-11-12T09:00:00+00:00",
"image": "https://example.com/img/scheduling.jpg"
}
Keep dateModified honest and consistent. Use the same date on the visible page and in your sitemap's lastmod, and update it only when the content actually changes.
Is FAQPage markup still worth adding?
Be clear about what it no longer does. Google has stopped showing FAQ rich results in Search and has removed the documentation for that feature. So FAQPage markup will not give you expanded FAQ results in Google.
It remains a valid schema.org type that pairs each question with its answer in a machine-readable form, which is useful for any system that parses the page. If your page already has a visible FAQ section, marking it up costs little. Do not add questions to the markup that are not on the page.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "Does the app work offline?",
"acceptedAnswer": {"@type": "Answer", "text": "Yes. Changes sync when the device is back online."}
}]
}
How do I mark up a product or app price?
People often ask AI assistants what a product costs, and a price buried in a pricing table is easy to misread. Add offers with price and priceCurrency to your Product or SoftwareApplication markup. Google lists price as required for an offer and recommends priceCurrency; a free app should state a price of 0.
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Example Planner Pro",
"offers": {
"@type": "Offer",
"price": 19.00,
"priceCurrency": "USD",
"availability": "https://schema.org/InStock"
}
}
How do I check that my markup is read correctly?
- Every JSON-LD block must be valid JSON. One stray comma makes parsers ignore the whole block.
- Put JSON-LD in the initial HTML. Markup injected by JavaScript may be missed by crawlers that do not run scripts.
- Compare the markup with the visible page: names, prices and dates should match exactly.
- Make sure the page that carries the markup is not blocked for AI crawlers by robots.txt or a firewall; markup on an unreachable page helps no one.
- Combine related items with
@idreferences instead of repeating them, so the publisher in your article markup and your Organization markup are clearly the same entity. - Generate dates and prices from the same data that fills the visible page, so the two cannot drift apart after an update.
AISeeWhy parses the JSON-LD on your page and reports invalid blocks, missing publisher or sameAs, incomplete article data, app or product markup without a price, and question headings without matching FAQ markup, with a ready snippet for each fix.
Frequently asked questions
Do I need structured data to appear in Google AI Overviews?
No. Google says there is no special schema.org structured data needed for AI Overviews or AI Mode. Markup still helps make facts like dates and prices unambiguous.
JSON-LD, Microdata or RDFa?
All are valid, but Google recommends JSON-LD where your setup allows, because it is easier to add and maintain separately from the visible HTML.
Should every page have Organization markup?
Google suggests placing it on the home page or a single page that describes the organization. Other pages can refer to it by its @id.
Does structured data replace good content?
No. Markup states facts about the page; it does not make a weak answer strong. AI answers still quote the visible text, so the page has to answer the question well on its own.
Can I mark up content that is hidden from visitors?
No. Google's guidelines say not to mark up information that is not visible to users, even if it is accurate.
Sources
- Google Search Central: Introduction to structured data
- Google Search Central: Organization structured data
- Google Search Central: Article structured data
- Google Search Central: Product snippet structured data
- Google Search Central: FAQ structured data (deprecation notice)