Editorial guide · Inspeccia

Schema markup for AI search in 2026: technical guide with JSON-LD examples

Schema markup isn't decoration. It's one of the few ways a crawler takes your word for what you are. LLMs use it as a structural signal to parse your site. If your schema is incomplete, malformed or absent, you're handing an advantage to competitors who keep theirs clean.

This guide walks through the six schema types that actually matter for GEO in 2026, with ready-to-paste JSON-LD examples to adapt.

The minimum a site that wants to be cited should have

Four types cover 80% of the benefit: Organization, WebSite, Article and FAQPage. BreadcrumbList and Person add value when relevant. Others (Product, Service, LocalBusiness) have their place depending on the business.

Each is implemented as a separate <script type="application/ld+json"> block, ideally inside the <head>. Keeping blocks separate per type rather than one giant blob is easier to maintain and debug.

Organization: your brand's identity

Goes on every page of the site, ideally loaded from the base layout to avoid inconsistencies. It's the block that tells the model what entity you are.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Inspeccia",
  "url": "https://inspeccia.com/",
  "logo": "https://inspeccia.com/assets/brand/inspeccia-logo-light.png",
  "sameAs": [
    "https://www.linkedin.com/company/inspeccia",
    "https://twitter.com/inspeccia",
    "https://github.com/inspeccia"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "[email protected]",
    "availableLanguage": ["Spanish", "English"]
  }
}

What matters most: sameAs, with links to all your official profiles. It's the list LLMs cross-reference to understand that your brand is a real entity with consistent identity across multiple places.

WebSite: so Google understands the whole domain

Once per site, ideally on the home. Enables the SiteLinks Search Box if your site has an internal search, and gives Google an anchor for the domain.

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Inspeccia",
  "url": "https://inspeccia.com/",
  "inLanguage": "en",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://inspeccia.com/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}

If you don't have internal search, omit potentialAction. The rest still holds.

Article: for every editorial piece

Goes on every blog post, guide, article. The most underrated type: many sites have valuable editorial content without marking it up and lose all the signals the model needs to trust the content.

{
  "@context": "https://schema.org",
  "@type": "Article",
  "mainEntityOfPage": "https://inspeccia.com/en/what-is-geo-ai-seo",
  "headline": "What is GEO: how to get ChatGPT to mention you",
  "description": "GEO is the discipline of getting ChatGPT...",
  "image": "https://inspeccia.com/assets/brand/og.png",
  "inLanguage": "en",
  "datePublished": "2026-05-27",
  "dateModified": "2026-05-27",
  "author": {
    "@type": "Person",
    "name": "Rodrigo Achugar",
    "url": "https://www.linkedin.com/in/rodrigoachugar/"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Inspeccia",
    "url": "https://inspeccia.com/",
    "logo": {
      "@type": "ImageObject",
      "url": "https://inspeccia.com/assets/brand/inspeccia-logo-light.png"
    }
  }
}

Non-negotiables: author, datePublished, dateModified. The author ideally points to a Person with a public LinkedIn. If you sign as an organization you can use "@type": "Organization", but it loses force.

FAQPage: the format most likely to be cited

For AI Overview and LLMs in general, FAQPage is among the most citable formats. But the common trap is inventing questions that sound SEO-y instead of using real questions people actually ask.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Does GEO replace classical SEO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. It complements it. LLMs still use Google SERPs..."
      }
    },
    {
      "@type": "Question",
      "name": "How long does it take to see results?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "On-site levers take 4-8 weeks to move the needle..."
      }
    }
  ]
}

Critical rule: each question and answer in the schema must appear literally on the page. If the question says "Does GEO replace classical SEO?" there must be a <summary> or <h3> with that exact text. Google detects mismatches and, at best, ignores; at worst, flags as spam.

BreadcrumbList: clear hierarchy for the model

Tells the crawler where this page sits within your site. Useful always, critical on sites with multiple levels.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://inspeccia.com/en/"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Guides",
      "item": "https://inspeccia.com/en/guides"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "What is GEO",
      "item": "https://inspeccia.com/en/what-is-geo-ai-seo"
    }
  ]
}

Person: the human author behind the content

If you sign articles with a human author (recommended for EEAT), mark them as Person on a dedicated page (e.g. /team/rodrigo-achugar) and link to it from the author in Article.

{
  "@context": "https://schema.org",
  "@type": "Person",
  "name": "Rodrigo Achugar",
  "url": "https://inspeccia.com/en/team/rodrigo-achugar",
  "jobTitle": "Founder & CTO",
  "worksFor": {
    "@type": "Organization",
    "name": "Inspeccia",
    "url": "https://inspeccia.com/"
  },
  "sameAs": [
    "https://www.linkedin.com/in/rodrigoachugar/",
    "https://twitter.com/rodrigoachugar"
  ]
}

For blog posts with a real author, this is the difference between "the model trusts this content because there's an identifiable human behind it" and "the model doesn't know who wrote this."

The most common mistake we see: schema implemented but never validated. Schema.org Validator (validator.schema.org) and Google's Rich Results Test are free and take two minutes. If you've never run your schema through one of the two, you most likely have errors costing you visibility.

Every Inspeccia analysis generates personalized schema markup for your site — Organization, FAQPage, Article — ready to copy and paste. Start a free analysis and see what schema you're missing.

Common mistakes we see in production

Schema duplicated between head and body. Same Organization repeated twice because someone added it to the global header AND again on a landing. Google treats them as conflicting and sometimes ignores both. Fix: one source of truth.

FAQPage with questions that don't appear on the page. Someone copied a generic FAQ schema from an SEO blog without updating the questions to match the visible content. Google detects mismatch and at best doesn't help; sometimes it hurts.

Article without author or datePublished. The most expensive mistake because it seems minor. Without those fields the schema is still valid but loses most of its value for EEAT signals.

sameAs empty or with a single link. If your Organization only has a sameAs pointing to your own site, you're providing no new signal. The value is in linking to multiple official profiles (LinkedIn, X, GitHub, Crunchbase if applicable, Wikipedia if you have it).

Schema in a different language than the page. Spanish page with FAQPage in English because someone translated the template but not the answers. The model gets confused and, at best, prefers another source.

How to validate and keep schema clean

Three tools, all free:

  • Schema.org Validator (validator.schema.org): tells you whether the JSON-LD is syntactically valid and spec-compatible.
  • Google's Rich Results Test: tells you whether Google would understand your schema and whether it qualifies for rich results.
  • Search Console > Enhancements: shows which schemas Google is detecting across your whole site, with their errors and warnings.

Do a quarterly pass. Without periodic validation, errors accumulate silently every time someone edits the template.

Frequently asked questions

Where should I put the JSON-LD on my page?

The cleanest spot is inside the <head> using <script type="application/ld+json">. It also works at the end of the <body>, but there's less chance the crawler reads it if it never reaches the bottom. One schema per <script> tag — don't stuff Organization and Article into the same block, separate them so debugging is easier when something breaks.

Can having too much schema cause penalties?

Only if the schema is spammy or lies about the content. FAQPage with questions not visible on the page, Review schema with fake reviews, AggregateRating with inflated numbers: that gets penalized. Correct schema matching the content never gets penalized, even with six different types on one page.

Schema on a single page or on all of them?

Organization and WebSite go on every page (ideally in the base layout, just once). Article, FAQPage and BreadcrumbList only where they apply. If your CMS doesn't let you differentiate per page, having them on all pages with consistent values is fine — Google ignores irrelevant schema, it doesn't penalize.

Does schema help with ChatGPT too or only Google?

It helps with both, in different ways. Google uses it explicitly for rich results, AI Overview and as a structural signal for retrieval. ChatGPT, Perplexity and other LLMs benefit more indirectly: when they do live retrieval, pages with correct schema parse better and are easier to cite.

We generate your schema in every analysis

The Inspeccia report includes personalized JSON-LD for your site: Organization, FAQPage and Article filled with your real business data. Ready to paste.