Fade Digital
Home

Services

Get Found by AI Paid Client Acquisition Local Dominance Content & Authority Website & Conversion

Industries

Healthcare Dental & Clinics Legal Real Estate
Results

Company

About Us GEO Insights Knowledge Base Contact Client Portal

Apr 8, 2026

Schema Markup for AI: The JSON-LD Templates That Get You Cited by ChatGPT

Tactical JSON-LD schema templates for Organization, LocalBusiness, FAQPage, and Article markup engineered for AI citation and GEO visibility in ChatGPT, Gemini, and Perplexity.

Schema Markup for AI: The JSON-LD Templates That Get You Cited by ChatGPT

Your website might rank on page one of Google. You might have reviews, backlinks, a blog that gets traffic. And none of it matters if ChatGPT doesn't know who you are.

Here's the uncomfortable reality: when someone asks an AI assistant "who's the best dentist in Toronto" or "top personal injury lawyer near me," the answer doesn't come from your Google ranking. It comes from how well AI systems can parse, identify, and trust your business entity. And the single biggest lever you have to control that? Schema markup.

Not the basic schema your SEO plugin auto-generates. The kind that tells a machine exactly what your business is, what it does, where it operates, who runs it, and why it should be trusted over your competitor three blocks away.

I've spent the last 18 months deploying structured data specifically for AI citation outcomes across healthcare, legal, and service businesses. What follows are the exact JSON-LD templates we use at Fade Digital, along with the reasoning behind why each one moves the needle. If you want the broader strategic context first, start with our ultimate guide to AI SEO and Generative Engine Optimization (GEO) in 2026 — this post is the tactical schema layer that sits underneath that playbook.

Why schema matters more for AI than it ever did for Google

Traditional SEO used schema to win rich snippets. A star rating in search results, a FAQ accordion, maybe a recipe card. Nice to have, not mission critical.

AI search is different. LLMs don't browse your website the way a human does. They don't read your hero section, scroll past your testimonials, or click your "About" page. They process structured data. They read JSON-LD, extract entity relationships, and use those signals to decide whether your business is a credible answer to a user's question.

Content with properly implemented schema shows 30-40% higher AI visibility compared to identical content without it. That's not a marginal gain. That's the difference between being recommended and being invisible.

Google's Knowledge Graph, which feeds both traditional search and Gemini's AI responses, is built on structured data. When you deploy schema correctly, you're not just optimizing for one platform. You're feeding the data layer that multiple AI systems draw from when forming their recommendations. We break down exactly how that data layer behaves in The AI Knowledge Graph Playbook.

The foundation: Organization schema that actually works

Most businesses have some version of Organization schema on their site. It was probably auto-generated by Yoast or RankMath, and it probably looks something like a name, URL, and maybe a logo. That's not enough.

Here's the template we deploy for service businesses. Every property is included for a reason.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Your Business Name",
  "legalName": "Your Business Legal Name Ltd.",
  "url": "https://yourbusiness.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://yourbusiness.com/images/logo.png",
    "width": 600,
    "height": 60
  },
  "description": "One-sentence description of what you do and who you serve. Be specific. Not 'we help businesses grow' but 'Toronto-based optometry clinic specializing in dry eye treatment and LASIK consultations.'",
  "foundingDate": "2016",
  "founder": {
    "@type": "Person",
    "name": "Founder Name",
    "jobTitle": "Founder & CEO",
    "url": "https://yourbusiness.com/about/founder-name"
  },
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street, Unit 100",
    "addressLocality": "Toronto",
    "addressRegion": "ON",
    "postalCode": "M5V 3Y9",
    "addressCountry": "CA"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-416-555-0100",
    "contactType": "customer service",
    "availableLanguage": ["English", "French"]
  },
  "sameAs": [
    "https://www.linkedin.com/company/yourbusiness",
    "https://www.facebook.com/yourbusiness",
    "https://www.instagram.com/yourbusiness",
    "https://www.crunchbase.com/organization/yourbusiness",
    "https://www.bbb.org/ca/on/toronto/profile/yourbusiness",
    "https://www.yelp.ca/biz/yourbusiness-toronto"
  ],
  "areaServed": {
    "@type": "City",
    "name": "Toronto"
  },
  "knowsAbout": [
    "optometry",
    "dry eye treatment",
    "LASIK consultation",
    "contact lens fitting"
  ]
}

The sameAs array is where most businesses leave value on the table. This property tells AI systems "this entity is the same as the entity listed on these other platforms." It's how you connect your website to your LinkedIn, your Crunchbase profile, your BBB listing, and your industry directories into one unified entity that AI can recognize and trust.

Every platform you add to sameAs is a citation node. AI systems cross-reference these to build confidence in your entity. If your Organization schema says you're a Toronto optometry clinic, and your Crunchbase profile says the same, and your BBB listing confirms it, and your LinkedIn matches, the AI has four corroborating signals instead of one. We go deeper on entity reinforcement tactics in Hacking the ChatGPT Knowledge Graph.

The knowsAbout property is newer and underused. It explicitly tells machines what topics your organization has expertise in. Think of it as declaring your subject matter authority in a format AI can read without having to infer it from your content.

LocalBusiness: the schema most service businesses get wrong

If you serve a local area, LocalBusiness (or one of its subtypes like Dentist, LegalService, RealEstateAgent) should replace or supplement your Organization schema. It carries location-specific properties that directly affect how AI handles local recommendations. If you're not sure whether your business currently shows up correctly in local AI answers, ChatGPT's local business errors is required reading before you ship any LocalBusiness schema.

{
  "@context": "https://schema.org",
  "@type": "Dentist",
  "name": "Smile Dental Toronto",
  "image": "https://smiledental.ca/images/office-exterior.jpg",
  "url": "https://smiledental.ca",
  "telephone": "+1-416-555-0200",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "456 Queen Street West",
    "addressLocality": "Toronto",
    "addressRegion": "ON",
    "postalCode": "M5V 2A8",
    "addressCountry": "CA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 43.6485,
    "longitude": -79.4015
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
      "opens": "08:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Friday",
      "opens": "08:00",
      "closes": "14:00"
    }
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "312"
  },
  "hasOfferCatalog": {
    "@type": "OfferCatalog",
    "name": "Dental Services",
    "itemListElement": [
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Teeth Whitening",
          "description": "Professional in-office teeth whitening using Zoom technology. 60-minute appointment."
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Dental Implants",
          "description": "Full dental implant placement and restoration. Includes consultation, surgery, and crown."
        }
      }
    ]
  },
  "sameAs": [
    "https://www.google.com/maps/place/?q=place_id:YOUR_PLACE_ID",
    "https://www.yelp.ca/biz/smile-dental-toronto",
    "https://www.ratemds.com/doctor-ratings/smile-dental-toronto"
  ]
}

Two things to note here. First, the hasOfferCatalog is how you tell AI exactly what services you provide without forcing it to crawl and interpret your service pages. When someone asks ChatGPT "who does dental implants in Toronto," the AI that can pull structured service data has a much easier time including you in the answer than one that has to infer your services from a paragraph of marketing copy.

Second, include your Google Maps Place ID in sameAs. It connects your schema entity to your Google Business Profile entity, which connects to the Google Knowledge Graph, which feeds Gemini. It's a direct pipeline.

FAQPage schema: feed the exact questions buyers ask AI

FAQ schema used to be about winning SERP real estate. Now it's about something more valuable: giving AI systems pre-formatted question-and-answer pairs they can extract and cite directly.

The key is to stop writing FAQ questions the way a marketer would and start writing them the way a buyer types into ChatGPT.

Nobody asks "What differentiates our approach?" They ask "what should I look for in a personal injury lawyer in Toronto" or "how much does teeth whitening cost." For more on how to mine and structure these prompts, see Keyword patterns for LLMs.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does teeth whitening cost in Toronto?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Professional in-office teeth whitening in Toronto typically costs between $300 and $700 per session. At Smile Dental Toronto, our Zoom whitening treatment is $450 for a 60-minute session. Take-home whitening kits range from $150 to $300. Results last 6 to 12 months depending on diet and oral hygiene habits."
      }
    },
    {
      "@type": "Question",
      "name": "Does dental insurance cover teeth whitening in Ontario?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most dental insurance plans in Ontario do not cover teeth whitening because it is classified as a cosmetic procedure. Some plans offer partial coverage under cosmetic dentistry riders. Check with your insurance provider directly. Smile Dental Toronto offers direct billing for all covered procedures and flexible payment plans for cosmetic treatments."
      }
    }
  ]
}

Write answers in the 40-60 word range per answer block when possible. That's the extraction sweet spot. AI systems prefer passages that are self-contained, specific, and don't require surrounding context to make sense.

Include real numbers. Dollar amounts, timeframes, percentages. AI systems are more likely to cite a source that says "$450 for a 60-minute session" than one that says "competitive pricing." Specificity is a trust signal.

Article schema: making your blog content citable

Every blog post you publish should carry Article or BlogPosting schema. The author and publisher properties are where the AI citation magic happens, because this is how you connect your content to a verified human entity. If you're still nailing down the fundamentals, the basics of LLM SEO covers the prerequisites that make Article schema actually pay off.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Schema Markup for AI: The JSON-LD Templates That Get You Cited by ChatGPT",
  "description": "Tactical JSON-LD schema templates for Organization, LocalBusiness, FAQPage, and Article markup optimized for AI citation and GEO visibility.",
  "image": "https://fadedigital.ca/images/blog/AI-schema-markup-and-code-snippet.webp",
  "datePublished": "2026-04-08",
  "dateModified": "2026-04-08",
  "author": {
    "@type": "Person",
    "name": "Lorne Fade",
    "url": "https://fadedigital.ca/about/lorne-fade",
    "jobTitle": "Founder & CEO",
    "worksFor": {
      "@type": "Organization",
      "name": "Fade Digital",
      "url": "https://fadedigital.ca"
    },
    "sameAs": [
      "https://www.linkedin.com/in/lornefade",
      "https://x.com/fadedigitalto"
    ]
  },
  "publisher": {
    "@type": "Organization",
    "name": "Fade Digital",
    "url": "https://fadedigital.ca",
    "logo": {
      "@type": "ImageObject",
      "url": "https://fadedigital.ca/images/fade-digital-logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://fadedigital.ca/blog/schema-markup-for-ai-json-ld-templates.html"
  }
}

The author's sameAs links are doing the same work for a person that Organization sameAs does for a company. They're telling AI systems "this author entity is the same person as this LinkedIn profile and this Twitter account." That cross-reference builds the author's entity strength, which influences how much weight AI gives to content they publish.

If you don't have a dedicated author page on your site yet, build one. A simple page at /about/your-name with your bio, credentials, published work, and social links gives AI systems a canonical URL to associate with your entity. Then reference that URL in every Article schema you publish.

Connecting it all: the @graph approach

On your homepage and key landing pages, you'll want multiple schema types working together. Instead of separate script tags, use the @graph pattern to declare everything in one block. This explicitly tells AI systems that all these entities are related and part of the same page context.

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://yourbusiness.com/#organization",
      "name": "Your Business Name",
      "url": "https://yourbusiness.com",
      "sameAs": ["..."]
    },
    {
      "@type": "WebSite",
      "@id": "https://yourbusiness.com/#website",
      "url": "https://yourbusiness.com",
      "name": "Your Business Name",
      "publisher": { "@id": "https://yourbusiness.com/#organization" }
    },
    {
      "@type": "WebPage",
      "@id": "https://yourbusiness.com/services/",
      "url": "https://yourbusiness.com/services/",
      "name": "Our Services",
      "isPartOf": { "@id": "https://yourbusiness.com/#website" },
      "about": { "@id": "https://yourbusiness.com/#organization" }
    }
  ]
}

The @id references are the key. They create internal links between your schema entities, so when AI processes your structured data, it understands that the WebPage is part of the WebSite, which is published by the Organization. That relational graph is what feeds Knowledge Graph entrenchment. This is exactly the kind of structural work we do inside our GEO architecture engagements.

The deployment checklist

After you implement schema, run through this before you ship:

Validate the markup. Paste your JSON-LD into Google's Rich Results Test (search.google.com/test/rich-results) and the Schema.org Validator (validator.schema.org). Fix every error. Warnings are worth reviewing but not always worth fixing.

Check that AI bots can access your pages. Your robots.txt needs to allow GPTBot, ChatGPT-User, PerplexityBot, ClaudeBot, and Google-Extended. If your robots.txt blocks any of these, the schema is invisible to that platform.

Verify entity consistency. Your business name, address, phone number, and description should be identical across your schema, your Google Business Profile, your directory listings, and your social profiles. Inconsistency creates entity confusion, and confused AI systems don't cite you.

Cross-reference your sameAs URLs. Visit each URL in your sameAs array. Make sure the profiles exist, are active, and contain consistent information. A broken link in sameAs is worse than not including it.

Test with real queries. After deployment, ask ChatGPT, Gemini, and Perplexity the questions your buyers ask. Note whether your business appears. Schema changes don't produce overnight results in AI systems, but you should see movement within 60-90 days as models refresh their web index.

What most businesses skip (and shouldn't)

Two things separate schema that works from schema that just validates.

First: the knowsAbout and hasOfferCatalog properties. These are explicit declarations of expertise and service offerings that most schema generators skip entirely. They're not required for validation, but they're read by AI systems looking for entity-topic associations. If you do nothing else beyond what your SEO plugin generates, add these two properties.

Second: author entity schema on every piece of content you publish. Not just "author": "Company Name". A full Person entity with jobTitle, worksFor, sameAs, and a URL pointing to a dedicated author page. AI systems are increasingly weighting content based on who wrote it, not just where it was published. A well-connected author entity is one of the strongest AI trust signals available, and it costs nothing to implement.


Get a schema audit for your business

Want to know exactly what schema your site has today, what's missing, and what's actively hurting your AI visibility? We run a full structured data audit as part of every AI Visibility Assessment.

Get your free AI audit →


Lorne Fade is the Founder & CEO of Fade Digital, a Toronto-based agency specializing in Generative Engine Optimization (GEO). He has spent 10+ years in search marketing and works with healthcare, legal, and service businesses to build AI visibility systems that drive predictable client acquisition.

Schema MarkupJSON-LDAI SEOGEOStructured DataChatGPTKnowledge Graph

Free · No credit card · Results in 24 hrs

Is AI recommending your competitors instead of you?

Get your AI Visibility Score across ChatGPT, Gemini, and Claude — free scan, instant results, no fluff. See exactly where you're invisible and what to fix first.

Back to Intelligence Hub