Schema Markup for AEO: How to Help AI Understand Your Brand

Schema markup for AEO is the practice of adding JSON-LD structured data to your website so that AI assistants can identify your brand, understand your products, and extract structured information from your pages. You implement it by adding specific schema types (Organization, Product, Article, FAQ, HowTo) to each page type, validating the markup, and monitoring whether AI platforms use this data when generating responses.

Back to Blog

Why schema markup matters for AI (not just Google)

Schema markup tells machines what your content means, not just what it says. Without schema, an AI crawler sees text on a page. With schema, it sees structured entities: this is an organization, this is a product with these features and this price, this is an article by this author published on this date.

This matters for AI visibility in two specific ways.

First, schema helps AI build entity associations. When your Organization schema lists your brand name, industry, founding date, and location, AI systems can match your brand to category queries. Without this, AI must infer your category from unstructured text — which is less reliable.

Second, schema makes data extractable. An FAQ schema with question-answer pairs gives Perplexity and Google AI Overviews pre-formatted answers to use. A Product schema with pricing and features gives AI structured data to cite in comparison responses. Unstructured prose requires the AI to parse and interpret — structured data can be cited directly.

Schema does not guarantee AI citation. But missing schema means AI has to work harder to understand your content, and when a competitor's page has schema and yours does not, the competitor's data is easier to extract.

For the full AEO context: What Is AEO: Complete Guide.

Which schema types AI systems use

Not all schema types affect AI visibility equally. Here is what matters, ranked by impact.

Schema typeAI impactWhat it communicatesWhich pages need it
OrganizationHighBrand identity, industry, location, founding dateHomepage + every page (in @graph)
ArticleHighContent type, author, topic, publish date, word countEvery blog post, guide, case study
Product / ServiceHighWhat you sell, pricing, features, audienceProduct and service pages
FAQMediumPre-formatted question-answer pairsFAQ sections on any page
HowToMediumStep-by-step process with named stepsHow-to guides and tutorials
BreadcrumbListMediumSite structure, page hierarchyEvery page
Review / AggregateRatingMediumCustomer sentiment, rating scoresProduct pages, testimonial pages
WebSiteLow-MediumSite identity, search URLHomepage (in @graph)

Organization and Article are non-negotiable. If your homepage lacks Organization schema and your blog posts lack Article schema, fix those first.

Implement Organization schema

Organization schema tells AI who you are. Place it on your homepage and reference it from every other page using @id.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://www.example.com/#organization",
  "name": "Your Brand Name",
  "url": "https://www.example.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://www.example.com/logo.png"
  },
  "description": "One sentence describing what your company does and who it serves.",
  "foundingDate": "2020",
  "address": {
    "@type": "PostalAddress",
    "addressLocality": "Amsterdam",
    "addressCountry": "NL"
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourbrand",
    "https://twitter.com/yourbrand"
  ]
}

Key fields for AI:

  • name: Use your exact brand name as you want AI to reference it.
  • description: Write one sentence that includes your category and target audience. AI may extract this directly.
  • sameAs: Link to your social profiles. This helps AI cross-reference your brand entity across platforms.
  • @id: Use a consistent identifier. Other schemas reference this ID to connect everything to your organization.

Implement Article schema for blog posts

Article schema tells AI that a page is editorial content with a specific topic, author, and publication date.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "@id": "https://www.example.com/blog/your-article#article",
  "url": "https://www.example.com/blog/your-article",
  "headline": "Your Article Title",
  "description": "One-sentence summary of the article content.",
  "datePublished": "2026-04-09",
  "dateModified": "2026-04-09",
  "inLanguage": "en-US",
  "wordCount": 3000,
  "articleSection": "Your Category",
  "keywords": ["keyword 1", "keyword 2", "keyword 3"],
  "author": {
    "@id": "https://www.example.com/#organization"
  },
  "publisher": {
    "@id": "https://www.example.com/#organization"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://www.example.com/blog/your-article#webpage",
    "url": "https://www.example.com/blog/your-article"
  }
}

Key fields for AI:

  • headline: Use the exact H1 of your page. AI may use this to match the article to queries.
  • description: Write a summary that answers the core question of the article. AI may extract this as a snippet.
  • dateModified: Keep this current. AI platforms with recency bias (Perplexity, Google AI Overviews) check modification dates.
  • keywords: Include 3–7 terms that match how users query AI about this topic.
  • articleSection: Categorize your content. This helps AI associate the article with a topic cluster.

Implement Product and Service schema

Product and Service schema gives AI structured data about what you sell — pricing, features, and target audience.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "@id": "https://www.example.com/#product-name",
  "name": "Your Product Name",
  "description": "What the product does and who it is for.",
  "brand": {
    "@id": "https://www.example.com/#organization"
  },
  "offers": {
    "@type": "Offer",
    "price": "80",
    "priceCurrency": "EUR",
    "availability": "https://schema.org/InStock"
  },
  "audience": {
    "@type": "Audience",
    "audienceType": "Marketing teams, brand managers, founders"
  }
}

For service businesses, use @type: Service instead of Product. The structure is similar but use serviceType instead of product-specific fields.

Key fields for AI:

  • offers with price: When AI answers “How much does [your product] cost?”, it can pull the price directly from schema.
  • description: Write this as a standalone answer to “What does [your product] do?” — AI may extract it verbatim.
  • audience: Helps AI match your product to the right user queries.

Implement FAQ schema

FAQ schema provides pre-formatted question-answer pairs that AI can extract without parsing your page content.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is [your topic]?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Direct answer to the question in 1-3 sentences."
      }
    },
    {
      "@type": "Question",
      "name": "How does [your product] work?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Step-by-step explanation of the process."
      }
    }
  ]
}

Key fields for AI:

  • name (the question): Use the exact phrasing your customers use when asking AI. Match the query format.
  • text (the answer): Keep answers to 1–3 sentences. Longer answers get truncated. Lead with the direct answer.

Note: FAQ schema is useful for Perplexity and Google AI Overviews, which actively extract FAQ pairs. ChatGPT does not appear to use FAQ schema directly, but the structured format still helps with general content extraction.

Implement HowTo schema

HowTo schema structures step-by-step content so AI can extract individual steps.

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to [accomplish task]",
  "description": "Summary of the process.",
  "totalTime": "PT2H",
  "step": [
    {
      "@type": "HowToStep",
      "position": 1,
      "name": "Step name",
      "text": "What to do in this step and what the outcome should be."
    },
    {
      "@type": "HowToStep",
      "position": 2,
      "name": "Step name",
      "text": "What to do in this step."
    }
  ]
}

Key fields for AI:

  • name at the HowTo level: Match this to the H1 of your page.
  • Step name: Use action verbs. “Configure robots.txt” is better than “Robots.txt configuration.”
  • Step text: Make each step self-contained. AI may extract individual steps, not the full sequence.

Add BreadcrumbList to every page

BreadcrumbList schema communicates your site structure to AI, helping it understand where a page fits in your content hierarchy.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://www.example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://www.example.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "Article Title",
      "item": "https://www.example.com/blog/article-slug"
    }
  ]
}

This is low effort and helps both Google (breadcrumb rich results) and AI systems (site structure understanding).

Use @graph to combine multiple schemas

On a single page, you often need multiple schema types: Organization + Article + BreadcrumbList for a blog post, or Organization + Product + FAQ for a product page. Use @graph to combine them.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://www.example.com/#organization",
      "name": "Your Brand"
    },
    {
      "@type": "Article",
      "@id": "https://www.example.com/blog/article#article",
      "author": { "@id": "https://www.example.com/#organization" },
      "publisher": { "@id": "https://www.example.com/#organization" }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://www.example.com/blog/article#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.example.com"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Blog",
          "item": "https://www.example.com/blog"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Article Title",
          "item": "https://www.example.com/blog/article"
        }
      ]
    }
  ]
}

The @id system: Use consistent @id values across your site. Define Organization once with @id: "https://www.example.com/#organization", then reference it from every Article and Product schema. This creates a connected entity graph that AI can traverse.

Test and validate your markup

After implementing schema, validate it before deploying.

Step 1: Test with Google Rich Results Test

Go to Google Rich Results Test. Enter your URL. Check that all schema types are detected and no errors or warnings appear.

Step 2: Test with Schema.org Validator

Go to Schema.org Validator. Paste your JSON-LD code. This catches structural issues that the Rich Results Test may miss.

Step 3: View the rendered JSON-LD in your page source

Open your page in a browser. View source (Ctrl+U / Cmd+U). Search for “schema.org”. Verify the JSON-LD block contains the correct data.

Step 4: Test across AI platforms

After deploying, wait 2–4 weeks for AI crawlers to index the changes. Then test by asking AI platforms questions about your brand and products. Check whether AI responses contain data that matches your schema (pricing, descriptions, product features).

Avoid these schema mistakes

  1. Adding schema that does not match the page content. If your page is about a service but you add Product schema, AI may extract incorrect information. Schema must reflect the actual content on the page.
  2. Using schema only on the homepage. Organization schema on the homepage is a start, but Article schema on blog posts, Product schema on product pages, and FAQ schema on FAQ sections are all necessary. Schema is a per-page implementation.
  3. Forgetting dateModified. Stale dateModified values tell AI your content is old. Update this field every time you update the page content. AI platforms with recency bias (Perplexity, Google AI Overviews) check this.
  4. Writing marketing copy in schema description fields. Schema descriptions should be factual and extractable. “The best CRM on the market” is marketing. “A CRM platform for sales teams with pipeline management, email tracking, and reporting” is extractable data.
  5. Not connecting schemas with @id references. If your Article schema's author does not reference your Organization schema's @id, AI sees them as unrelated entities. Use @id consistently across all pages to build a connected graph.
  6. Skipping validation after deployment. A syntax error in JSON-LD silently breaks your schema. AI and Google ignore the entire block if there is a parsing error. Always validate after deploying.
  7. Adding schema but blocking AI crawlers. If GPTBot or ClaudeBot is blocked in robots.txt, they cannot read your schema regardless of how well it is implemented. Check AI bot access first.

Compare schema impact across AI platforms

Schema does not affect all AI platforms equally.

PlatformSchema impactWhat schema does for this platform
Google AI OverviewsHighStructured data directly feeds AI Overviews. Google uses schema for entity understanding and rich result generation.
GeminiMedium-HighRetrieves from Google's index, which values schema. Organization and Product schema help Gemini understand your brand.
PerplexityLow-MediumPerplexity's own crawler focuses on content extraction. Schema helps with entity matching but is not a primary signal.
ChatGPTLowChatGPT uses Bing's index for web search. Schema has indirect value through entity understanding but is not a direct citation signal.
ClaudeLowClaude's web search does not appear to weight schema heavily. Content structure matters more than markup.

The takeaway: If your priority is Google AI Overviews and Gemini, schema is high-impact. If your priority is ChatGPT and Perplexity, content structure and external mentions matter more than schema. Implement schema for all platforms because it costs little and helps with Google, but do not expect it to single-handedly improve ChatGPT visibility.

Next steps

Check whether your current schema is complete by running an AEO audit: How to Run an AEO Audit.

For the full optimization playbook including content structure and external signals: How to Get Your Brand Recommended by AI Assistants.

Not sure if your schema is AI-ready?

Far & Wide's Full AEO Audit (from €750) includes schema validation across all pages, AI bot access testing, and specific recommendations for which schema types to add or fix.

Get your audit