| name | aeo-schema |
| description | Analyze web pages and generate structured data (JSON-LD) optimized for AI citation. Fetches a page, analyzes its content structure, checks existing schema markup, and generates optimized JSON-LD that helps Gemini 3 Flash and other AI models identify and cite the content. Includes templates for Article, FAQ, HowTo, Product, LocalBusiness, and BreadcrumbList. SKILL.md-only skill โ no script, the agent follows the methodology. Use when a user wants to: add or improve structured data on a page, optimize schema for AI Overviews, generate JSON-LD for their content, audit existing schema markup, or implement an aeo-optimize recommendation that calls for new structured data.
|
AEO Schema
Source: github.com/psyduckler/aeo-skills
Part of: AEO Skills Suite (v2 Core)
Previously: aeo-schema-optimizer โ renamed in v2 for namespace consistency
Generate structured data (JSON-LD) optimized for AI citation. Help Gemini 3 Flash and other AI models find, understand, and cite your content.
Why Structured Data Matters for AEO
When Gemini 3 Flash generates AI Overviews, it needs to quickly identify:
- What type of content is on the page (article, FAQ, how-to guide, product)
- What questions it answers
- What entities it covers (people, products, organizations)
- How authoritative the source is (author, publication date, organization)
Schema markup explicitly declares all of this. Pages with proper schema give AI models a structured signal layer on top of the content โ making them easier to parse, trust, and cite.
Requirements
web_fetch โ to analyze the target page
- LLM reasoning โ to determine optimal schema types and generate JSON-LD
- Templates in
references/schema-templates.md
No API keys required.
Input
- URL (required) โ the page to optimize
- Target prompt (optional) โ the AI prompt this page should win citations for
Workflow
Step 1: Fetch and Analyze the Page
Use web_fetch on the target URL. Extract:
- Page title and meta description
- Content structure โ headings (H1-H3), sections, lists
- Content type โ determine what kind of page this is:
- Article/Blog โ long-form content, guides, analysis
- FAQ โ question-and-answer format
- How-To โ step-by-step instructions
- Product โ product page with specs, pricing, reviews
- Local Business โ location with address, hours, contact
- Landing Page โ mixed content, multiple purposes
- Key entities โ people (authors), organizations, products, tools mentioned
- Existing schema โ check for any
<script type="application/ld+json"> blocks
Step 2: Audit Existing Schema
If schema already exists:
- Is it valid JSON-LD?
- Does it match the page content type?
- Is it complete (all recommended properties filled)?
- Are there missing schema types that would help? (e.g., article page without FAQ schema for Q&A sections)
- Are dates current (datePublished, dateModified)?
Output audit findings: what's present, what's missing, what's incorrect.
Step 3: Determine Optimal Schema Strategy
Based on content type and structure, recommend which schema types to implement:
| Content Type | Primary Schema | Additional Schema |
|---|
| Guide/Article | Article | FAQ (if Q&A sections), BreadcrumbList, HowTo (if steps) |
| FAQ Page | FAQPage | Article, BreadcrumbList |
| Tutorial/How-To | HowTo | Article, FAQ (for troubleshooting), BreadcrumbList |
| Product Page | Product | FAQ, BreadcrumbList, AggregateRating |
| Local Business | LocalBusiness | FAQ, BreadcrumbList |
| Comparison | Article | FAQ, ItemList, BreadcrumbList |
| Listicle | Article + ItemList | BreadcrumbList |
Key principle: Layer multiple schema types. An article that includes a FAQ section should have both Article AND FAQPage schema. This gives AI models multiple structured entry points.
Step 4: Generate Optimized JSON-LD
Use templates from references/schema-templates.md and populate with actual page data.
Critical properties for AI citation:
For Article:
headline โ match the H1, keep under 110 chars
description โ the meta description or a 150-char summary
author โ full name + credentials URL (sameAs)
datePublished + dateModified โ ISO 8601, must be current
publisher โ organization with logo
mainEntityOfPage โ canonical URL
about โ what the article covers (link to entities)
For FAQPage:
- Extract every Q&A pair from the page
- Each
Question gets the exact heading text
- Each
acceptedAnswer gets the first 1-2 sentences (the direct answer)
- Limit to 10 most important Q&As
For HowTo:
name โ the process being described
step โ each step with name and text
totalTime โ ISO 8601 duration if mentioned
estimatedCost โ if applicable
supply / tool โ materials or tools needed
For Product:
name, description, brand
offers โ pricing, availability
aggregateRating โ if reviews exist
review โ individual reviews
For LocalBusiness:
name, address, telephone
openingHoursSpecification
geo โ latitude/longitude
priceRange
Step 5: Validate and Deliver
Before delivering the JSON-LD:
- Validate JSON syntax โ ensure it parses correctly
- Check required properties โ every schema type has required fields
- Verify entity consistency โ author, publisher, dates match across schema blocks
- Test nested structures โ FAQ questions, HowTo steps are properly structured
- Check URL references โ mainEntityOfPage, sameAs, url fields are correct
Output:
- Complete JSON-LD block(s) ready to paste into
<head>
- Implementation notes (where to place, what to update when content changes)
- If existing schema was found: diff showing what changed
Step 6: Verification Guidance
After implementation, recommend:
Schema Types Gemini Prioritizes
Based on observed AI Overview behavior, these schema signals matter most:
- FAQPage โ directly provides Q&A pairs the AI can cite; highest impact for question prompts
- Article with dateModified โ freshness signal; AI models prefer recently-updated content
- HowTo โ structured steps are easy for AI to extract and present
- Author with credentials โ expertise signal (E-E-A-T); helps for YMYL topics
- BreadcrumbList โ helps AI understand site structure and topic hierarchy
- Product with reviews โ for commercial queries; aggregateRating is a trust signal
Tips
- Don't over-schema. Only add schema types that match actual page content. Misleading schema can trigger penalties.
- FAQ is the highest-ROI schema for AEO. If your page answers questions (even implicitly), extract those Q&As into FAQPage schema.
- Keep dateModified current. Every time you update content, update the dateModified. Stale dates signal stale content.
- Author schema matters for YMYL. Health, finance, legal content benefits enormously from detailed author schema with credentials.
- Pair with content optimization. Schema helps AI find your answers; the answers themselves still need to be clear, concise, and extractable. Use
aeo-content-free for that.