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
- Crawl & Index: AI search engines crawl the web, indexing both page content and structured data.
- Retrieval: When a user asks a question, structured data helps the retrieval system understand what a page is about.
- Context Assembly: Retrieved documents are assembled into a context window. Clean structured data makes entity relationships explicit.
- 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'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)