Citably.

Guides ·  10-min read  ·  June 3, 2026

Schema for AI:
the 6 entity types answer engines actually consume.

By Jake Pereira· Founder, Citably · Atlanta GA

Plugins ship valid JSON-LD that’s also useless. The difference between schema that AI engines cite and schema that AI engines ignore is the entity graph: six core types, linked together by @id anchors and sameAs references, server-rendered in the head. This guide names the six, gives you a copy-paste graph for B2B SaaS, and shows how to validate it.

01 · Definition

What JSON-LD is for AI.

JSON-LD is a structured-data format built on schema.org vocabulary, embedded in a <script type="application/ld+json"> block. It tells machines what your page IS, not just what it says.

Google has read schema.org markup since 2011. AI answer engines read it differently; they consume the entity graph to know what to cite. When ChatGPT answers “what does Citably charge for an Audit?”, it pulls from the Service schema we ship. If we didn’t ship Service schema, ChatGPT would synthesize from page copy and get it wrong half the time.

“Schema is the entity graph. Without it, you’re a string.”

02 · The core six

The 6 entity types answer engines consume.

These six types do most of the work. There are dozens of valid schema.org types, but for B2B SaaS, these are the ones that materially affect citation count.

  • 01

    Organization

    The brand entity itself

    Anchors every other schema. Without it, AI engines treat your brand as a string of text. Required properties: name, url. High-leverage: @id (the canonical anchor), sameAs (links to LinkedIn, Crunchbase, GitHub, X, which builds the entity graph across the open web), address, founder.

  • 02

    Service

    What you sell, per tier

    One Service schema per pricing tier. Each links provider: { @id } back to the Organization. Includes name, description, areaServed, and an offers block (with price + priceCurrency only if you publish pricing publicly — omit it if pricing is scoped on a call). AI engines use this for "what does [you] charge for an Audit?"-style queries.

  • 03

    SoftwareApplication

    Product-specific markup

    For SaaS, this is the type that makes you discoverable when AI engines answer "best [category] for [use case]". applicationCategory, operatingSystem, offers, aggregateRating (if you have G2/Capterra/TrustRadius reviews to cite). See § 5 below for the SaaS-specific pattern.

  • 04

    FAQPage

    Your FAQ as structured Q&A

    Every FAQ section on your site should also exist as FAQPage JSON-LD. AI engines lift answers from FAQ schema verbatim because the Q&A structure perfectly matches user prompts. If you have a visible FAQ accordion, mirroring it as FAQPage is the single highest-leverage 30-minute fix on most B2B SaaS sites.

  • 05

    BreadcrumbList

    Your site hierarchy

    Site-wide. Maps each URL into its place in your information architecture. AI engines use BreadcrumbList to disambiguate "the Citably pricing page" from "Citably pricing" mentions. Cheap to implement, high to omit.

  • 06

    Person

    Your named founders / authors

    For B2B SaaS where the founder is named (most under-€10M ARR companies), Person schema for the founder builds the personal entity graph. sameAs links to LinkedIn, X, GitHub, Crunchbase. Connects to Organization via worksFor. Makes founder-led queries ("who runs Citably?") resolve correctly.

03 · Connections

The @id graph.

Schemas in isolation are useful. Schemas linked through @idanchors and references are an entity graph. The graph is what AI engines treat as “the brand,” not the individual blocks.

Pattern: every Organization, Person, and WebSite block gets a stable @id at a fragment URL, for example https://www.citably.co/#org, https://www.citably.co/#jake. Then every reference to that entity (Service.provider, Person.worksFor, Article.publisher) uses { "@id": "..." } instead of inlining the whole object.

Connect across the open web with sameAs. Your Organization’s LinkedIn page, Crunchbase profile, GitHub org, X handle. List them all. AI engines walk those edges to build the cross-platform entity graph that drives citations on prompts like “who founded Citably?”

04 · Template

B2B SaaS template.

Copy this into the <head> of your homepage. Server-rendered, not client-rendered. Adjust the values. The @graph wrapper lets you ship all five (or six) schemas in one script tag; most validators prefer this over multiple sibling scripts.

<!-- In <head>, server-rendered. NOT client-rendered. -->
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": ["Organization", "ProfessionalService"],
      "@id": "https://www.citably.co/#org",
      "name": "Citably",
      "url": "https://www.citably.co",
      "logo": "https://www.citably.co/logo.png",
      "email": "hello@citably.co",
      "address": {
        "@type": "PostalAddress",
        "addressLocality": "Atlanta",
        "addressRegion": "GA",
        "addressCountry": "US"
      },
      "founder": { "@id": "https://www.citably.co/#jake" },
      "sameAs": [
        "https://www.linkedin.com/company/citably",
        "https://www.crunchbase.com/organization/citably"
      ]
    },
    {
      "@type": "Person",
      "@id": "https://www.citably.co/#jake",
      "name": "Jake Pereira",
      "jobTitle": "Founder",
      "worksFor": { "@id": "https://www.citably.co/#org" },
      "sameAs": [
        "https://www.linkedin.com/in/jacobcpereira"
      ]
    },
    {
      "@type": "Service",
      "name": "Audit",
      "provider": { "@id": "https://www.citably.co/#org" },
      "areaServed": "Southeast United States",
      "description": "Full AI-citability diagnostic across seven engines.",
      "offers": {
        "@type": "Offer",
        "availability": "https://schema.org/InStock",
        "url": "https://www.citably.co/#offer"
      }
    },
    {
      "@type": "FAQPage",
      "mainEntity": [
        {
          "@type": "Question",
          "name": "What is GEO?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Generative Engine Optimization. Making your site citable by ChatGPT, Claude, Perplexity, Google AI Overviews, Bing Copilot, Gemini, and Grok."
          }
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://www.citably.co"
        }
      ]
    }
  ]
}
</script>

05 · SaaS-specific

SoftwareApplication specifics.

For SaaS (actual product companies, not pure services like Citably) add SoftwareApplication to the @graph. This is the schema that makes you appear in “best [category] tool” queries.

{
  "@type": "SoftwareApplication",
  "name": "YourProduct",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web",
  "offers": {
    "@type": "Offer",
    "price": "49",
    "priceCurrency": "USD",
    "url": "https://yourproduct.com/pricing"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "ratingCount": "218",
    "bestRating": "5"
  }
}

Only include aggregateRatingif you can defend the numbers against a third-party source (G2, Capterra, TrustRadius). Made-up ratings get flagged by Google’s Rich Results validator and ignored by AI engines that cross-reference.

06 · Verification

How to validate.

Three validators. Run all three. Free.

  1. Google Rich Results Test: search.google.com/test/rich-results. Tells you whether your schema qualifies for rich results in Google Search (which feed AI Overviews). Strictest of the three.
  2. Schema.org Validator: validator.schema.org. Parses every schema you ship and flags unknown @types, missing required fields, and graph inconsistencies. Catches things Rich Results misses because Rich Results only checks types it cares about.
  3. Bing Webmaster Markup Validator: bing.com/webmasters → Diagnostic Tools → Markup Validator. Bing Copilot reads Bing-validated schema. Allowlist your domain in Bing Webmaster Tools first.

Each will produce a list of warnings. Treat “recommended” as required. AI engines cite the recommended fields heavily. That’s how they reduce hallucination on quotable facts.

07 · Anti-patterns

Six mistakes people make.

  1. 01

    Generating schema with a plugin and never reading it.

    Most Yoast / RankMath / Schema App / SEOPress output is technically valid but generic. It misses @id anchors, sameAs links, the connections between schemas that make an entity graph. Plugins solve syntax. They don't solve semantics. Hand-write or review what they emit.

  2. 02

    Client-rendering JSON-LD via React or Vue.

    AI crawlers that don't execute JavaScript see no schema if you render it client-side. GPTBot doesn't execute JS. ClaudeBot doesn't. PerplexityBot does "light rendering" that misses anything deferred. Server-render the JSON-LD. In Next.js: emit it in the layout.tsx <head> block.

  3. 03

    Forgetting the @id graph.

    Without @id anchors and references, every schema floats on its own. AI engines treat Organization as one thing and Service as another, even when they refer to the same brand. Connect Service.provider to { "@id": "https://www.citably.co/#org" } and the engine sees one entity with multiple facets.

  4. 04

    Using non-existent @type values.

    There is no schema.org "Attorney" type. There is no "SaaSCompany" type. There is no "Consultancy" type. Validate every @type against the schema.org type list before shipping. Use Person + jobTitle:"Attorney", Organization + alternateName:"SaaS Company", ProfessionalService + serviceType:"Consultancy".

  5. 05

    Stuffing review data into AggregateRating without a verifiable source.

    Google's Rich Results validator and AI engines both check whether your aggregateRating reflects real reviews. Made-up averages get flagged. Real averages from G2, Capterra, TrustRadius get cited. If you don't have third-party reviews yet, ship Service + SoftwareApplication without AggregateRating until you do.

  6. 06

    Never re-validating after a content change.

    You change pricing. The Service schema still emits the old price. The AI engine quotes the old price. Run the schema validator after every content change that touches a fact AI engines might cite. Or have your validator gate be part of the deploy pipeline.

Want yours scored?

Free citability check.
Schema audit included.

We run your homepage through all three validators + score your @id graph and tell you which of the 6 types you’re missing. 24-hour turnaround.

Filed by Jake Pereira · Founder, Citably · Atlanta GA · ET