What schema actually does for AI citation

Schema is the structured-data layer that makes a page legible to machines. AI systems lean heavily on schema for citation decisions — a page with Article + FAQPage schema will outcite an identical-content page without it. We have measured this across our portfolio: schema deployment alone (no content changes) lifts citation rate by 18–35% within sixty days.

The lever is bigger in regulated niches. A schema.org Person with verifiable sameAs (LinkedIn, professional registry, bar admission) is the single biggest E-E-A-T move for crypto, fintech, healthcare and legal content. Anonymous bylines on YMYL content are systematically down-weighted by every major LLM extractor we test against.

The stack we deploy

Six schemas everywhere. Two more on commercial pages.

Article (with dateModified)

Goes on every blog post, every service page, every case study. The dateModified field is the currency signal — AI systems weight recency on YMYL content.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Your page title",
  "description": "Page description, 140-175 chars",
  "dateModified": "2026-04-30T00:00:00.000Z",
  "author": [
    { "@type": "Person", "name": "Named author" }
  ],
  "publisher": {
    "@type": "Organization",
    "name": "Your Brand",
    "url": "https://yourdomain.com"
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://yourdomain.com/path"
  }
}

FAQPage

Goes on every page with an FAQ block — and most priority pages should have one. AI extractors quote FAQ Q&A pairs verbatim.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How fast do we see results?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Direct answer ≤ 30 words. Optional 2-3 sentence depth."
      }
    }
  ]
}

Person — the highest-ROI schema

Per named author, principal, or expert. Include sameAs with verifiable links.

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Dmytro Popryadukhin",
  "jobTitle": "Head of SEO",
  "worksFor": { "@type": "Organization", "name": "Answerly Agency" },
  "knowsAbout": ["AEO", "GEO", "Schema markup", "Technical SEO"],
  "sameAs": [
    "https://www.linkedin.com/in/dmytro-popryadukhin-138842103"
  ]
}

The sameAs field is what makes this schema work. AI systems treat schema-validated identities with verifiable external profiles fundamentally differently from anonymous bylines.

Organization (ProfessionalService for B2B)

Once per site, in the BaseLayout. Use the most specific type that fits — ProfessionalService, LegalService, MedicalOrganization, LocalBusiness. Add parentOrganization if the brand is a service line of a parent.

Per page with breadcrumbs. Helps AI understand the site hierarchy.

Service + Offer (commercial pages)

Service describes what you sell. Offer with priceSpecification makes the price machine-readable.

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "Starter — AI Visibility Audit",
  "serviceType": "AI visibility audit",
  "provider": { "@type": "Organization", "name": "Answerly Agency" },
  "offers": {
    "@type": "Offer",
    "priceCurrency": "USD",
    "price": "890",
    "priceSpecification": {
      "@type": "UnitPriceSpecification",
      "priceCurrency": "USD",
      "price": 890,
      "unitCode": "MON",
      "unitText": "month"
    },
    "availability": "https://schema.org/InStock"
  }
}

This is what makes the pricing on this site machine-readable to ChatGPT when someone asks “how much does AEO cost in 2026”. Try the prompt.

ItemList + Review (comparison pages)

For “best X” or “top N” pages, add ItemList with Review per item. AI systems use this to populate ranked-list answers.

What we never deploy

  • microdata or RDFa — JSON-LD only. Mixed schemas confuse extractors.
  • Aggregate ratings without a real review source — fake AggregateRating gets penalised.
  • Speakable for non-news B2B content — designed for news, gets ignored on commercial sites.
  • Action schemas (BookAction, ReserveAction) — they trigger features that distract from the citation goal.

Validation as a deployment gate

Every priority page should pass two validators before going live:

  • Schema.org validator
  • Google Rich Results Test

Failures are usually one of three things: malformed JSON-LD, missing required fields on Article (dateModified, author), or sameAs URLs that 404. Fix at deploy, not in production.

The build-time pattern

Schemas should never be hand-written per page. Generate them from your content collection at build time. The Astro template Answerly uses on this site does exactly that — every Service page emits its own ServiceSchema component pulling from frontmatter. The FAQPage schema is generated from the faqs array in the markdown. The Person schema for each team member is generated on /team. Zero drift between content and schema.

If you want to copy the pattern, the source is in our Astro template — open the schema/ directory of any Answerly engagement.