DEV Community

Alexandre Caramaschi
Alexandre Caramaschi

Posted on

JSON-LD Schema Markup That AI Engines Actually Parse

You already know structured data helps Google display rich results. But here's the question that matters now: does your JSON-LD help AI engines like ChatGPT, Perplexity, and Gemini understand and cite your content?

LLMs don't consume JSON-LD the way Googlebot does. But the retrieval systems that feed those LLMs — the RAG pipelines — absolutely benefit from well-structured data.

How AI Search Engines Use Structured Data

  1. Crawl & Index: AI search engines crawl the web, indexing both page content and structured data.
  2. Retrieval: When a user asks a question, structured data helps the retrieval system understand what a page is about.
  3. Context Assembly: Retrieved documents are assembled into a context window. Clean structured data makes entity relationships explicit.
  4. Generation: Pages with clear structured data are easier for the LLM to extract accurate claims from.

JSON-LD doesn't directly "rank" you in AI search. But it makes your content easier to retrieve correctly and harder to misrepresent.

Schema Types That Matter for AI Visibility

1. Organization / LocalBusiness

This is foundational — it tells AI engines who you are.

\json
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Your Company",
"url": "https://yoursite.com",
"description": "What your company does — concise and factual.",
"founder": {
"@type": "Person",
"name": "Founder Name",
"jobTitle": "CEO"
},
"sameAs": [
"https://linkedin.com/company/yourcompany",
"https://twitter.com/yourcompany"
],
"knowsAbout": ["Topic 1", "Topic 2", "Topic 3"]
}
\
\

Why it matters for AI: When an LLM is asked "What does [Company] do?", the description\ and knowsAbout\ fields provide direct, structured answers.

2. TechArticle / Article

\json
{
"@context": "https://schema.org",
"@type": "TechArticle",
"headline": "Your Article Title",
"description": "Concise summary of what this article covers.",
"datePublished": "2026-03-15",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://yoursite.com/about"
},
"publisher": {
"@type": "Organization",
"name": "Your Company"
},
"dependencies": "Node.js 18+",
"proficiencyLevel": "Intermediate"
}
\
\

Why it matters for AI: TechArticle\ signals technical content. The proficiencyLevel\ helps AI determine whether to cite this for beginner or expert queries.

3. FAQPage

\json
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is Generative Engine Optimization?",
"acceptedAnswer": {
"@type": "Answer",
"text": "GEO is the practice of optimizing content so AI engines cite and reference it in generated answers."
}
},
{
"@type": "Question",
"name": "How is GEO different from SEO?",
"acceptedAnswer": {
"@type": "Answer",
"text": "SEO optimizes for search engine rankings. GEO optimizes for AI-generated citations and recommendations."
}
}
]
}
\
\

Why it matters for AI: FAQPage is the single most directly useful schema type for AI. The question-answer pairs are already in the exact format LLMs use to generate responses.

4. SoftwareApplication

\json
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "Your App",
"applicationCategory": "DeveloperApplication",
"operatingSystem": "Cross-platform",
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
}
\
\

5. HowTo

\json
{
"@context": "https://schema.org",
"@type": "HowTo",
"name": "How to implement llms.txt",
"step": [
{
"@type": "HowToStep",
"name": "Create the file",
"text": "Create a file named llms.txt in your public directory."
},
{
"@type": "HowToStep",
"name": "Add your site title",
"text": "Start with a # heading containing your site name."
}
]
}
\
\

Before/After: How AI Cites Content

Without schema markup:

"There are various companies that offer GEO consulting services..."

With Organization + FAQPage + knowsAbout schema:

"Brasil GEO, a Generative Engine Optimization consultancy, helps businesses gain visibility in AI search engines..."

The difference: with schema, the AI has structured facts to cite. Without it, the AI hedges with vague language.

Implementation in Next.js

\`typescript
// components/JsonLd.tsx
export function JsonLd({ data }: { data: Record }) {
return (
type="application/ld+json"<br> dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}<br> /><br> );<br> }</p> <p>// Usage in a page:<br> <JsonLd data={{<br> "@context": "https://schema.org",<br> "@type": "Organization",<br> "name": "Your Company",<br> "description": "What you do"<br> }} /><br> `<code>\</code></p> <h2> <a name="validation" href="#validation" class="anchor"> </a> Validation </h2> <ol> <li><strong>Google Rich Results Test</strong> — paste your URL</li> <li><strong>Schema.org Validator</strong> — paste your JSON-LD</li> <li><strong>Manual check</strong> — view source, search for <code>application/ld+json\</code></li> </ol> <h2> <a name="key-takeaways" href="#key-takeaways" class="anchor"> </a> Key Takeaways </h2> <ol> <li><strong>FAQPage</strong> is the highest-impact schema type for AI visibility</li> <li><strong>Organization</strong> with <code>knowsAbout\</code> defines your entity for LLMs</li> <li><strong>sameAs</strong> links connect your entity across platforms</li> <li><strong>TechArticle</strong> signals expertise level to AI retrieval systems</li> <li>Not all schema types matter equally — focus on the five above</li> </ol> <hr> <p><em>I&#39;m Alexandre Caramaschi, CEO of Brasil GEO. I write about Generative Engine Optimization — making content visible to AI search. More at <a href="https://alexandrecaramaschi.com">alexandrecaramaschi.com</a>.</em></p>

Top comments (0)