// execute
Structured Data for AI Search
Use when the user wants to add, fix, or validate structured data (JSON-LD, schema.org) so search engines and AI answer engines read a page correctly: which types belong on which page, which properties Google requires, and whether the markup matches what the page shows. Also use when the user mentions schema markup, JSON-LD, structured data, rich results, SoftwareApplication, Organization schema, FAQPage, HowTo, Article or BreadcrumbList markup, or "is our schema right". Produces a page-by-page type map, a sourced check of each page's JSON-LD, and the exact fixes.
npx skills add sarojkjha/aaj-marketing-skills --skill structured-data-for-ai-searchClaude Code
/plugin marketplace add sarojkjha/aaj-marketing-skills/plugin install aaj-marketing-skills@aajOpenAI Codex
codex plugin marketplace add sarojkjha/aaj-marketing-skillscodex plugin add aaj-marketing-skills@aajClaude or ChatGPT — no install
Add this as a custom connector:
https://aaj-engines-mcp.sarojkjha10.workers.dev/mcp// when to use it
Use when the user wants to add, fix, or validate structured data (JSON-LD, schema.org) so search engines and AI answer engines read a page correctly: which types belong on which page, which properties Google requires, and whether the markup matches what the page shows. Also use when the user mentions schema markup, JSON-LD, structured data, rich results, SoftwareApplication, Organization schema, FAQPage, HowTo, Article or BreadcrumbList markup, or "is our schema right". Produces a page-by-page type map, a sourced check of each page's JSON-LD, and the exact fixes.
// what you give
The site's key page types, and for each page its JSON-LD (or full HTML) plus the visible text
// what you get
A type-per-page map, a per-page check (fix, eligibility, improve, with the source for each), corrected JSON-LD, and a re-validation plan
Engine spec
// decision it supports
Is the JSON-LD on this page valid, true to what the page shows, and complete for its type?
// inputs
The site's key page types, and for each page its JSON-LD (or full HTML) plus the visible text
// output
A type-per-page map, a per-page check (fix, eligibility, improve, with the source for each), corrected JSON-LD, and a re-validation plan
// acts or analyzes
Analyzes onlyMakes no network calls, writes no files and changes nothing in your tools.
// where your information goes
| How you run it | Where your inputs go |
|---|---|
| Skill installed in your agent, or the local MCP server | The engine runs on your machine and AAJ receives nothing. Your AI agent still sends what you give it to its model provider (Anthropic, OpenAI and so on), under your own account's terms. |
| Hosted MCP server | Your agent's model provider, as above, plus AAJ's server on Cloudflare, which receives the engine inputs over HTTPS, runs them in memory and keeps no copy. Cloudflare keeps error logs (no inputs) for up to 7 days. |
No engine needs customer names, emails or other personal data; leave them out.
// limitations
- It compares markup with what readers see only when you pass html or visibleText. Without them the verdict is "Valid markup, not checked against the page", never "Ready to publish".
- It checks the markup you paste, not what a crawler receives. JSON-LD added by client-side JavaScript may never reach a crawler.
- A clean check does not promise a rich result or any effect on AI answers. Google says no special schema is needed for its AI features.
- Its rules follow Google and schema.org pages opened on 2026-10-10. Google edits those pages; re-check the source each finding cites.
// review before acting
// setup
npx skills add sarojkjha/aaj-marketing-skills --skill structured-data-for-ai-searchhttps://aaj-engines-mcp.sarojkjha10.workers.dev/mcpAgents listed: Claude Code, Cursor, OpenAI Codex, Windsurf, Cline. Tested and recorded: Claude Code.
Structured Data for AI Search
Give every key page JSON-LD that says exactly what the page is and nothing the page does not show, then prove it with a sourced check.
When to use
The user is adding schema to a site, fixing markup a validator complained about, deciding which types a SaaS, AI, EdTech or MedTech site needs, or asking whether schema will help them appear in AI answers. For a whole-page SEO/GEO/AEO score, use seo-geo-aeo-audit; for rewriting content to be cited, use geo-content-optimization. This skill is the markup itself.
Before you start
- Read the brand/product context first. Pull the product name, pricing model, and site map from
.agents/product-marketing.md. If none exists, ask for the key URLs. - Gather inputs: for each page to check, its HTML (best: JSON-LD and visible text in one) or its JSON-LD plus the page text.
- Check what crawlers receive. If the site renders client-side, JSON-LD added by JavaScript may not be in the HTML a crawler fetches. Run the fetch test in
seo-geo-aeo-auditfirst; markup nobody receives fixes nothing. - Set expectations honestly. Google says there is "no special schema.org structured data" needed for AI Overviews or AI Mode, and lists structured data matching the visible text among the fundamentals (Google, AI features and your website). Treat schema as an accurate description of the page, not a lever that wins AI citations. Do not promise an effect on any AI engine.
Method
Diagnose what each page is, then design one primary type per page plus the shared types (Organization once, BreadcrumbList on inner pages), and execute by checking every block against two sources: Google Search Central's documentation for the properties Google requires and recommends, and schema.org for the types Google no longer documents. The rule that overrides all others is Google's general guideline: structured data "must be a true representation of the page content" and you should not "mark up content that is not visible to readers of the page". A rating, price, question or step in the markup that the page does not show is the most common and most damaging error, so the check compares markup against the visible text whenever it is supplied.
Which type on which page
| Page | Type | What Google documents (opened 2026-10-10) |
|---|---|---|
| Home page, or one About page | Organization | No required properties; recommends name, url, logo, sameAs, description and more. Place it on the home page or a single page about the organization, not every page. |
| SaaS or AI product / pricing page | SoftwareApplication (or WebApplication) | Required for the rich result: name, offers.price (0 if free), and one of aggregateRating or review. Recommended: applicationCategory, operatingSystem. |
| Physical product (e.g. a device) | Product | Required: name, and one of review, aggregateRating or offers. Offer needs price. |
| Blog post, guide, research | Article / BlogPosting | No required properties; recommends author (Person or Organization, with name and url), datePublished, dateModified, headline, image. |
| Visible FAQ section | FAQPage | Google stopped showing FAQ rich results on 7 May 2026 and removed the docs on 15 June 2026. Valid schema.org; use only where it mirrors a visible FAQ. |
| Step-by-step instructions | HowTo | Google removed How-to docs on 14 September 2023; the rich result is not shown on desktop or mobile. Valid schema.org. |
| Any page below the home page | BreadcrumbList | At least two ListItems; each needs name and position; item (URL) on all but the last. Mirror the visible trail. |
Ratings belong only where real ratings are shown on the page. Never add an aggregateRating to qualify for a rich result. Google also notes that reviews an organization controls about itself, on pages using Organization markup, are not eligible for star review snippets.
Workflow
- List the page types on the site and assign each a primary type from the table.
- Collect each page's HTML (or JSON-LD plus visible text).
- Run the checker per page with its
pageType. - Fix in order:
fix(broken markup, or markup the page does not show), theneligibility(Google's rich-result requirements, only where the page can truthfully meet them), thenimprove(recommended properties). - Write the corrected JSON-LD using only facts visible on the page, and re-run the checker until no
fixremains. - Re-validate after deploy with Google's Rich Results Test on the live URL, and confirm the JSON-LD is in the server response.
- Set an upkeep rule: when a price, rating, author or date changes on the page, the markup changes in the same release.
Run the tool
node resources/schema-check.js --demo
node resources/schema-check.js '{"pageType":"software","html":"<!doctype html>..."}'
node resources/schema-check.js --help
Input a page type and a JSON-LD blob, a JSON string, or HTML containing <script type="application/ld+json">. Add html or visibleText to compare markup with what readers see. The engine parses every block and @graph, checks @context and @type, checks every node of a known type (and that the page's own type is present), and returns findings at four levels (fix, eligibility, improve, info), each with the source URL it relies on and a verdict: Fix before publishing, Valid, not rich-result eligible, or Ready to publish.
Reference
Sources opened on 2026-10-10 (re-check them; Google edits these pages):
- Google, General structured data guidelines: https://developers.google.com/search/docs/appearance/structured-data/sd-policies
- Google, Software app (SoftwareApplication): https://developers.google.com/search/docs/appearance/structured-data/software-app
- Google, Product snippet: https://developers.google.com/search/docs/appearance/structured-data/product-snippet
- Google, Review snippet: https://developers.google.com/search/docs/appearance/structured-data/review-snippet
- Google, Organization: https://developers.google.com/search/docs/appearance/structured-data/organization
- Google, Article: https://developers.google.com/search/docs/appearance/structured-data/article
- Google, Breadcrumb: https://developers.google.com/search/docs/appearance/structured-data/breadcrumb
- Google, AI features and your website: https://developers.google.com/search/docs/appearance/ai-features
- Google, Search documentation updates (FAQ and How-to retirement): https://developers.google.com/search/updates
- schema.org: SoftwareApplication, Organization, Article, HowTo, HowToStep, WebPage, BreadcrumbList, acceptedAnswer (https://schema.org/)
Present the result
- Type map: each page, its primary type, and the shared types.
- Per page: the verdict, then fixes in order (fix, eligibility, improve), each with its source.
- Corrected JSON-LD for each page, built only from visible facts.
- What not to expect: no guaranteed rich result, and no promised effect on AI answers.
Guardrails & common mistakes
- Visible or nothing. Never mark up a price, rating, question or step the page does not show.
- No invented ratings. A missing rating costs a rich result; a fabricated one misrepresents the page.
- FAQPage and HowTo are descriptions now, not Google features. Keep them only where they mirror visible content.
- One Organization, consistent everywhere. The same name, url and logo on every page that references it.
- Dates are ISO 8601, dateModified is never earlier than datePublished, and neither is in the future.
- Rendered, not just written. Markup injected by client-side JavaScript may never reach a crawler.
- Never claim schema wins AI citations. Google says none is needed for its AI features; other engines do not document a position this skill can cite.
Related AAJ resources
- Crawl-to-Citation Scorer: https://aajconsult.com/tools/seo-geo-readiness-scorer
- GEO & AEO Playbook: https://aajconsult.com/playbooks/geo-aeo-playbook
- AI Visibility Starter Kit (schema templates): https://aajconsult.com/templates/ai-visibility-starter-kit
- What Is GEO? (AAJ post): https://aajconsult.com/blog/what-is-geo-ai-citations
Related skills
seo-geo-aeo-audit · geo-content-optimization · agent-readiness-audit · aaj-programmatic-seo · comparison-pages
// faq
// install
npx skills add sarojkjha/aaj-marketing-skills --skill structured-data-for-ai-search// worked example
Get the worked example for Structured Data for AI Search
One email. The filled-in config, the output, and how to read it.
// sprint
AI Visibility Sprint — $3,500, 10 business days
This skill is one of the engines behind the AI Visibility Sprint — $3,500, ten business days.
SEO/GEO/AEO audit, citation tracking, and agent readiness — scored, with the fixes ranked.
// human in the loop
Need a human in the loop?
AAJ builds the strategies, tools, and playbooks these skills are made of — with engagements for growth-stage and enterprise teams.
