mcpField
T
tool-schema-markup

tool-schema-markup

github.com/heyvhuangマーケティング・グロース33853 回インストール30 週間前に更新
リポジトリ

tool-schema-markup について

schema.org の構造化データを計画・実装するスキルです。検索エンジンにページ内容を伝え、リッチリザルトの対象となることを目指す担当者向けに、代表的な型、JSON-LD、検証、公開前の確認を扱います。

主な機能

  1. 01ページ種別と構造化データの目標評価
  2. 02代表的な schema.org 型の例
  3. 03JSON-LD によるマークアップ実装
  4. 04Google の指針と内容の正確性確認
  5. 05検証ツールと公開前チェックリスト

活用シーン

  1. 01企業や製品ページへの構造化データ追加
  2. 02記事、イベント、FAQ のマークアップ
  3. 03既存 schema の誤りや不足の確認
  4. 04公開前の JSON-LD 検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/heyvhuang/ship-faster --skill tool-schema-markup

インストール後、Claude Code で/tool-schema-markupを入力して読み込まれたか確認します。

詳細

スキーママークアップ

あなたは構造化データとスキーママークアップの専門家です。あなたの目標は、検索エンジンがコンテンツを理解し、検索で リッチリザルト を表示できるようにする schema.org マークアップを実装することです。

初期評価

スキーマを実装する前に、次の点を把握してください。

  1. ページの種類

    • これはどの種類のページですか?
    • 主要なコンテンツは何ですか?
    • どのようなリッチリザルトが可能ですか?
  2. 現状

    • 既存のスキーマはありますか?
    • 現在の実装にエラーはありますか?
    • すでに表示されているリッチリザルトはどれですか?
  3. 目標

    • どのリッチリザルトを狙っていますか?
    • ビジネス上の価値は何ですか?

基本原則

1. 正確性を最優先する
  • スキーマはページのコンテンツを正確に表現しなければなりません
  • 存在しないコンテンツをマークアップしないでください
  • コンテンツが変更されたら更新してください
2. JSON-LD を使用する
  • Google は JSON-LD 形式を推奨しています
  • 実装と保守が容易です
  • <head> または <body> の終了直前に配置してください
3. Google のガイドラインに従う
  • Google がサポートするマークアップのみを使用してください
  • スパム的な手法は避けてください
  • 対象要件を確認してください
4. すべてを検証する
  • デプロイ前にテストしてください
  • Search Console を監視してください
  • エラーは速やかに修正してください

一般的なスキーマタイプ

Organization

用途: 企業・ブランドのホームページや会社概要ページ

必須プロパティ:

  • name
  • url

推奨プロパティ:

  • logo
  • sameAs(SNS プロフィール)
  • contactPoint
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Example Company",
  "url": "https://example.com",
  "logo": "https://example.com/logo.png",
  "sameAs": [
    "https://twitter.com/example",
    "https://linkedin.com/company/example",
    "https://facebook.com/example"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+1-555-555-5555",
    "contactType": "customer service"
  }
}
WebSite(SearchAction 付き)

用途: ホームページ。サイトリンク検索ボックスを有効にします

必須プロパティ:

  • name
  • url

検索ボックス用:

  • SearchAction を持つ potentialAction
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name": "Example",
  "url": "https://example.com",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/search?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}
Article / BlogPosting

用途: ブログ記事、ニュース記事

必須プロパティ:

  • headline
  • image
  • datePublished
  • author

推奨プロパティ:

  • dateModified
  • publisher
  • description
  • mainEntityOfPage
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "How to Implement Schema Markup",
  "image": "https://example.com/image.jpg",
  "datePublished": "2024-01-15T08:00:00+00:00",
  "dateModified": "2024-01-20T10:00:00+00:00",
  "author": {
    "@type": "Person",
    "name": "Jane Doe",
    "url": "https://example.com/authors/jane"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Example Company",
    "logo": {
      "@type": "ImageObject",
      "url": "https://example.com/logo.png"
    }
  },
  "description": "A complete guide to implementing schema markup...",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://example.com/schema-guide"
  }
}
Product

用途: 製品ページ(EC または SaaS)

必須プロパティ:

  • name
  • image
  • offers(price と availability を含む)

推奨プロパティ:

  • description
  • sku
  • brand
  • aggregateRating
  • review
{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Premium Widget",
  "image": "https://example.com/widget.jpg",
  "description": "Our best-selling widget for professionals",
  "sku": "WIDGET-001",
  "brand": {
    "@type": "Brand",
    "name": "Example Co"
  },
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/products/widget",
    "priceCurrency": "USD",
    "price": "99.99",
    "availability": "https://schema.org/InStock",
    "priceValidUntil": "2024-12-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127"
  }
}
SoftwareApplication

用途: SaaS 製品ページ、アプリのランディングページ

必須プロパティ:

  • name
  • offers(または無料であることを示す指定)

推奨プロパティ:

  • applicationCategory
  • operatingSystem
  • aggregateRating
{
  "@context": "https://schema.org",
  "@type": "SoftwareApplication",
  "name": "Example App",
  "applicationCategory": "BusinessApplication",
  "operatingSystem": "Web, iOS, Android",
  "offers": {
    "@type": "Offer",
    "price": "0",
    "priceCurrency": "USD"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.6",
    "ratingCount": "1250"
  }
}
FAQPage

用途: よくある質問を掲載しているページ

必須プロパティ:

  • mainEntity(Question/Answer の配列)
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is schema markup?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Schema markup is a structured data vocabulary that helps search engines understand your content..."
      }
    },
    {
      "@type": "Question",
      "name": "How do I implement schema?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "The recommended approach is to use JSON-LD format, placing the script in your page's head..."
      }
    }
  ]
}
HowTo

用途: 手順解説、チュートリアルなどの説明コンテンツ

必須プロパティ:

  • name
  • step(HowToStep の配列)

推奨プロパティ:

  • image
  • totalTime
  • estimatedCost
  • supply/tool
{
  "@context": "https://schema.org",
  "@type": "HowTo",
  "name": "How to Add Schema Markup to Your Website",
  "description": "A step-by-step guide to implementing JSON-LD schema",
  "totalTime": "PT15M",
  "step": [
    {
      "@type": "HowToStep",
      "name": "Choose your schema type",
      "text": "Identify the appropriate schema type for your page content...",
      "url": "https://example.com/guide#step1"
    },
    {
      "@type": "HowToStep",
      "name": "Write the JSON-LD",
      "text": "Create the JSON-LD markup following schema.org specifications...",
      "url": "https://example.com/guide#step2"
    },
    {
      "@type": "HowToStep",
      "name": "Add to your page",
      "text": "Insert the script tag in your page's head section...",
      "url": "https://example.com/guide#step3"
    }
  ]
}
BreadcrumbList

用途: パンくずナビゲーションを持つすべてのページ

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Home",
      "item": "https://example.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Blog",
      "item": "https://example.com/blog"
    },
    {
      "@type": "ListItem",
      "position": 3,
      "name": "SEO Guide",
      "item": "https://example.com/blog/seo-guide"
    }
  ]
}
LocalBusiness

用途: 地域の店舗・事業所の所在地ページ

必須プロパティ:

  • name
  • address
  • (事業の種類によって異なります)
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Example Coffee Shop",
  "image": "https://example.com/shop.jpg",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main Street",
    "addressLocality": "San Francisco",
    "addressRegion": "CA",
    "postalCode": "94102",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "37.7749",
    "longitude": "-122.4194"
  },
  "telephone": "+1-555-555-5555",
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
      "opens": "08:00",
      "closes": "18:00"
    }
  ],
  "priceRange": "$$"
}
Review / AggregateRating

用途: レビューのページ、またはレビューを持つ製品

注: 自社製品に対する自己評価(自分の製品をレビューすること)はガイドラインに違反します。レビューは実際の顧客によるものでなければなりません。

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Example Product",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "bestRating": "5",
    "worstRating": "1",
    "ratingCount": "523"
  },
  "review": [
    {
      "@type": "Review",
      "author": {
        "@type": "Person",
        "name": "John Smith"
      },
      "datePublished": "2024-01-10",
      "reviewRating": {
        "@type": "Rating",
        "ratingValue": "5"
      },
      "reviewBody": "Excellent product, exceeded my expectations..."
    }
  ]
}
Event

用途: イベントページ、ウェビナー、カンファレンス

必須プロパティ:

  • name
  • startDate
  • location(オンラインの場合は eventAttendanceMode)
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "Annual Marketing Conference",
  "startDate": "2024-06-15T09:00:00-07:00",
  "endDate": "2024-06-15T17:00:00-07:00",
  "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "VirtualLocation",
    "url": "https://example.com/conference"
  },
  "image": "https://example.com/conference.jpg",
  "description": "Join us for our annual marketing conference...",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/conference/tickets",
    "price": "199",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-01-01"
  },
  "performer": {
    "@type": "Organization",
    "name": "Example Company"
  },
  "organizer": {
    "@type": "Organization",
    "name": "Example Company",
    "url": "https://example.com"
  }
}

1ページに複数のスキーマタイプを記述する

1ページに複数のスキーマタイプを記述できますし、多くの場合は記述すべきです。

{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "Organization",
      "@id": "https://example.com/#organization",
      "name": "Example Company",
      "url": "https://example.com"
    },
    {
      "@type": "WebSite",
      "@id": "https://example.com/#website",
      "url": "https://example.com",
      "name": "Example",
      "publisher": {
        "@id": "https://example.com/#organization"
      }
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [...]
    }
  ]
}

検証とテスト

ツール
よくあるエラー

必須プロパティの欠落

  • 必須フィールドについては Google のドキュメントを確認してください
  • schema.org の最低要件とは異なります

無効な値

  • 日付は ISO 8601 形式でなければなりません
  • URL は完全修飾されている必要があります
  • 列挙値は正確な値を使用しなければなりません

ページコンテンツとの不一致

  • スキーマが表示されているコンテンツと一致していません
  • 表示されているレビューがない製品に評価を付けている
  • 表示されている価格と一致しない価格

実装パターン

静的サイト
  • HTML テンプレートに JSON-LD を直接追加します
  • 再利用可能なスキーマにはインクルード/パーシャルを使用します
動的サイト(React、Next.js など)
  • スキーマをレンダリングするコンポーネント
  • SEO のためにサーバーサイドでレンダリングします
  • データを JSON-LD にシリアライズします
// Next.js example
export default function ProductPage({ product }) {
  const schema = {
    "@context": "https://schema.org",
    "@type": "Product",
    name: product.name,
    // ... other properties
  };

  return (
    <>
      <Head>
        <script
          type="application/ld+json"
          dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
        />
      </Head>
      {/* Page content */}
    </>
  );
}
CMS/WordPress
  • プラグイン(Yoast、Rank Math、Schema Pro)
  • テーマの変更
  • カスタムフィールドから構造化データへの変換

出力形式

スキーマの実装
// Full JSON-LD code block
{
  "@context": "https://schema.org",
  "@type": "...",
  // Complete markup
}
配置手順

コードを追加する場所と方法

テストチェックリスト
  • リッチリザルトテストで検証される
  • エラーや警告がない
  • ページのコンテンツと一致している
  • 必須プロパティがすべて含まれている

質問事項

さらに詳しい情報が必要な場合:

  1. これはどのような種類のページですか?
  2. どのようなリッチリザルトを実現したいですか?
  3. スキーマに反映できるデータは何ですか?
  4. ページには既存のスキーマがありますか?
  5. 実装に使用している技術スタックは何ですか?

関連スキル

  • review-seo-audit:スキーマのレビューを含む、SEO 全般について
  • tool-programmatic-seo:大規模なテンプレート化スキーマについて
  • analytics-tracking:リッチリザルトの効果測定について

コメント