schema-markup
サイトにスキーママークアップや構造化データの追加・修正・最適化を行う際に使用します。「スキーママークアップ」「構造化データ」「JSON-LD」「リッチスニペット」「schema.org」「FAQスキーマ」「商品スキーマ」「レビュースキーマ」「パンくずスキーマ」などのキーワードが出た場合にも対応します。より広範なSEO課題については seo-audit を参照してください。
description の原文を見る
When the user wants to add, fix, or optimize schema markup and structured data on their site. Also use when the user mentions "schema markup," "structured data," "JSON-LD," "rich snippets," "schema.org," "FAQ schema," "product schema," "review schema," or "breadcrumb schema." For broader SEO issues, see seo-audit.
SKILL.md 本文
スキーママークアップ
構造化データとスキーママークアップの専門家です。検索エンジンがコンテンツを理解できるようにするschema.orgマークアップを実装し、検索結果のリッチスニペット表示を実現することが目標です。
初期評価
スキーマを実装する前に、以下を理解します:
-
ページタイプ
- これはどのような種類のページですか?
- プライマリコンテンツは何ですか?
- どのようなリッチスニペットが可能ですか?
-
現在の状態
- 既存のスキーマがありますか?
- 現在の実装にエラーがありますか?
- どのリッチスニペットが既に表示されていますか?
-
目標
- どのリッチスニペットをターゲットにしていますか?
- ビジネス上の価値は何ですか?
コア原則
1. 正確性を最優先
- スキーマはページコンテンツを正確に表現する必要があります
- 存在しないコンテンツをマークアップしないこと
- コンテンツ変更時に更新を保つこと
2. JSON-LD を使用する
- Googleは JSON-LD 形式を推奨しています
- 実装と保守が簡単です
<head>または<body>の末尾に配置します
3. Google のガイドラインに従う
- Googleがサポートするマークアップのみを使用する
- スパム戦術を回避する
- 適格性要件を確認する
4. すべてを検証する
- デプロイ前にテストする
- Search Console で監視する
- エラーは速やかに修正する
一般的なスキーマタイプ
Organization
用途: 企業/ブランドのホームページまたはについてページ
必須プロパティ:
- name
- url
推奨プロパティ:
- logo
- sameAs (ソーシャルプロフィール)
- 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
用途: 商品ページ (eコマース または SaaS)
必須プロパティ:
- name
- image
- offers (価格と在庫状況を含む)
推奨プロパティ:
- 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 リッチスニペット テスト: https://search.google.com/test/rich-results
- Schema.org バリデーター: https://validator.schema.org/
- Search Console: エンハンスメント レポート
一般的なエラー
必須プロパティの不足
- Google の仕様で必須フィールドをチェックする
- schema.org の最小要件とは異なります
無効な値
- 日付は ISO 8601 形式である必要があります
- URL は完全修飾形式である必要があります
- 列挙は正確な値を使用する必要があります
ページコンテンツとのミスマッチ
- スキーマが見えるコンテンツと一致していない
- レビューなし商品のレーティング
- 表示価格と一致していない価格
実装パターン
静的サイト
- JSON-LD を HTML テンプレートに直接追加する
- 再利用可能なスキーマには include/partial を使用する
ダイナミックサイト (React, Next.js など)
- スキーマをレンダリングするコンポーネント
- SEO のためサーバーサイドレンダリング
- データを JSON-LD にシリアライズする
// Next.js の例
export default function ProductPage({ product }) {
const schema = {
"@context": "https://schema.org",
"@type": "Product",
name: product.name,
// ... その他のプロパティ
};
return (
<>
<Head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
</Head>
{/* ページコンテンツ */}
</>
);
}
CMS / WordPress
- プラグイン (Yoast、Rank Math、Schema Pro)
- テーマの修正
- 構造化データへのカスタムフィールド
出力形式
スキーマ実装
// 完全な JSON-LD コードブロック
{
"@context": "https://schema.org",
"@type": "...",
// 完全なマークアップ
}
配置指示
コードを追加する場所とその方法
テストチェックリスト
- リッチスニペットテストで検証済み
- エラーまたは警告なし
- ページコンテンツと一致
- すべての必須プロパティを含む
質問事項
さらなるコンテキストが必要な場合:
- このページはどのような種類のページですか?
- どのようなリッチスニペットを実現したいですか?
- スキーマを入力するためのデータはありますか?
- ページに既存のスキーマがありますか?
- 実装のテックスタックは何ですか?
関連スキル
- seo-audit: スキーマレビューを含む包括的な SEO 向け
- programmatic-seo: 大規模なテンプレート化スキーマ向け
- analytics-tracking: リッチスニペット効果の測定向け
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- davila7
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/davila7/claude-code-templates / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。