Skip to content
Skill Authoring
Skill

/schema-markup

Use this skill when the user says 'add schema', 'schema markup', 'JSON-LD', 'structured data', 'rich results', 'rich snippets', or is adding or fixing schema.org structured data for better search result appearance. Do NOT use for meta tag optimization or full SEO audits.

BOOST
From plugin
memstack
42587 skills2 commands4 hooks
Install
$ npx -y skills add cwinvestments/memstack --skill schema-markup --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/schema-markup

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use this skill when the user says 'add schema', 'schema markup', 'JSON-LD', 'structured data', 'rich results', 'rich snippets', or is adding or fixing schema.org structured data for better search result appearance. Do NOT use for meta tag optimization or full SEO audits.

SKILL.md

schema-markup.SKILL.md
name: memstack-seo-schema-markup
description: "Use this skill when the user says 'add schema', 'schema markup', 'JSON-LD', 'structured data', 'rich results', 'rich snippets', or is adding or fixing schema.org structured data for better search result appearance. Do NOT use for meta tag optimization or full SEO audits."
version: 1.0.0
license: "Proprietary, MemStack™ Pro by CW Affiliate Investments LLC. See LICENSE.txt"

📊 Schema Markup: Generating structured data for rich results...

*Identifies applicable schema types, generates valid JSON-LD blocks, and verifies against Google's Rich Results requirements, ready to paste into page head.*

Activation

When this skill activates, output:

`📊 Schema Markup, Analyzing pages for schema opportunities...`

Then execute the protocol below.

| Context | Status | |---------|--------| | User says "add schema" or "schema markup" or "JSON-LD" | ACTIVE | | User says "structured data" or "rich results" or "rich snippets" | ACTIVE | | Adding or fixing schema.org data on any page | ACTIVE | | Doing a full SEO audit (broader scope) | DORMANT: use site-audit | | Optimizing meta tags (not schema) | DORMANT: use meta-tag-optimizer |

Anti-patterns

| Trap | Reality Check | |------|---------------| | "Schema is optional" | Pages with schema get rich results. Pages without get plain blue links. Rich results get 2-3x more clicks. | | "Add every schema type" | Only add schema that matches actual page content. Irrelevant schema triggers manual actions from Google. | | "Microdata is fine" | Google recommends JSON-LD. It's cleaner, easier to maintain, and separated from HTML. Use JSON-LD only. | | "Copy schema from another site" | Schema must reflect YOUR content. Copying schema with different data violates Google's guidelines. | | "Schema guarantees rich results" | Schema makes you eligible. Google decides whether to show rich results based on quality and relevance. |

Protocol

For ready-to-paste JSON-LD templates covering all 10 common schema types (FAQPage, WebPage, Article, SoftwareApplication, Organization, Product, HowTo, BreadcrumbList, LocalBusiness, SpeakableSpecification) plus a combined `@graph` bundle, see [`references/schema-templates.md`](./references/schema-templates.md). The step-by-step generation logic below still applies. The reference file is a copy-paste library, not a replacement for the per-page-type mapping in Step 1.

Step 1: Identify Applicable Schema Types

Map each page type to the correct schema:

# Scan for page types
find app/ pages/ -name "page.tsx" -o -name "*.tsx" 2>/dev/null | grep -v node_modules | grep -v "_\|layout\|loading\|error"

# Check for existing schema
grep -rn "application/ld+json\|schema.org" --include="*.tsx" --include="*.jsx" --include="*.html" . | grep -v node_modules

**Schema type mapping:**

| Page Type | Primary Schema | Additional Schema | Rich Result | |-----------|---------------|-------------------|-------------| | Homepage | `Organization` + `WebSite` | `SearchAction` | Sitelinks search box | | About | `Organization` | `Person` (for founders) | Knowledge panel | | Product/Pricing | `Product` | `Offer`, `AggregateRating` | Product rich results (price, rating) | | Blog post | `Article` | `Person` (author), `ImageObject` | Article rich results | | FAQ page | `FAQPage` | none | FAQ dropdowns in SERP | | How-to guide | `HowTo` | `HowToStep` | How-to rich results | | Contact/Local | `LocalBusiness` | `PostalAddress`, `GeoCoordinates` | Local pack | | SaaS/Software | `SoftwareApplication` | `Offer` | Software rich results | | Event page | `Event` | `Place`, `Offer` | Event rich results | | Recipe | `Recipe` | `NutritionInformation` | Recipe card | | All pages | `BreadcrumbList` | none | Breadcrumb trail |

Step 2: Generate Organization Schema

For the homepage or site-wide layout:

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "[Company Name]",
  "url": "https://[domain]",
  "logo": "https://[domain]/logo.png",
  "description": "[One-sentence company description]",
  "foundingDate": "[YYYY]",
  "sameAs": [
    "https://twitter.com/[handle]",
    "https://github.com/[org]",
    "https://linkedin.com/company/[name]"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer support",
    "email": "[support@domain.com]"
  }
}

Step 3: Generate WebSite + SearchAction Schema

Enables the sitelinks search box in Google:

{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "[Site Name]",
  "url": "https://[domain]",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://[domain]/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}

**Note:** Only add `SearchAction` if your site has a working search page at the specified URL.

Step 4: Generate Article Schema

For blog posts and articles:

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "[Post Title: max 110 chars]",
  "description": "[Post description: max 155 chars]",
  "image": "https://[domain]/blog/[slug]/hero.jpg",
  "datePublished": "[YYYY-MM-DDT00:00:00Z]",
  "dateModified": "[YYYY-MM-DDT00:00:00Z]",
  "author": {
    "@type": "Person",
    "name": "[Author Name]",
    "url": "https://[domain]/about"
  },
  "publisher": {
    "@type": "Organization",
    "name": "[Company Name]",
    "logo": {
      "@type": "ImageObject",
      "url": "https://[domain]/logo.png"
    }
  },
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://[domain]/blog/[slug]"
  }
}

**Required fields for Article rich results:**

  • `headline` (max 110 chars)
  • `image` (at least one, must be crawlable)
  • `datePublished`
  • `author.name`

Step 5: Generate Product / SoftwareApplication Schema

For product or pricing pages:

{
  "@context": "https://schema.org",
  "@type": "Softw
Read more
Ships withmemstack

The structured skill framework for Claude Code: 131 professional skills for deployment, security, databases, content, marketing, and more. Skills activate automatically when you need them. Say "deploy this to Railway" and the right skill loads on demand.

Get the whole plugin

Other skills on memstack.