본문으로 건너뛰기
cccskills
무료GitHub에 공개

schema-generator

Generate validated JSON-LD structured data markup for any page type

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md11.0 KB
  • skill.meta.json466 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Schema Generator

Generates ready-to-paste JSON-LD structured data markup for any page type. Supports Product, Article, FAQ, LocalBusiness, Organization, HowTo, Review, Service, BreadcrumbList, WebSite, Event, and more. Gathers required and recommended fields per schema type, generates valid JSON-LD, validates against schema.org specifications, and outputs script tags ready for insertion into page HTML.

Prerequisites

  • Target page type or URL to generate schema for
  • Content details (product info, FAQ pairs, business details, etc.)
  • Optional: agency.config.json for organization defaults
  • Optional: browser automation tool for extracting content from a live URL

Phase 0: Read Config

  1. Read agency.config.json from the project root (if available).
  2. Extract agency.name, agency.url, agency.logo for Organization schema defaults.
  3. Extract agency.social_profiles for sameAs links.
  4. Check tools.browser availability for live page content extraction.
  5. Accept parameters:
    • page_type -- (required) one of: product, article, faq, local_business, organization, how_to, review, service, breadcrumb, website, event, person, recipe, video, course, job_posting, software_application
    • url -- (optional) live page URL to extract content from automatically
    • data -- (optional) object with field values to populate the schema
    • multiple -- (optional) boolean, generate multiple schema types for the same page. Default: false
    • include_breadcrumb -- (optional) boolean, auto-add BreadcrumbList alongside primary schema. Default: true

Phase 1: Schema Type Resolution

Determine Required Schema Types

Based on page_type, identify the primary schema and any supplementary schemas:

Page TypePrimary SchemaSupplementary Schemas
productProductBreadcrumbList, Review, Offer, AggregateRating
articleArticle / BlogPosting / NewsArticleBreadcrumbList, Organization (publisher)
faqFAQPageBreadcrumbList
local_businessLocalBusinessBreadcrumbList, PostalAddress, GeoCoordinates
organizationOrganizationWebSite, SearchAction
how_toHowToBreadcrumbList
reviewReviewBreadcrumbList, itemReviewed
serviceServiceOrganization (provider), BreadcrumbList, Offer
breadcrumbBreadcrumbList(standalone)
websiteWebSiteOrganization, SearchAction
eventEventBreadcrumbList, Place, Offer
personPerson(standalone)
videoVideoObjectBreadcrumbList
courseCourseBreadcrumbList, Organization (provider)
job_postingJobPostingOrganization (hiringOrganization)
software_applicationSoftwareApplicationBreadcrumbList, Review, Offer

Phase 2: Field Gathering

If URL Provided

  • Visit the page via browser automation
  • Auto-extract relevant fields:
    • Page title, description, headings
    • Product details: name, price, currency, availability, images, SKU, brand
    • Article details: headline, author, datePublished, dateModified, image
    • FAQ: extract Q&A pairs from heading + paragraph patterns
    • Business: name, address, phone, hours from footer/contact page
    • Breadcrumb: derive from URL path structure
  • Present extracted data for user confirmation before generating

If Data Object Provided

  • Validate that all required fields for the schema type are present
  • Prompt for any missing required fields
  • Apply defaults from config where appropriate

Required vs Recommended Fields

For each schema type, clearly separate:

  • Required fields: schema will fail validation without these
  • Recommended fields: improve rich snippet eligibility
  • Optional fields: enhance completeness but not required

Phase 3: Schema Generation

Product Schema

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "{{product_name}}",
  "image": ["{{image_url_1}}", "{{image_url_2}}"],
  "description": "{{description}}",
  "sku": "{{sku}}",
  "brand": {
    "@type": "Brand",
    "name": "{{brand_name}}"
  },
  "offers": {
    "@type": "Offer",
    "url": "{{page_url}}",
    "priceCurrency": "{{currency}}",
    "price": "{{price}}",
    "availability": "https://schema.org/InStock",
    "seller": {
      "@type": "Organization",
      "name": "{{seller_name}}"
    }
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "{{rating}}",
    "reviewCount": "{{review_count}}"
  }
}

Article Schema

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "{{headline}}",
  "image": ["{{image_url}}"],
  "datePublished": "{{date_published}}",
  "dateModified": "{{date_modified}}",
  "author": {
    "@type": "Person",
    "name": "{{author_name}}",
    "url": "{{author_url}}"
  },
  "publisher": {
    "@type": "Organization",
    "name": "{{publisher_name}}",
    "logo": {
      "@type": "ImageObject",
      "url": "{{publisher_logo_url}}"
    }
  },
  "description": "{{description}}",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "{{page_url}}"
  }
}

FAQ Schema

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "{{question_1}}",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "{{answer_1}}"
      }
    }
  ]
}

LocalBusiness Schema

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "{{business_name}}",
  "image": "{{image_url}}",
  "url": "{{website_url}}",
  "telephone": "{{phone}}",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "{{street}}",
    "addressLocality": "{{city}}",
    "addressRegion": "{{state}}",
    "postalCode": "{{zip}}",
    "addressCountry": "{{country}}"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "{{lat}}",
    "longitude": "{{lng}}"
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "09:00",
      "closes": "17:00"
    }
  ]
}

Organization Schema

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "{{org_name}}",
  "url": "{{org_url}}",
  "logo": "{{logo_url}}",
  "sameAs": [
    "{{linkedin_url}}",
    "{{twitter_url}}",
    "{{facebook_url}}"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "{{phone}}",
    "contactType": "customer service"
  }
}

HowTo Schema

{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "{{title}}",
  "description": "{{description}}",
  "totalTime": "{{duration_iso8601}}",
  "step": [
    {
      "@type": "HowToStep",
      "name": "{{step_name}}",
      "text": "{{step_text}}",
      "image": "{{step_image_url}}"
    }
  ]
}

BreadcrumbList Schema

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "{{base_url}}"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "{{category_name}}",
      "item": "{{category_url}}"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "{{page_name}}",
      "item": "{{page_url}}"
    }
  ]
}

Service Schema

{
  "@context": "https://schema.org",
  "@type": "Service",
  "name": "{{service_name}}",
  "description": "{{description}}",
  "provider": {
    "@type": "Organization",
    "name": "{{provider_name}}",
    "url": "{{provider_url}}"
  },
  "serviceType": "{{service_type}}",
  "areaServed": {
    "@type": "Country",
    "name": "{{country}}"
  },
  "offers": {
    "@type": "Offer",
    "price": "{{starting_price}}",
    "priceCurrency": "{{currency}}"
  }
}

Phase 4: Validation

Schema.org Compliance Check

  • Verify all required properties are present for the schema type
  • Verify data types match expectations (string, number, URL, date in ISO 8601)
  • Verify URLs are absolute, not relative
  • Verify image URLs are accessible
  • Check for deprecated properties and suggest current alternatives
  • Ensure @context is https://schema.org (not http)

Common Error Prevention

  • No trailing commas in JSON
  • No single quotes (must be double quotes)
  • Dates in ISO 8601 format: YYYY-MM-DDTHH:MM:SSZ
  • Prices as strings with decimals: "29.99" not 29.99
  • Availability values must be full schema.org URLs: https://schema.org/InStock

Rich Results Eligibility

  • Check which Google rich result types the schema qualifies for
  • Flag any missing fields that would prevent rich result display
  • Note: FAQ rich results, Product rich results, Review stars, Recipe cards, How-to steps

Phase 5: Output

Return structured JSON:

{
  "page_url": "https://example.com/products/widget",
  "generated_at": "2024-01-15T14:30:00Z",
  "page_type": "product",
  "schemas_generated": ["Product", "BreadcrumbList"],
  "validation_status": "PASS",
  "rich_result_eligible": ["Product snippet", "Review stars", "Price display"],
  "script_tags": [
    {
      "schema_type": "Product",
      "json_ld": "<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"Product\",\n  ...\n}\n</script>"
    },
    {
      "schema_type": "BreadcrumbList",
      "json_ld": "<script type=\"application/ld+json\">\n{\n  \"@context\": \"https://schema.org\",\n  \"@type\": \"BreadcrumbList\",\n  ...\n}\n</script>"
    }
  ],
  "validation_notes": [
    "All required Product fields present",
    "AggregateRating included -- eligible for review stars in SERPs",
    "BreadcrumbList derived from URL path structure"
  ],
  "missing_recommended_fields": [
    { "field": "gtin", "impact": "Adds product identification for Google Shopping" },
    { "field": "review", "impact": "Individual reviews strengthen review star display" }
  ],
  "implementation_instructions": "Add both script tags to the <head> section of the page. Test with Google Rich Results Test: https://search.google.com/test/rich-results"
}

Example Usage

Trigger phrases:

  • "Generate schema for [page type]"
  • "Create JSON-LD for [url]"
  • "Add structured data to [page type]"
  • "Schema markup for my [product/article/FAQ]"
  • "Generate FAQ schema for these questions"
User: Generate product schema for plasho.com/services/shopify-setup
Assistant: [visits page, extracts service details, generates Service + Organization + BreadcrumbList JSON-LD, validates, returns ready-to-paste script tags]
User: Create FAQ schema for these Q&As: "How long does setup take?" "2-3 weeks", "What's included?" "Full store setup with theme customization"
Assistant: [generates FAQPage JSON-LD with both Q&A pairs, validates, returns script tag]
User: What schema should I add to my homepage?
Assistant: [recommends Organization + WebSite + SearchAction, gathers details, generates all three, returns validated script tags]

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Analyze A/B test results for statistical significance with ship, extend, or kill recommendations

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

Reallocate ad budget across campaigns and channels using ROAS and marginal return analysis

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

Generate structured creative briefs for ad designers with brand-consistent direction

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

Mine winning ad angles, hooks, and creative patterns from top-performing ads

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

ad-spy

무료

Monitor competitor ads across Meta, Google, and LinkedIn with strategic analysis

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

Interactive onboarding wizard that generates agency.config.json for any B2B agency. Asks structured questions about the agency, services, ICP, tools, outreach preferences, and CRM setup. Outputs a complete config file.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ekatasingh1107/b2b-gtm-skills22026년 4월 12일 업데이트

ekatasingh1107의 스킬 모두 보기

이 스킬의 문제 신고