Structured Data for AI Search: What Schema Actually Helps
- Difficulty
- Moderate
- You need
- Template or CMS access, Search Console
- Works with
- Any platform that can output JSON-LD
On this page
Structured data for AI search means schema.org markup that describes your pages accurately, so search systems can read key facts without guessing. Be clear about one thing first: Google says structured data isn't required for its generative AI features, and there's no special schema to add. It's still worth doing well, because it powers rich results and helps Google understand your business. You'll need access to your page templates and to Search Console. This guide is part of our AI search optimization guide.
What structured data does and doesn't do for AI search
Google's guide to generative AI features puts it plainly: "Structured data isn't required for generative AI search, and there's no special schema.org markup you need to add." The same guide recommends you keep using it as part of your overall SEO, because it helps pages qualify for rich results.
Google adds one rule that applies directly to AI features. Its AI features documentation lists "making sure your structured data matches the visible text on the page" among the SEO basics that remain worthwhile.
What ChatGPT and Perplexity document
Outside Google, the documentation is silent. OpenAI's and Perplexity's crawler pages explain robots.txt and IP access and don't mention schema at all. So treat claims that a certain markup type "gets you into ChatGPT" as unproven.
What does that leave? Markup that tells the truth about your business and your pages, matches what people see, and supports the Google features that exist. That is the version worth building.
Which schema types to use on each page
Most business sites need only a handful of types. The table below maps common page templates to the schema.org type that usually fits. Use it as a starting point, then check each type's Google documentation for its required properties.
| Page template | Main type | Worth noting |
|---|---|---|
| Home or about page | Organization | Name, URL, logo and your official profiles |
| Guide or blog post | Article | Author and an accurate modified date |
| Product page | Product | Price and availability must match the page |
| Physical location page | LocalBusiness | Only for a real address people can visit |
| Any page with breadcrumbs | BreadcrumbList | Mirror the trail users actually see |
A service business with no products or physical store might use only Organization, Article and BreadcrumbList. That's fine. Fewer accurate types beat many vague ones.
Steps to add structured data that helps
- List what each page type is really about.
Go template by template: home, about, service pages, articles, products, contact. For each, write one line on the page's main purpose. Google's guidelines say to include the main type that reflects that focus, and to use the most specific type that applies. A guide is an Article. A product page is a Product. Getting this map right first saves rework.
- Describe your organization once, clearly.
Add Organization markup to your home or about page. Google says it has no required properties, and that some properties help it tell your organization apart from others. Include your name, URL, logo and the profiles you control:
json{ "@context": "https://schema.org", "@type": "Organization", "@id": "https://example.com/#org", "name": "Example Studio", "url": "https://example.com", "logo": "https://example.com/images/logo.png", "sameAs": ["https://www.linkedin.com/company/example-studio"] } - Add the main type for each page template.
Use Article for guides and posts, with the author and an accurate `dateModified` in ISO 8601 format. Use Product for product pages and BreadcrumbList where breadcrumbs are visible. Use LocalBusiness only on a page for a real location people can visit. Every type should describe content that's actually on that page. Google says to put markup on the page it describes.
- Output JSON-LD in the server HTML.
Google supports JSON-LD, Microdata and RDFa, and recommends JSON-LD. Place it in a script tag that's present in the HTML your server sends, not only injected later by a tag manager. Google can process JavaScript, but other crawlers don't document whether they do. Check what's in the raw response:
bashcurl -s https://example.com/guide | grep -c "application/ld+json" - Match every value to the visible page.
Google's guidelines say not to mark up content readers can't see, and that markup must truly represent the page. Dates, prices, authors and service names in the JSON-LD should read the same as on screen. Never mark up reviews or ratings that aren't real and visible. Generate the markup from the same data as the page, so the two can't drift apart.
- Connect related items with @id.
Give your Organization a stable `@id`, as in step 2. Then reference it from other markup, such as an Article's publisher, instead of repeating the details. Google's guidelines describe using `@id` to show that items on a page belong together. It keeps your facts consistent across the whole site and makes updates a one-place change.
- Validate before and after release.
Test templates in Google's Rich Results Test to see which rich results a page qualifies for, and in the Schema Markup Validator for general schema.org errors. After release, run URL Inspection on a live page to confirm Google sees the markup. Fix errors first. Warnings for missing recommended properties are worth fixing when the data is real.
- Monitor and maintain.
Check Search Console's rich result reports monthly for new errors, especially after template or CMS changes. When a price, address or author changes on the page, the markup should change with it. If your markup comes from the same source as the page, this happens automatically. If it's hand-written, add it to your update checklist.
Structured data never replaces readable, accessible HTML. Real headings, alt text and visible facts serve every visitor and every crawler. If you'd rather have this built and checked for you, our in-house SEO team handles structured data as part of our SEO work, end to end.
Troubleshooting
The Rich Results Test finds no structured data
Cause: the markup isn't in the HTML Google received. Common reasons are a tag manager or script that injects it too late, a template that only outputs it on some pages, or a robots.txt or noindex rule blocking the page. Google's guidelines say not to block structured data pages with any of these.
Fix: fetch the raw HTML with curl and search for `application/ld+json`. If it's missing, move the markup into the server-rendered template. If it's present, run URL Inspection and look at the crawled HTML to see what Googlebot got. Then check robots.txt and meta robots for the page. For AI crawler access in general, see robots.txt for AI crawlers.
Your markup is valid but no rich result appears
Cause: valid markup makes a page eligible, not guaranteed. Google says it doesn't guarantee rich results even when markup passes the test. It tailors results by query, device and location, and may decide a plain result is best. The feature may also no longer exist, as with FAQ rich results.
Fix: confirm the rich result type is still listed in Google's search gallery documentation. Check that you've included every required property for that type, and the recommended ones where the data is real. Make sure the marked-up content is the main content of the page, not a side element. Then give it time after Google recrawls, and track the relevant rich result report in Search Console.
Search Console reports a structured data manual action
Cause: Google found markup that breaks its quality guidelines. Typical problems are marking up hidden content, irrelevant or misleading data, or reviews that aren't genuine. Google says this kind of manual action removes rich result eligibility. It doesn't affect how the page ranks in web search.
Fix: open the Manual Actions report in Search Console and read the example URLs it lists. Remove or correct every markup item that doesn't match visible, genuine content, across the whole template, not just the examples. Then submit a reconsideration request explaining what you changed. For a wider look at machine-readable files, see llms.txt explained.
Common questions
Does schema markup help ChatGPT or Perplexity cite my site?
Neither company says so. OpenAI's and Perplexity's crawler documentation covers robots.txt and IP access and doesn't mention structured data. No one has published proof either way. Accurate markup costs little and supports Google features, but for ChatGPT and Perplexity, crawler access and clear visible text are the documented basics.
Which schema types matter most for a business website?
Start with Organization on your home or about page, then the type that matches each template: Article for guides and posts, Product for products, and BreadcrumbList where you show breadcrumbs. Add LocalBusiness only on pages for a real, visitable location. Google advises choosing the most specific type that truly describes the page.
Should I keep FAQPage markup on my pages?
Keep the visible FAQs; the markup is optional. Google says FAQ rich results stopped appearing in Google Search from May 7, 2026, so markup earns no rich result. Visible questions with direct answers still help readers and answer engines. If you keep FAQPage markup, generate it from the same text so it matches the visible FAQs exactly.