schema-markup
Skill1 starsChanged 29 days agoMITView on GitHub
Generate and validate JSON-LD structured data for a page — pick the schema.org type (Organization, WebSite, Article, Product, FAQPage, HowTo, BreadcrumbList, LocalBusiness, SoftwareApplication, Person, Event, VideoObject), build one linked @graph from what the page shows, and check required properties. Use for "add schema", "structured data", "JSON-LD" or rich results.
61 other projects use a version of this.
Adopted by
Most recently taken up by
- oivanfelipe/claude-skillstheir own version, first seen Nov 8, 2026
- darkweb19/skillstheir own version, first seen Nov 8, 2026
- yht-4403/jc-agent-skillstheir own version, first seen Nov 8, 2026
- insight68/Skillstheir own version, first seen Nov 8, 2026
- ftzi/livespectheir own version, first seen Nov 8, 2026
- About-Intelligence/awesome-marketing-skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use internal-link-audit, product-marketing-context 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.
semrushSkillinternal-link-audit
Audit internal linking to find orphan pages, broken internal links, crawl-depth problems, and weak anchor distribution, then plan the hub-and-spoke structure that fixes them. Use when the user asks about internal links, orphan pages, site architecture, crawl depth, or how to pass authority to priority pages.
Also in 3 projects that use this
xfstudioSkillproduct-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 19 projects that use this
ukunal91appSkillrevops
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
VercelSkillsite-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
ukunal91appSkillchurn-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 15 projects that use this
buildingwithaiSkillsales-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
- +3 more from ukunal91app
Other versions61 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 61
- TheCraigHewitt/seomachine★ 7.5ksame name
- LeoYeAI/openclaw-marketing-skills★ 1ksame name
- OpenClaudia/openclaudia-skills★ 731same name
- boraoztunc/skills★ 454same name
- mysticaltech/marketingskills★ 352same name
- textura-agency/next16-claude-starter★ 141same name
- b1rdmania/ghostclaw★ 91same name
- akii-technologies-ltd/akii-seo-ai-search-optimizer★ 79same name
- robertbstillwell/marketing-skills★ 26same name
- ukunal91app/Marketing-Skills-by-Corey-Haines★ 26same name
51 more not listed
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.
In this repository14 other files it gives its agents.
- ai-keyword-researchSkill
- ai-visibility-reportSkill
- answer-engine-contentSkill
- article-reviewSkill
- citation-sourcesSkill
- competitor-gapSkill
- content-briefSkill
- content-calendarSkill
- eraSkill
- geo-auditSkill
- llms-txtSkill
- on-page-seoSkill
- publish-to-siteSkill
- technical-seo-auditSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 5 are distinctive, and 5 are very specific to this project.
0
Common
Most of the 60 edited versions we read keep these.
5
Distinctive
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 21
Not for: crawl and index problems that stop markup from being read (technical-seo-audit).
- Very specific: line 43
Inventory existing markup: Run the extraction snippet in references/validation.md on the URL: it lists each JSON-LD block, its types, parse …
- Very specific: line 48
Choose the types: Use the table below; read the matching section of references/schema-types.md for required and recommended properties.
- Distinctive: line 91
Validate: Run the structural self-checks V1–V14 yourself, then give the user the two external validators (schema.org validator, Google Rich …
- Distinctive: line 105
Placement: Put the block in the server-rendered HTML (head or end of body), not injected by a script that crawlers may not run.
- Very specific: line 146
Never create a rating or review to make a rich result eligible.
- Distinctive: line 149
Never mark up content that is hidden from visitors or that the page does not contain (FAQ answers that appear only in the markup).
- Distinctive: line 151
Keep one source of truth. If a CMS plugin already emits correct markup, extend or disable it.
- Very specific: line 153
Keep dateModified honest: change it only when the content changed.
- Distinctive: line 158
Do not claim a rich result will appear, or that AI engines will cite the page because of markup.
“Common” is measured: kept by at least 6 in 10 of the 60 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.
Files
Schema markup
Produce JSON-LD that says, in a form machines read without guessing, what a page is, who published it and which facts it states, and that matches what a visitor can see. For a page that already has markup, audit it, fix it, and report what changed.
When to use
- "Add schema / structured data / JSON-LD to this page", "why no rich results", "fix the schema errors in Search Console".
- A
geo-auditortechnical-seo-auditfinding says structured data is missing, invalid or mismatched with the page. - Building a CMS template that must emit correct markup on every page of a type.
Not for: crawl and index problems that stop markup from being read
(technical-seo-audit); titles, headings and content (on-page-seo); writing the
question-and-answer or step content that FAQ and HowTo markup describe
(answer-engine-content).
Inputs
- Page — a URL, pasted HTML, or a description of the page. A URL is best: the markup must be built from the page's own content.
- Site facts, asked once if not on the page: organisation name and legal name, logo
URL (a square image of at least 112 px), the official profiles for
sameAs(LinkedIn, GitHub, Crunchbase, YouTube, Wikipedia or Wikidata when they exist). - Page type (optional) — if the user knows it. Otherwise infer it and say so.
- Delivery — a single page, or a template (CMS, framework). A template needs placeholders and a rule for which fields feed which property.
Steps
- Read the page. Fetch it (web fetch, or
curl -sSL). Record the final URL and canonical, title, H1, language, author and dates as displayed, price and rating if shown, FAQ or step blocks, breadcrumb trail, contact details, images, videos. These are the only legitimate sources of values. - Inventory existing markup. Run the extraction snippet in
references/validation.mdon the URL: it lists each JSON-LD block, its types, parse errors, unresolved references and duplicates. Also look foritemscope(microdata) andtypeof(RDFa). Decide for each existing node: keep, fix, merge or drop. TwoOrganizationnodes from a theme and a plugin are a finding. Choose the types. Use the table below; read the matching section of
references/schema-types.mdfor required and recommended properties.Page Primary node Supporting nodes Home page WebSite,OrganizationWebPageBlog post, guide BlogPostingorArticleWebPage,BreadcrumbList,Person,OrganizationNews story NewsArticlesame as above Documentation page TechArticleWebPage,BreadcrumbListProduct or plan Product+OfferItemPage,BreadcrumbList,OrganizationSoftware product SoftwareApplication/WebApplication+OfferWebPage,OrganizationPage with visible Q&A FAQPage(as the page type ormainEntity)beside the page's main type Procedure with steps HowTobeside ArticleBusiness location LocalBusinesssubtypeWebPage,OrganizationAuthor or team page ProfilePage+PersonOrganizationEvent EventWebPage,OrganizationPage built around a video VideoObjectbeside the page's main type About or contact page AboutPageorContactPageOrganizationOne page, one primary entity: the thing the page is about. Do not stack
Producton an article that merely mentions a product. Use the most specific accurate subtype (Dentist, notLocalBusiness;BlogPosting, notArticle).- Gather values and note gaps. For each property, record where on the page its value comes from. A required value that the page does not show is a gap: leave the property out and list it. Never fill it from memory, a guess, or a competitor.
- Build one
@graph. A single<script type="application/ld+json">block with"@context": "https://schema.org"and an@grapharray. Link the nodes:- Give each reusable entity a stable absolute
@id:https://host/#organization,https://host/#website,<page-url>#webpage,<page-url>#article,<page-url>#breadcrumb,<author-page>#person. WebPage.isPartOf->WebSite;WebPage.breadcrumb->BreadcrumbList;Article.mainEntityOfPage->WebPage;Article.author->Person;Article.publisherandProduct.brand->Organization;Organization.logo->ImageObject.- Define the
Organization,WebSiteandPersonnodes in full where the entity is introduced, and reference them by{"@id": "..."}elsewhere. The same@idon every page is what tells a consumer it is one entity. sameAsonOrganizationandPersonlists the official profiles and nothing else. It is how an engine ties the page's brand to the entity it already knows.- Absolute
httpsURLs everywhere, using the canonical host. Dates in ISO 8601.
- Give each reusable entity a stable absolute
- Check consistency with the page (check V12 in
references/validation.md): every marked-up fact is visible to a visitor, and matches character for character where it is a name, price, date or contact detail. Remove markup the page does not support. - Validate. Run the structural self-checks V1–V14 yourself, then give the user the two external validators (schema.org validator, Google Rich Results Test) with the paste-ready block. State which checks you ran and that the Google test was not run.
- State the limits. Google's rich results change and some are restricted. Say which of the page's types can produce a visible result today, using Google's current gallery, and which are for machine understanding only. FAQ and HowTo are the common cases: FAQ rich results are limited to well-known government and health sites, and HowTo rich results are no longer shown, so for most sites the markup does not change how the page looks in search. It remains valid, and it states the questions, answers and steps explicitly to any consumer that reads JSON-LD. Whether a given AI answer engine reads or weights structured data is not documented by most vendors; do not promise a citation gain. The test is observation: whether the Search Console report shows the items as valid, and whether citations of the page change over the following weeks.
- Placement. Put the block in the server-rendered HTML (head or end of body), not injected by a script that crawlers may not run. One block per page where possible. For a template, give the template with variables and a table of field-to-property mappings, and test three pages per template after deploy.
Output
Schema markup — {url}
Page type: {type} · Nodes: {list} · Existing markup: none / {n} blocks ({verdict})
Validation: structural {passed}/{total} checks passed · schema.org validator: not run · Rich Results Test: not run
Rich results possible today: {list or "none — markup is for machine understanding"}Then:
- JSON-LD — the complete block in a fenced
htmlcode block, including the<script type="application/ld+json">tags, ready to paste. One block, one@graph. Property table:
Node Property Value source on the page Required? BlogPosting headline H1: "Prorations explained" Recommended BlogPosting datePublished Byline: "Published 2 March 2026" Recommended Product offers.price Price box: "$499 / month" Required Required means required for eligibility or for the markup to be useful (see
references/schema-types.md). Every row has a source; a row with no source is not in the markup.- Existing markup review (when markup was found) — per block: kept, fixed, merged or removed, with the reason and the check ID.
- Validation notes — the structural checks that passed, any warnings, the two links to run, what a clean result looks like, and the post-deploy steps (live fetch, Search Console Enhancements report in one to two weeks).
- Gaps — properties the page does not support (for example, no visible date, no author) with the page change that would unlock each.
Guardrails
- Mark up only what the page shows. No ratings, reviews, prices, dates, addresses, phone
numbers, awards or
sameAslinks that are not on the page or supplied by the user. - Never create a rating or review to make a rich result eligible.
AggregateRatingrequires visible reviews from real users, and a business rating itself on its own page is not eligible. - Never mark up content that is hidden from visitors or that the page does not contain (FAQ answers that appear only in the markup).
- Keep one source of truth. If a CMS plugin already emits correct markup, extend or disable it; do not add a second copy.
- Keep
dateModifiedhonest: change it only when the content changed. - Misleading structured data can cost the site its rich results and can lead to a manual action. When a fact is uncertain, leave the property out.
- Fetch only the page the user gave and URLs it links to for checks (images,
sameAsprofiles). Never log in or submit forms. - Do not claim a rich result will appear, or that AI engines will cite the page because of markup. Say what is eligible and how to check.
Era tools used
None. This skill works on public pages only and needs no Era account.
Hand-offs
geo-audit— to see how the markup fits into the page's overall AI-readiness score.technical-seo-audit— if the markup is correct but not being picked up (noindex, blocked, JavaScript-injected, canonical conflict).answer-engine-content— to write the FAQ answers, steps or direct-answer blocks that the markup will describe, when the page lacks them.on-page-seo— for the title, headings and internal links around the marked-up page.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
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.

