seo-aeo-schema-generator – Marketing & SEO skill for AI agents
Generates and validates implementation-ready JSON-LD structured data for relevant page types and rich-result eligibility.
Install the seo-aeo-schema-generator skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/seo-aeo-schema-generator-92835.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /seo-aeo-schema-generator – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/seo-aeo-schema-generator-92835.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $seo-aeo-schema-generator – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/seo-aeo-schema-generator-92835.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /seo-aeo-schema-generator – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/seo-aeo-schema-generator-92835.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /seo-aeo-schema-generator – then describe the task you want done.
SKILL.md content
Schema Generator Skill
Description
Activate this skill when the user wants to generate, write,
or validate structured data markup for any page.
Trigger phrases include: "generate schema", "create JSON-LD",
"schema markup for", "structured data for",
"FAQ schema", "product schema", "article schema",
"help Google understand my page", "rich results schema",
"schema generator: [type]", "add schema to [page]".
---
Input Format
{
"page_type": "landing-page",
"schema_types": ["Article"],
"page_data": {
"url": "string — canonical URL of the page",
"title": "string — page title",
"description": "string — page description",
"primary_keyword": "string",
"date_published": "string — ISO format: YYYY-MM-DD",
"date_modified": "string — ISO format: YYYY-MM-DD",
"author_name": "string — for Article schema",
"brand_name": "string",
"brand_url": "string — homepage URL",
"logo_url": "string — absolute URL to brand logo",
"product": {
"name": "string",
"description": "string",
"image_url": "string",
"price": "decimal",
"currency": "string — ISO 4217, e.g. USD, GBP",
"availability": "InStock | OutOfStock | PreOrder",
"sku": "string — optional"
},
"reviews": [
{
"author": "string",
"rating": "integer — 1 to 5",
"review_body": "string",
"date": "string — YYYY-MM-DD"
}
],
"aggregate_rating": {
"rating_value": "decimal — e.g. 4.7",
"review_count": "integer",
"best_rating": "integer — usually 5",
"worst_rating": "integer — usually 1"
},
"faqs": [
{
"question": "string",
"answer": "string"
}
],
"how_to": {
"name": "string — title of the how-to",
"description": "string",
"total_time": "string — ISO 8601 duration, e.g. PT30M",
"steps": [
{
"name": "string — step title",
"text": "string — step instructions"
}
]
},
"breadcrumbs": [
{
"position": "integer — 1, 2, 3...",
"name": "string — label",
"url": "string — absolute URL"
}
]
}
}---
Schema Type Menu
This skill supports the following schema types.
Multiple types can be requested for a single page:
| Schema Type | Best For | Potential Search use (not guaranteed) |
|----------------------|---------------------------------------------|-----------------------------------------|
| Article | Blog posts, pillar pages, news | Article rich result, Top Stories |
| FAQPage | FAQ sections on any page | No current Google FAQ rich result |
| HowTo | Step-by-step guides | Google HowTo rich result retired |
| Product | Product or pricing pages | Price, availability, rating in SERP |
| Review | Individual product or service reviews | Star rating in SERP |
| AggregateRating | Pages with multiple reviews | Star rating with review count |
| BreadcrumbList | Any page with a navigation hierarchy | Breadcrumb path shown in SERP URL |
| Organization | Homepage or About page | Brand knowledge panel signals |
| WebPage | Any page needing basic structured identity | Enhances page understanding by crawlers |
| WebSite | Homepage only | Site identity; searchbox retired |
Use only types supported by visible page content. There is no established guarantee that FAQPage or HowTo causes AI extraction. Google retired HowTo rich results in 2023, the sitelinks searchbox in 2024, and FAQ rich results in May 2026. Schema.org validity and Google feature eligibility are separate.
---
Rich Result Eligibility Rules
Google requires specific fields to be present for each
schema type to qualify for rich results.
Missing required fields affects the corresponding feature, not all page indexing. Check the current Google feature guide; the tables below are content checklists, not a complete eligibility validator.
FAQPage
| Field | Status | Notes |
|----------------|-------------|------------------------------------------|
| @type | Required | Must be FAQPage |
| mainEntity | Required | Array of Question objects |
| name | Required | The question text |
| acceptedAnswer | Required | Answer object containing text |
| Minimum Qs | Content check | At least one real question and answer; no invented two-question rule |
| Answer length | Recommended | Under 300 words per answer |
Article
Google currently lists recommended, rather than required, Article properties: headline, representative image, publication/modification dates and author identity. Include available truthful values; do not invent a publisher logo or date. Top Stories does not require Article markup.
Product
| Field | Status | Notes |
|--------------------|-------------|--------------------------------------|
| name | Required | Product name |
| image | Required | Absolute URL |
| description | Recommended | |
| offers | Conditional | Product snippets need name plus offers, review or aggregateRating; merchant listings have separate rules |
| price | Conditional | Required for the selected priced Offer path |
| priceCurrency | Conditional | Use ISO 4217 for priced offers; verify feature-specific rules |
| availability | Recommended | Schema.org availability URL |
| aggregateRating | Recommended | Unlocks star rating display |
HowTo
| Field | Status | Notes |
|--------------------|-------------|--------------------------------------|
| name | Required | Title of the how-to |
| step | Required | Array of HowToStep objects |
| text | Required | Instructions for each step |
| totalTime | Recommended | ISO 8601 duration |
| image | Recommended | Image per step if available |
BreadcrumbList
| Field | Status | Notes |
|--------------------|-------------|--------------------------------------|
| itemListElement | Required | Array of ListItem objects |
| position | Required | Integer, starts at 1 |
| name | Required | Breadcrumb label |
| item | Required | Absolute URL for each crumb |
---
Output Structure
The skill must always produce output in this exact format:
# Schema Markup Output
**Page:** [page title]
**URL:** [url]
**Schema Types Generated:** [list all types]
**Potential Rich Results (eligibility unverified until tested):** [list eligible rich results]
**Structured Content Types Added:** [list AEO-relevant schema types]
---
## Validation Summary
| Schema Type | Required Fields Complete | Rich Result Eligible | Issues Found |
|-------------------|--------------------------|----------------------|--------------|
| [type] | ✅ / ❌ | ✅ / ❌ | [n or none] |
| [type] | ✅ / ❌ | ✅ / ❌ | [n or none] |
---
## Issues Found
[If no issues: ✅ All schema types passed validation.]
**Issue:** [Specific field missing or incorrect]
**Schema Type:** [type]
**Severity:** Required / Recommended
**Fix:** [Exact instruction — what to add or change]
---
## JSON-LD Output
Place all script blocks inside the `<head>` of your HTML.
Use one `<script>` block per schema type.
### [Schema Type 1]<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "[type]",
[all populated fields from references/ template]
}
</script>
### [Schema Type 2]<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "[type]",
[all populated fields]
}
</script>
---
## Implementation Instructions
1. Copy each `<script>` block above
2. Paste inside the `<head>` tag of your HTML —
after the `<title>` tag, before `</head>`
3. One script block per schema type —
multiple types may also be combined in an @graph with stable @id links
4. Test immediately using Google's Rich Results
Test: https://search.googl… (full content is in the download package)
Related skills
- seo-audit – Diagnose and audit SEO issues affecting crawlability, indexation, rankings, and organic…
- seo-authority-builder – Analyzes content for E-E-A-T signals and suggests improvements to build authority and…
- seo-cannibalization-detector – Analyzes multiple provided pages to identify keyword overlap and potential…
- seo-checklist-generator – SEO Checklist Generator. Use when working with site type and current goal.
- seo-competitor-pages – Generate SEO-optimized competitor comparison and alternatives pages. Covers "X vs Y"…
- seo-dataforseo – Use DataForSEO for live SERPs, keyword metrics, backlinks, competitor analysis, on-page…
- seo-directory-backlinks – Directory and backlink register: platform, domain, target URL, follow attribute…
- seo-drift – Snapshot a site's SEO state and detect ranking, indexation, metadata, canonical, robots…