general aeo-structured-data

aeo-structured-data

This skill should be used when the user asks to "add schema markup for AI search", "implement structured data for AEO", "set up FAQPage schema", "add HowTo schema", "use structured data for AI engines", "implement schema for ChatGPT", "add JSON-LD for AEO", "structured data for answer engines", or any variation of implementing, designing, or optimizing schema markup and structured data for answer engine optimization.
Download .md

AEO Structured Data

Structured data (schema markup) tells AI engines what your content represents. Without it, AI engines guess. With it, they extract accurately. Schema markup is the single fastest AEO win — it takes 30 minutes per page and dramatically improves citation accuracy.

For AEO, structured data serves a different purpose than for SEO. In SEO, schema earns rich results (stars, FAQs, breadcrumbs in Google). In AEO, schema makes content extractable — it tells AI crawlers "this is a question-answer pair" or "this is a step-by-step process" so they can lift it cleanly.

Schema Types by Page Type

Every page type has a primary and secondary schema. Apply both.

Page type Primary schema Secondary schema Why
Category definition FAQPage Article + Organization Marks Q&A pairs for extraction + establishes entity
Comparison (X vs Y) FAQPage Article Comparison questions are top AI queries
How-to / tutorial HowTo Article Enables step-by-step extraction
Pricing page Product with offers FAQPage Structures pricing data for factual extraction
Integration page SoftwareApplication HowTo Marks integration as factual + setup steps
Blog post / article Article FAQPage (if FAQ section present) Author + date signals recency
Product / feature page SoftwareApplication FAQPage Marks product attributes for extraction
Glossary page DefinedTermSet FAQPage Marks definitions for extraction
Case study Article Organization Attribution + entity
All pages (site-wide) Organization WebSite with SearchAction Establishes site-level entity identity

Schema Implementation Rules

Required fields (every schema)

These fields must be present on every schema implementation. Missing any one reduces extraction quality.

Field Why it matters for AEO Example
@context Validates the schema "https://schema.org"
@type Tells engines what the content is "FAQPage", "HowTo", "Article"
name or headline The primary identifier "How to Set Up Lead Scoring in HubSpot"
datePublished Establishes when content was created "2026-01-15"
dateModified Recency signal — AI engines weight this heavily "2026-04-28"
author Trust signal — anonymous content ranks lower {"@type": "Person", "name": "Jane Kim"}

dateModified is the single most important AEO schema field. AI engines heavily weight recency. Update this field every time you edit the page. Never fake it — set it to the actual last-edit date.

Format: JSON-LD only

  • Always use JSON-LD format (<script type="application/ld+json">)
  • Never use Microdata or RDFa. JSON-LD is the standard all AI engines parse reliably
  • Place JSON-LD in the <head> section, not the body
  • One <script> block per schema type. Multiple schemas on one page = multiple script blocks

Schema Templates

FAQPage

Use for any page with a question-answer section. The highest-value AEO schema.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is revenue intelligence?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Revenue intelligence is a category of software that captures and analyzes customer interaction data — calls, emails, meetings — to surface insights that help sales teams close more deals. It combines conversation intelligence, deal analytics, and forecasting into a single platform."
      }
    },
    {
      "@type": "Question",
      "name": "How much does revenue intelligence software cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Revenue intelligence platforms typically cost $50-150 per user per month. Enterprise plans with custom integrations and unlimited storage start at $200+ per user per month. Most vendors require annual contracts with a minimum of 10-25 seats."
      }
    }
  ]
}

Rules:

  • Schema text must exactly match visible page content. No hidden Q&A pairs
  • 5-12 questions per FAQPage. Fewer than 5 is too thin. More than 12 risks Google ignoring the schema
  • Each answer: 2-4 sentences, self-contained, factual

Article

Use for blog posts, guides, comparison pages, and any editorial content.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Notion vs Confluence: Which Is Better for Your Team?",
  "author": {
    "@type": "Person",
    "name": "Jane Kim",
    "url": "https://example.com/team/jane-kim"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Acme",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "datePublished": "2026-01-15",
  "dateModified": "2026-04-28",
  "description": "A detailed comparison of Notion and Confluence for team collaboration, covering features, pricing, integrations, and best use cases."
}

Rules:

  • Always include a real author with a name and URL. Anonymous articles rank lower in AI engines
  • dateModified must reflect the actual last edit. AI engines compare this across competing sources
  • description should be a single, extractable summary sentence

HowTo

Use for tutorials, setup guides, and step-by-step processes.

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Set Up Lead Scoring in HubSpot",
  "description": "A step-by-step guide to configuring lead scoring in HubSpot using contact properties, engagement data, and custom criteria.",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Define scoring criteria",
      "text": "Navigate to Settings > Properties > Contact scoring. Define positive score attributes (job title match, company size, page visits) and negative attributes (competitor domain, unsubscribed, inactive 90+ days)."
    },
    {
      "@type": "HowToStep",
      "name": "Set score thresholds",
      "text": "Set the MQL threshold at 50 points and the SQL threshold at 80 points. These thresholds determine when a lead is routed to sales."
    }
  ],
  "totalTime": "PT30M"
}

Rules:

  • Each step must be self-contained. AI engines may extract individual steps
  • Include totalTime when applicable — AI engines surface this in answers
  • 3-10 steps. Fewer is too thin. More than 10 should be split into separate guides

Product (with offers)

Use for pricing pages and product overview pages.

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Acme CRM",
  "description": "Acme CRM is a sales CRM built for B2B SaaS teams with built-in sequencing, pipeline management, and revenue forecasting.",
  "brand": {
    "@type": "Organization",
    "name": "Acme"
  },
  "offers": [
    {
      "@type": "Offer",
      "name": "Starter",
      "price": "29",
      "priceCurrency": "USD",
      "priceSpecification": {
        "@type": "UnitPriceSpecification",
        "price": "29",
        "priceCurrency": "USD",
        "referenceQuantity": {
          "@type": "QuantitativeValue",
          "value": "1",
          "unitText": "user/month"
        }
      }
    }
  ]
}

Organization (site-wide)

Apply to every page. Establishes entity identity across the site.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme",
  "url": "https://acme.com",
  "logo": "https://acme.com/logo.png",
  "sameAs": [
    "https://www.linkedin.com/company/acme",
    "https://twitter.com/acme",
    "https://github.com/acme"
  ]
}

Rules:

  • name must be the exact brand name used consistently across all pages
  • sameAs links to official social profiles. AI engines use these for entity disambiguation
  • Place in site-wide template so it appears on every page

Validation and Testing

Before publishing

Check Tool Pass criteria
Schema validity Google Rich Results Test No errors, all entities detected
Schema-content match Manual review Every schema text matches visible page content exactly
Required fields present Schema.org validator All required fields populated
JSON-LD syntax JSON validator Valid JSON, no trailing commas or syntax errors

After publishing

Check Frequency Tool
Rich results appearing 1 week post-publish Google Search Console → Enhancements
AI engine extraction accuracy Monthly Manual testing in ChatGPT, Perplexity, Gemini
Schema errors Weekly Google Search Console → Enhancements → Errors

Common Mistakes

Mistake Impact Fix
No dateModified AI engines can't assess recency Add to every page, update on every edit
Schema text doesn't match page Google penalty, AI distrust Always sync schema with visible content
Using Microdata instead of JSON-LD Inconsistent parsing Convert all to JSON-LD
Missing author on articles Lower trust signal Add real person with name and URL
FAQPage on non-FAQ content Schema misuse penalty Only use for genuine question-answer pairs
Same schema on every page Missed extraction opportunities Match schema type to page type
Never validating after deploy Silent errors accumulate Monthly validation in Google Rich Results Test
Placing JSON-LD in body Parsing issues Move to <head> section

Pre-Publish Checklist

  • [ ] Primary schema type selected based on page type
  • [ ] Secondary schema type added where applicable
  • [ ] JSON-LD format used (not Microdata or RDFa)
  • [ ] datePublished and dateModified present and accurate
  • [ ] author field includes real person name and URL
  • [ ] Organization schema present site-wide
  • [ ] Schema text exactly matches visible page content
  • [ ] Validated with Google Rich Results Test — no errors
  • [ ] JSON syntax validated — no trailing commas or errors
  • [ ] Schema placed in <head> section
  • [ ] sameAs links to official social profiles present in Organization schema

Anti-Pattern Check

  • Pages with no schema markup at all → Start with FAQPage on your top 5 AEO-priority pages. Takes 30 minutes each and has the highest impact-to-effort ratio
  • dateModified set to publish date and never updated → This tells AI engines the content is stale. Update dateModified every time you edit the page, even for minor changes
  • Schema on 3 pages but not on the other 97 → Inconsistent schema coverage weakens entity signals. Add Organization site-wide first, then roll out page-specific schemas systematically
  • FAQ schema with 25 questions → Too many. Google may ignore the schema entirely. Cap at 12. Move additional Q&A to a separate FAQ page
  • Using schema as an SEO hack without improving content → Schema tells engines what your content IS. If the content is thin, schema just highlights the thinness. Fix content first, then add schema
  • Never testing in AI engines after adding schema → The point of AEO schema is AI extraction. After adding schema, test the page's target query in ChatGPT and Perplexity within 2-4 weeks to verify improved citation
Want agents that use skill files like this?
We customize skill files for your brand voice and methodology, then run content agents against them.
Book a call