{
  "schemaVersion": "1.0",
  "item": {
    "slug": "schema-markup",
    "name": "Schema Markup",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/wpank/schema-markup",
    "canonicalUrl": "https://clawhub.ai/wpank/schema-markup",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/schema-markup",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=schema-markup",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/schema-examples.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/schema-markup"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/schema-markup",
    "agentPageUrl": "https://openagent3.xyz/skills/schema-markup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/schema-markup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/schema-markup/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Schema Markup",
        "body": "Implement schema.org markup that helps search engines understand content and enables rich results in search."
      },
      {
        "title": "OpenClaw / Moltbot / Clawbot",
        "body": "npx clawhub@latest install schema-markup"
      },
      {
        "title": "When to Use",
        "body": "Adding structured data to new or existing pages\nFixing schema validation errors\nOptimizing for specific rich results (FAQ, product, article)\nImplementing JSON-LD in React/Next.js applications\nAuditing existing schema markup"
      },
      {
        "title": "Initial Assessment",
        "body": "Before implementing schema, understand:\n\nPage Type — What kind of page? What's the primary content? What rich results are possible?\nCurrent State — Any existing schema? Errors? Which rich results already appearing?\nGoals — Which rich results are you targeting? What's the business value?"
      },
      {
        "title": "1. Accuracy First",
        "body": "Schema must accurately represent page content\nDon't markup content that doesn't exist on the page\nKeep updated when content changes"
      },
      {
        "title": "2. Use JSON-LD",
        "body": "Google recommends JSON-LD format\nEasier to implement and maintain than microdata or RDFa\nPlace in <head> or before </body>"
      },
      {
        "title": "3. Follow Google's Guidelines",
        "body": "Only use markup Google supports for rich results\nAvoid spam tactics\nReview eligibility requirements for each type"
      },
      {
        "title": "4. Validate Everything",
        "body": "Test before deploying\nMonitor Search Console enhancement reports\nFix errors promptly"
      },
      {
        "title": "Common Schema Types",
        "body": "TypeUse ForRequired PropertiesOrganizationCompany homepage/aboutname, urlWebSiteHomepage (search box)name, urlArticleBlog posts, newsheadline, image, datePublished, authorProductProduct pagesname, image, offersSoftwareApplicationSaaS/app pagesname, offersFAQPageFAQ contentmainEntity (Q&A array)HowToTutorialsname, stepBreadcrumbListAny page with breadcrumbsitemListElementLocalBusinessLocal business pagesname, addressEventEvents, webinarsname, startDate, location\n\nFor complete JSON-LD examples with required/recommended field annotations: See references/schema-examples.md"
      },
      {
        "title": "Organization (Company Page)",
        "body": "Required: name, url\nRecommended: logo, sameAs (social profiles), contactPoint"
      },
      {
        "title": "Article/BlogPosting",
        "body": "Required: headline, image, datePublished, author\nRecommended: dateModified, publisher, description"
      },
      {
        "title": "Product",
        "body": "Required: name, image, offers (price + availability)\nRecommended: sku, brand, aggregateRating, review"
      },
      {
        "title": "FAQPage",
        "body": "Required: mainEntity (array of Question/Answer pairs)"
      },
      {
        "title": "BreadcrumbList",
        "body": "Required: itemListElement (array with position, name, item)"
      },
      {
        "title": "Multiple Schema Types",
        "body": "Combine multiple schema types on one page using @graph:\n\n{\n  \"@context\": \"https://schema.org\",\n  \"@graph\": [\n    { \"@type\": \"Organization\", \"...\" : \"...\" },\n    { \"@type\": \"WebSite\", \"...\" : \"...\" },\n    { \"@type\": \"BreadcrumbList\", \"...\" : \"...\" }\n  ]\n}\n\nUse @id to create referenceable entities — define once, reference elsewhere with { \"@id\": \"...\" }."
      },
      {
        "title": "Tools",
        "body": "Google Rich Results Test: https://search.google.com/test/rich-results\nSchema.org Validator: https://validator.schema.org/\nSearch Console: Enhancements reports"
      },
      {
        "title": "Common Errors",
        "body": "ErrorCauseFixMissing required fieldRequired property not includedAdd the missing propertyInvalid URLRelative URL or malformedUse fully qualified URLs (https://...)Invalid date formatNot ISO 8601Use YYYY-MM-DDTHH:MM:SS+00:00Invalid enum valueWrong enumeration valueUse exact schema.org URLs (e.g., https://schema.org/InStock)Content mismatchSchema doesn't match visible contentEnsure schema reflects actual page contentInvalid priceCurrency symbol or commas includedUse numeric value only (\"149.99\")"
      },
      {
        "title": "Static Sites",
        "body": "Add JSON-LD directly in HTML template\nUse includes/partials for reusable schema"
      },
      {
        "title": "Dynamic Sites (React, Next.js)",
        "body": "export function JsonLd({ data }: { data: Record<string, unknown> }) {\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}\n    />\n  );\n}"
      },
      {
        "title": "CMS / WordPress",
        "body": "Plugins: Yoast, Rank Math, Schema Pro\nTheme modifications for custom types\nCustom fields mapped to structured data"
      },
      {
        "title": "Testing Checklist",
        "body": "Validates in Rich Results Test with no errors\n No warnings for recommended properties\n Schema content matches visible page content\n All required properties included for each type\n URLs are fully qualified\n Dates are ISO 8601 format\n Prices are numeric without currency symbols"
      },
      {
        "title": "Task-Specific Questions",
        "body": "Before implementing, gather answers to:\n\nWhat type of page is this? (product, article, FAQ, local business)\nWhat rich results are you targeting? (FAQ dropdown, product stars, breadcrumbs)\nWhat data is available to populate the schema? (prices, ratings, dates)\nIs there existing schema on the page? (check with Rich Results Test first)\nWhat's your tech stack? (static HTML, React/Next.js, CMS/WordPress)"
      },
      {
        "title": "Implementation Workflow",
        "body": "Identify page types — map your site's pages to schema types\nStart with homepage — Organization + WebSite schema\nAdd per-page schema — Article for blog, Product for shop, etc.\nAdd BreadcrumbList — every page with navigation breadcrumbs\nValidate each page — Rich Results Test before and after\nMonitor Search Console — check enhancement reports weekly after launch"
      },
      {
        "title": "NEVER Do",
        "body": "NEVER add schema for content that doesn't exist on the page — this violates Google's guidelines and risks penalties\nNEVER use microdata or RDFa when JSON-LD is an option — JSON-LD is easier to maintain and Google's recommended format\nNEVER hardcode schema that should be dynamic — product prices, availability, and ratings must reflect current data\nNEVER skip validation before deploying — invalid schema is worse than no schema; it wastes crawl budget\nNEVER mark up every page identically — each page type needs its own appropriate schema types\nNEVER ignore Search Console errors — schema errors can cause rich results to disappear entirely"
      }
    ],
    "body": "Schema Markup\n\nImplement schema.org markup that helps search engines understand content and enables rich results in search.\n\nInstallation\nOpenClaw / Moltbot / Clawbot\nnpx clawhub@latest install schema-markup\n\nWhen to Use\nAdding structured data to new or existing pages\nFixing schema validation errors\nOptimizing for specific rich results (FAQ, product, article)\nImplementing JSON-LD in React/Next.js applications\nAuditing existing schema markup\nInitial Assessment\n\nBefore implementing schema, understand:\n\nPage Type — What kind of page? What's the primary content? What rich results are possible?\nCurrent State — Any existing schema? Errors? Which rich results already appearing?\nGoals — Which rich results are you targeting? What's the business value?\nCore Principles\n1. Accuracy First\nSchema must accurately represent page content\nDon't markup content that doesn't exist on the page\nKeep updated when content changes\n2. Use JSON-LD\nGoogle recommends JSON-LD format\nEasier to implement and maintain than microdata or RDFa\nPlace in <head> or before </body>\n3. Follow Google's Guidelines\nOnly use markup Google supports for rich results\nAvoid spam tactics\nReview eligibility requirements for each type\n4. Validate Everything\nTest before deploying\nMonitor Search Console enhancement reports\nFix errors promptly\nCommon Schema Types\nType\tUse For\tRequired Properties\nOrganization\tCompany homepage/about\tname, url\nWebSite\tHomepage (search box)\tname, url\nArticle\tBlog posts, news\theadline, image, datePublished, author\nProduct\tProduct pages\tname, image, offers\nSoftwareApplication\tSaaS/app pages\tname, offers\nFAQPage\tFAQ content\tmainEntity (Q&A array)\nHowTo\tTutorials\tname, step\nBreadcrumbList\tAny page with breadcrumbs\titemListElement\nLocalBusiness\tLocal business pages\tname, address\nEvent\tEvents, webinars\tname, startDate, location\n\nFor complete JSON-LD examples with required/recommended field annotations: See references/schema-examples.md\n\nQuick Reference\nOrganization (Company Page)\n\nRequired: name, url Recommended: logo, sameAs (social profiles), contactPoint\n\nArticle/BlogPosting\n\nRequired: headline, image, datePublished, author Recommended: dateModified, publisher, description\n\nProduct\n\nRequired: name, image, offers (price + availability) Recommended: sku, brand, aggregateRating, review\n\nFAQPage\n\nRequired: mainEntity (array of Question/Answer pairs)\n\nBreadcrumbList\n\nRequired: itemListElement (array with position, name, item)\n\nMultiple Schema Types\n\nCombine multiple schema types on one page using @graph:\n\n{\n  \"@context\": \"https://schema.org\",\n  \"@graph\": [\n    { \"@type\": \"Organization\", \"...\" : \"...\" },\n    { \"@type\": \"WebSite\", \"...\" : \"...\" },\n    { \"@type\": \"BreadcrumbList\", \"...\" : \"...\" }\n  ]\n}\n\n\nUse @id to create referenceable entities — define once, reference elsewhere with { \"@id\": \"...\" }.\n\nValidation and Testing\nTools\nGoogle Rich Results Test: https://search.google.com/test/rich-results\nSchema.org Validator: https://validator.schema.org/\nSearch Console: Enhancements reports\nCommon Errors\nError\tCause\tFix\nMissing required field\tRequired property not included\tAdd the missing property\nInvalid URL\tRelative URL or malformed\tUse fully qualified URLs (https://...)\nInvalid date format\tNot ISO 8601\tUse YYYY-MM-DDTHH:MM:SS+00:00\nInvalid enum value\tWrong enumeration value\tUse exact schema.org URLs (e.g., https://schema.org/InStock)\nContent mismatch\tSchema doesn't match visible content\tEnsure schema reflects actual page content\nInvalid price\tCurrency symbol or commas included\tUse numeric value only (\"149.99\")\nImplementation\nStatic Sites\nAdd JSON-LD directly in HTML template\nUse includes/partials for reusable schema\nDynamic Sites (React, Next.js)\nexport function JsonLd({ data }: { data: Record<string, unknown> }) {\n  return (\n    <script\n      type=\"application/ld+json\"\n      dangerouslySetInnerHTML={{ __html: JSON.stringify(data) }}\n    />\n  );\n}\n\nCMS / WordPress\nPlugins: Yoast, Rank Math, Schema Pro\nTheme modifications for custom types\nCustom fields mapped to structured data\nTesting Checklist\n Validates in Rich Results Test with no errors\n No warnings for recommended properties\n Schema content matches visible page content\n All required properties included for each type\n URLs are fully qualified\n Dates are ISO 8601 format\n Prices are numeric without currency symbols\nTask-Specific Questions\n\nBefore implementing, gather answers to:\n\nWhat type of page is this? (product, article, FAQ, local business)\nWhat rich results are you targeting? (FAQ dropdown, product stars, breadcrumbs)\nWhat data is available to populate the schema? (prices, ratings, dates)\nIs there existing schema on the page? (check with Rich Results Test first)\nWhat's your tech stack? (static HTML, React/Next.js, CMS/WordPress)\nImplementation Workflow\nIdentify page types — map your site's pages to schema types\nStart with homepage — Organization + WebSite schema\nAdd per-page schema — Article for blog, Product for shop, etc.\nAdd BreadcrumbList — every page with navigation breadcrumbs\nValidate each page — Rich Results Test before and after\nMonitor Search Console — check enhancement reports weekly after launch\nNEVER Do\nNEVER add schema for content that doesn't exist on the page — this violates Google's guidelines and risks penalties\nNEVER use microdata or RDFa when JSON-LD is an option — JSON-LD is easier to maintain and Google's recommended format\nNEVER hardcode schema that should be dynamic — product prices, availability, and ratings must reflect current data\nNEVER skip validation before deploying — invalid schema is worse than no schema; it wastes crawl budget\nNEVER mark up every page identically — each page type needs its own appropriate schema types\nNEVER ignore Search Console errors — schema errors can cause rich results to disappear entirely"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wpank/schema-markup",
    "publisherUrl": "https://clawhub.ai/wpank/schema-markup",
    "owner": "wpank",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/schema-markup",
    "downloadUrl": "https://openagent3.xyz/downloads/schema-markup",
    "agentUrl": "https://openagent3.xyz/skills/schema-markup/agent",
    "manifestUrl": "https://openagent3.xyz/skills/schema-markup/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/schema-markup/agent.md"
  }
}