agentleFS
semrushsemrush/skills/schema-markup/SKILL.md

schema-markup

Skill5 starsChanged 48 days agoApache-2.0View on GitHub

Audit the structured data a page actually declares, decide which entities belong on it, and draft validated JSON-LD from verified facts only, separating Schema.org validity from Google rich-result eligibility. Use when the user asks about schema markup, structured data, JSON-LD, or whether a page is eligible for rich results.

We split this skill into the rules it gives an agent

31 rules. 0 are common, 19 are distinctive, and 12 are very specific to this project.

  • 0

    Common

    Most of the 54 edited versions we read keep these.

  • 19

    Distinctive

    This author's own choices. Worth a look.

  • 12

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep the evidence source separate from the rule classification.

    line 19
  2. Distinctive:

    Semrush-supported guidance: Treat schema as machine-readable context and possible rich-result eligibility, not a direct ranking factor.

    line 23
  3. Distinctive:

    Semrush-supported guidance: Treat AI-visibility impact as uncertain.

    line 24
  4. Distinctive:

    Current platform requirement: Never invent ratings, review counts, prices, availability, dates, authors, addresses, logos, or other entity …

    line 26
  5. Distinctive:

    Workflow safety rule: Never edit or deploy production code unless the user separately authorizes implementation.

    line 27
  6. Distinctive:

    If the page type or factual entity data is unclear, audit first.

    line 39
  7. Distinctive:

    Follow discovery → schema → execution.

    line 43
  8. Very specific:

    Call projects to discover list_projects.

    line 47
  9. Very specific:

    Call get_report_schema for list_projects, then execute_report to find an existing project for the domain.

    line 48
  10. Very specific:

    Call site_audit to confirm the reports currently exposed.

    line 49
  11. Very specific:

    Use meta_issues to discover the issue catalog and its IDs and descriptions.

    line 51
  12. Very specific:

    Treat issue_details rows as occurrence evidence.

    line 63
  13. Distinctive:

    Configurable default: Use the strongest available evidence in this order and label it.

    line 68
  14. Very specific:

    Use on the canonical homepage or organization-defining page.

    line 93
  15. Very specific:

    Use for visible editorial content.

    line 99
  16. Very specific:

    Use for a specific purchasable product.

    line 105
  17. Very specific:

    Use when a video is a primary, watchable part of the page.

    line 117
  18. Very specific:

    Use for a physical business location.

    line 123
  19. Distinctive:

    Do not prioritize FAQPage or HowTo generation in v1.

    line 133
  20. Distinctive:

    Industry workflow heuristic: Use this sequence to keep detection, type selection, implementation review, drafting, and validation separate.

    line 137
  21. Distinctive:

    Keep page evidence separate from Semrush crawl evidence.

    line 147
  22. Distinctive:

    Use the supported v1 guidance above before generating one of those types.

    line 155
  23. Distinctive:

    Current platform recommendation: Prefer JSON-LD for new code when the site's setup allows it.

    line 175
  24. Very specific:

    Use one coherent @graph when multiple entities need explicit relationships.

    line 178
  25. Very specific:

    Use stable absolute @id values, usually canonical URL fragments such as #organization or #article.

    line 179
  26. Distinctive:

    If required facts are missing, return a missing-information list instead of deployment-ready code.

    line 181
  27. Distinctive:

    If a template is still useful, mark every placeholder clearly and label the block non-deployable.

    line 182
  28. Distinctive:

    Run Google's Rich Results Test for Google-supported features.

    line 191
  29. Distinctive:

    Do not treat a Schema.org-valid result as proof of Google rich-result eligibility.

    line 194
  30. Distinctive:

    Corrected JSON-LD: only when sufficient verified facts exist.

    line 209
  31. Distinctive:

    Keep these evidence classes visibly separate:

    line 213

“Common” is measured: kept by at least 6 in 10 of the 54 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Schema markup

Audit what a page actually declares, decide which entities belong there, and produce validated JSON-LD only from verified facts. Never promise rankings, rich results, CTR gains, or AI citations.

Rule provenance

Interpret material rules using these labels:

  • Semrush-supported guidance: Methodology stated in a cited Semrush article. Preserve its scenario and caveats.
  • Current platform requirement: A current Google Search Central or Schema.org requirement. This overrides stale editorial examples.
  • Industry implementation heuristic: A defensible implementation practice, not a search-engine requirement or guaranteed outcome.
  • Configurable default: A workflow or output choice that can change with the user's system and needs.

Keep the evidence source separate from the rule classification. Semrush MCP data, rendered-page evidence, validator output, user-provided facts, and model judgment must remain distinguishable in every result.

Non-negotiable guardrails

  • Semrush-supported guidance: Treat schema as machine-readable context and possible rich-result eligibility, not a direct ranking factor. State that valid markup does not guarantee a rich result.
  • Semrush-supported guidance: Treat AI-visibility impact as uncertain. Do not claim that schema directly improves visibility in ChatGPT, Claude, Gemini, or other AI systems.
  • Current platform requirement: Require markup to match visible page content and current facts. Use current Google Search Central requirements and Schema.org vocabulary when an editorial example is stale.
  • Current platform requirement: Never invent ratings, review counts, prices, availability, dates, authors, addresses, logos, or other entity facts.
  • Workflow safety rule: Never edit or deploy production code unless the user separately authorizes implementation.

Before you start

Collect these inputs once:

  • Target: exact URL, supplied markup, or domain with an existing Semrush project.
  • Mode: audit, recommend, draft, validate, or monitor.
  • Page purpose: homepage, article, product, review, video, local business, or another clearly identified type.
  • Evidence access: rendered browser, raw HTML, Google validation output, Semrush MCP, Site Audit export, or user-provided facts.
  • Implementation context: CMS or framework only when the user wants placement guidance.

If the page type or factual entity data is unclear, audit first. Do not generate deployment-ready code from guesses.

Use the official Semrush MCP

Follow discovery → schema → execution. Do not substitute product-UI names for public MCP report identifiers.

Project-backed Site Audit flow

  1. Call projects to discover list_projects.
  2. Call get_report_schema for list_projects, then execute_report to find an existing project for the domain.
  3. Call site_audit to confirm the reports currently exposed.
  4. Get the current snapshots schema, pass the project identifier using its required parameter (currently id, not project_id), then select the latest completed audit and record its date.
  5. Use meta_issues to discover the issue catalog and its IDs and descriptions. Treat this as issue-definition metadata, not evidence that any listed issue occurred in the selected snapshot.
  6. Select only issues whose returned descriptions concern markup or structured data.
  7. Get the current issue_details schema, then use its required project, snapshot, and issue parameters with a small result limit to retrieve affected URLs. Do not send an optional sort value unless the discovered schema and execution both accept it; if execution rejects the optional sort, omit it rather than changing the evidence request.
  8. For one exact crawled URL, use page_list to obtain candidate page IDs. Normalize the requested and returned URLs, select the exact match, and do not assume the first result is exact because the report can return prefix or approximate matches. Then use page_info for page-level evidence.

The verified public MCP does not expose a report named markup or the product UI's Markup thematic report. Never promise that report, a markup score, or hardcoded issue IDs.

MCP constraints

  • Projects access is read-only. Do not promise project creation, setting changes, or a fresh crawl.
  • Report calls consume API units. Request only the fields and rows needed, then expand if necessary.
  • Label findings with the Site Audit snapshot date and crawl coverage.
  • Treat issue_details rows as occurrence evidence. An empty result means no matching rows were returned for that project, snapshot, and issue request; it does not prove that the rendered page is valid or free of all schema problems.
  • A missing project, campaign, snapshot, issue type, field, subscription, or API-unit balance is an access limitation, not proof that the site has no schema problems.

Evidence ladder

Configurable default: Use the strongest available evidence in this order and label it. Change the order when the user supplies more authoritative first-party or platform evidence.

  1. Existing Semrush project and completed Site Audit snapshot.
  2. User-supplied Site Audit or structured-data export.
  3. Browser-rendered DOM inspection.
  4. Google Rich Results Test or supplied validator output.
  5. Raw HTML inspection.
  6. User-supplied schema code and verified page facts.

Raw HTML can miss JSON-LD injected after page load. Do not report “no schema found” from a static fetch alone when JavaScript injection is possible.

Supported v1 schema types

Configurable product scope: The types below define the first release; they are not a claim that other Schema.org types are unimportant.

Recheck current Google Search Central documentation before generating code because eligibility and property requirements change.

Shared selection rules

  • Semrush-supported guidance: Describe the primary visible entity, not the keyword the page targets, and prefer the most specific valid type that accurately fits the entity.
  • Current platform requirement: Include properties only when their values are visible or user-confirmed. Do not add ratings, offers, authors, addresses, or media solely to satisfy a validator.
  • Industry implementation heuristic: Reuse stable @id values to connect the same entities consistently across the site.

Organization

Use on the canonical homepage or organization-defining page. Verify name, canonical url, crawlable logo, stable @id, and genuine sameAs profiles. Keep the identity consistent with publisher, seller, or provider references. Do not promise a Knowledge Panel.

Source: Organization Schema

Article and BlogPosting

Use for visible editorial content. Verify headline, canonical URL or @id, representative image, truthful datePublished and dateModified, identified author, and a publisher linked to the site's Organization entity. Do not change dates merely to appear fresh or invent author credentials.

Source: Schema Markup

Product and merchant listing

Use for a specific purchasable product. Verify name, image, description, product identifiers, and visible offers data such as price, currency, availability, URL, and seller. Add ratings or reviews only when genuine reviews are visible. Distinguish product-snippet eligibility from merchant-listing requirements using current Google documentation.

Sources: Schema Markup and Rich Snippets

Review and AggregateRating

Use only when the review or aggregate rating is visible and the reviewed item is unambiguous. Verify itemReviewed, author, review body when represented, rating value and scale, truthful rating or review counts, and visible dates. Check current Google policies for supported item types and self-serving review restrictions.

Source: Review Schema

VideoObject

Use when a video is a primary, watchable part of the page. Verify name, description, crawlable thumbnailUrl, truthful uploadDate, contentUrl or embedUrl, and duration when known. Add clip or live-stream properties only when supported by the page and video.

Source: Video Schema

LocalBusiness

Use for a physical business location. Prefer the most specific accurate subtype. Verify name, canonical URL, address, public telephone, opening hours, coordinates when known, relevant imagery, and one stable @id per distinct location. Do not merge locations with different addresses, hours, or phone numbers.

The reviewed English inventory has no dedicated current LocalBusiness article. Confirm this module against the canonical Semrush schema guide and current Google documentation before publication.

Source: Schema Markup

Other detected types

Audit other types at a generic level: syntax, vocabulary, visible-content parity, identity, and duplication. Before generating code, review the current Schema.org definition and the corresponding Google feature documentation when one exists.

Do not prioritize FAQPage or HowTo generation in v1. Their Google search-feature treatment has changed, and the reviewed English Semrush inventory does not provide a strong current foundation for making them flagship modules.

Workflow

Industry workflow heuristic: Use this sequence to keep detection, type selection, implementation review, drafting, and validation separate. Adapt it when the selected mode requires only part of the workflow.

1. Inventory existing markup

  • Inspect rendered script[type="application/ld+json"] blocks.
  • Inspect Microdata and RDFa when present.
  • Parse JSON-LD objects, arrays, and @graph nodes; report parse failures without silently repairing the evidence.
  • Record each entity's @type, @id, key properties, source URL, and extraction method.
  • Identify duplicate IDs, conflicting properties, disconnected entities, and stale values.

Keep page evidence separate from Semrush crawl evidence. A Site Audit issue can identify affected URLs, but it does not replace inspecting the final rendered markup.

2. Determine schema fit

  • Identify the page's primary entity and user-facing purpose.
  • Select only schema types that describe visible content.
  • Distinguish Schema.org validity from eligibility for a Google search feature.
  • Explain why each proposed type applies or does not apply.
  • Use the supported v1 guidance above before generating one of those types.

Diagnose other detected types when possible, but review current Google and Schema.org documentation before generating type-specific code outside the supported set.

3. Audit implementation quality

Check:

  • JSON syntax and valid Schema.org terms.
  • Current required and recommended properties for the relevant Google feature.
  • Agreement with visible names, prices, currencies, availability, ratings, review counts, dates, authors, logos, addresses, and media.
  • Canonical URLs, absolute asset URLs, and stable @id values.
  • Correct entity nesting and relationships.
  • Duplicate, contradictory, misleading, hidden, or stale properties.
  • Whether the markup is crawlable and present in the rendered DOM.

Industry implementation heuristic: Prioritize issues by technical validity, policy risk, page importance, and likely search-presentation impact. Do not invent universal scoring bands.

4. Draft or correct JSON-LD

  • Current platform recommendation: Prefer JSON-LD for new code when the site's setup allows it. Google also supports valid Microdata and RDFa.
  • Generate only from visible or user-confirmed facts.
  • Preserve valid identifiers when correcting existing markup.
  • Use one coherent @graph when multiple entities need explicit relationships.
  • Use stable absolute @id values, usually canonical URL fragments such as #organization or #article.
  • Include only relevant properties. More markup is not automatically better.
  • If required facts are missing, return a missing-information list instead of deployment-ready code.
  • If a template is still useful, mark every placeholder clearly and label the block non-deployable.

5. Validate

Industry workflow heuristic: Validate in this order:

  1. Parse the JSON-LD.
  2. Confirm all terms against Schema.org.
  3. Compare every factual property with visible page content.
  4. Run Google's Rich Results Test for Google-supported features.
  5. Reinspect the rendered page after implementation.

Do not treat a Schema.org-valid result as proof of Google rich-result eligibility. Do not treat validator warnings as errors without checking their meaning.

6. Hand off

Provide placement guidance appropriate to the user's CMS or framework, but do not deploy. Name the validation step and retest action when the user is coordinating implementation.

Output contract

Configurable default: Return only the sections the selected mode needs:

  1. Executive verdict: pass, needs work, or insufficient evidence.
  2. Evidence used: Semrush snapshot, rendered page, raw HTML, validator, supplied code, and user facts.
  3. Markup inventory: entity, type, key properties, extraction method, and source URL.
  4. Issue table: priority, issue, affected property or URL, evidence, consequence, and fix.
  5. Recommended schema map: page type → schema type → rationale.
  6. Corrected JSON-LD: only when sufficient verified facts exist.
  7. Validation checklist: syntax, vocabulary, content parity, Google eligibility, and rendered confirmation.
  8. Implementation notes: placement, unresolved limitations, and retest action.

Keep these evidence classes visibly separate:

  • Semrush MCP: project and Site Audit snapshot data.
  • Page evidence: rendered or raw page content.
  • Validator evidence: Google or Schema.org validation output.
  • User-provided facts: business or entity information supplied directly.
  • Model judgment: type selection, prioritization, and recommended relationships.

Sources

Semrush methodology:

Technical sources of truth:

Download now (ZIP)

  • Other versions55 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • Used alongsideProjects with it also use product-marketing-context, revops and 8 more.

    Other files people use alongside this one.

    Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
    • xfstudioSkill

      product-marketing-context

      When the user wants to create or update their product marketing context document. Also use when the user mentions 'product context,' 'marketing context,' 'set up context,' 'positioning,' or wants to avoid repeating foundational information across marketing tasks. Creates `.claude/product-marketing-context.md` that other marketing skills reference.

      Also in 18 projects that use this

    • ukunal91appSkill

      revops

      When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and processes that connect marketing to revenue. For cold outreach emails, see cold-email. For email drip campaigns, see email-sequence. For pricing decisions, see pricing-strategy.

      Also in 14 projects that use this

    • VercelSkill

      site-architecture

      Use when planning or restructuring what pages a site has and how they connect: hierarchy, navigation, URL patterns, breadcrumbs, and internal linking. Not for XML sitemaps, which are in seo-audit.

      Also in 16 projects that use this

    • ukunal91appSkill

      churn-prevention

      When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro.

      Also in 14 projects that use this

    • buildingwithaiSkill

      sales-enablement

      Master world-class sales enablement from foundations to execution. Build comprehensive enablement programs, develop effective training and coaching systems, implement data-driven content strategies, leverage AI and modern technology stacks, establish cross-functional collaboration, measure ROI with precision, and drive revenue growth. Covers sales methodologies (MEDDIC, SPICED, BANT), maturity models (Forrester, Gartner), enablement frameworks, change management, remote enablement, market segment strategies (SMB, Mid-Market, Enterprise), and team building. Based on 2024-2025 industry research from Gartner, Forrester, Product Marketing Alliance, Sales Enablement Collective, and leading practitioners.

      Also in 14 projects that use this

    • ai-vitaSkill

      aso-audit

      When the user wants to audit or optimize an App Store or Google Play listing. Also use when the user mentions 'ASO audit,' 'app store optimization,' 'optimize my app listing,' 'improve app visibility,' 'app store ranking,' 'audit my listing,' 'why aren't people downloading my app,' 'improve my app conversion,' 'keyword optimization for app,' or 'compare my app to competitors.' Use when the user shares an App Store or Google Play URL and wants to improve it.

      Also in 4 projects that use this

    • +3 more from ukunal91app
  • In this repository8 other files it gives its agents.

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.