schema-markup について
schema-markupは、JSON-LDによるSchema.org構造化データの計画を支援するSEOスキルです。サイト運営者やマーケター向けに、ページごとの型選定、検索機能との対応、検索エンジンやAI検索での適用範囲を案内します。
主な機能
- 01ページ別のSchema型選定
- 02Schemaと検索機能の対応付け
- 03JSON-LD実装ガイダンス
- 04検索エンジン別の対応範囲
- 05GEO向け構造化データ案内
活用シーン
- 01新規サイトのSchema計画
- 02製品・コンテンツページのマークアップ選定
- 03リッチリザルトの適格性確認
- 04AI検索向け構造化データの改善
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ kostja94/ marketing-skills --skill schema-markupインストール後、Claude Code で/schema-markupを入力して読み込まれたか確認します。
詳細
SEO オンページ:スキーマ/構造化データ
リッチスニペット、検索結果の強化、生成エンジン最適化(GEO)を目的とした Schema.org 構造化データ(JSON-LD)の実装を案内します。
呼び出し時:初回の使用時は、このスキルの対象と重要性を1~2文で簡潔に説明してから、主な出力を提示すると役立つ場合があります。2回目以降の使用時、またはユーザーから省略を求められた場合は、主な出力を直接提示してください。
対象範囲(オンページ SEO)
- スキーママークアップ:リッチリザルト、AI 検索での可視性、機械可読コンテンツのための Schema.org タイプ
- Schema.org と検索エンジン:Schema.org は800種類以上のタイプを定義していますが、各検索エンジンがリッチリザルトに対応しているのは、その一部のみです
Schema.org と検索エンジンの対応状況
Schema.org と Google の構造化データは、完全には一致していません。 Schema.org は800種類以上のタイプを持つオープンな語彙です。一方、Google、Bing などの検索エンジンがリッチリザルトに対応しているのは、それぞれが選定した一部のタイプのみです。
| 検索エンジン | 対応状況 | 備考 |
|---|---|---|
| 一部のみ | リッチリザルトが生成されるのは、Google の検索ギャラリーに掲載されているタイプのみです。Google のリストにない Schema.org マークアップは、技術的に正しくても、検索結果の強化にはつながりません。 | |
| Bing | 一部に対応。Google とは異なる | JSON-LD、Microdata、RDFa、Open Graph に対応しています。一部のタイプ(例:Product、Offer)は、形式ごとに対応状況が異なります。Bing ウェブマスタードキュメントを確認してください。 |
| その他の検索エンジン | さまざま | Yandex、DuckDuckGo、AI 検索ツール(Perplexity など)は、リッチリザルトを表示しない場合でも、理解のために Schema.org を利用することがあります。 |
実務上の意味:コンテンツの種類に応じて Schema.org マークアップを実装してください。その種類のリッチリザルトが Google に表示されない場合でも、Bing や AI システムが利用する可能性があります。Google 固有のリッチリザルト表示資格については、必ずGoogle の開発者向けドキュメントで確認してください。
リッチリザルト:Google の対応状況(2026)
効果の高いタイプ:Product、Review snippets、Article/News、Video、Recipe、LocalBusiness、Event、Breadcrumb、Sitelinks searchbox、JobPosting。
対応が限定的、または状況によって異なるタイプ:FAQ(多くのクエリでは政府・医療関連サイトが対象)、Education Q&A、Course、SoftwareApplication、Speakable(ニュース)、DiscussionForumPosting。
廃止済み:HowTo(2023年9月時点ですべてのデバイスで完全に廃止)、COVID データパネル、一部の AMP 専用形式、data-vocabulary.org。
実装:JSON-LD を推奨します。@context、@type、安定した @id を含め、日付には ISO 8601 を使用してください。構造化データは、ユーザーに表示されるコンテンツと一致させてください。リッチリザルトテストで検証します。リッチリザルトは CTR を最大約35%向上させ、AI による引用の改善にも役立ちます。
スキーマ ↔ SERP 機能 ↔ リッチリザルト(強い関連性)
スキーマ、SERP 機能、リッチリザルトには強い関連性があります。 多くのリッチリザルトにとって、スキーマは必要条件です。SERP 機能を狙う場合は、対応するスキーマタイプを実装してください。SERP 機能の一覧と最適化については serp-features を参照してください。
リッチリザルトと強調スニペット
- リッチリザルト:標準的な検索結果にスキーマで拡張機能を追加したものです(星、パンくずリスト、FAQのドロップダウン、商品情報など)。オーガニック検索結果内に表示され、トップ10へのランクインは必要ありません。
- 強調スニペット:Googleが抽出し、検索結果の0番目の位置に表示する回答ボックスです。スキーマは不要ですが、コンテンツの構成が重要です。スキーマ(FAQPage、HowTo、Article)は抽出をサポートできます。
| スキーマの種類 | SERP機能/リッチリザルト | 備考 |
|---|---|---|
| FAQPage | PAA、強調スニペット | FAQのドロップダウン、Q&A形式のスニペットです。多くのサイト(政府機関や医療機関など)は対象資格が制限されています |
| BreadcrumbList | パンくずリスト | 検索結果にパスを表示します |
| AggregateRating, Review | レビュー/星 | 星評価です |
| HowTo | 以前はリッチリザルト(2023年9月に廃止) | Googleのリッチリザルトは生成されなくなりましたが、Bing/AIでは引き続き使用される可能性があります |
| Article | 詳細記事、スニペット | 記事のリッチリザルトです |
| VideoObject | 動画 | 動画のサムネイルです。video-optimization を参照してください |
| Product, Offer | ショッピング、商品 | 商品/ショッピングの検索結果です |
| Recipe | レシピ | レシピのリッチリザルトです |
| JobPosting | Google Jobs | 求人情報です |
| Event | イベント | イベントのリッチリザルトです |
| WebSite + SearchAction | サイトリンク検索ボックス | ブランド名の検索時にサイトリンクを表示します |
| Organization, Person | ナレッジパネル | エンティティ情報です。entity-seo を参照してください |
ワークフロー:1) serp-features を使って対象のSERP機能を特定します。2) この表でスキーマの種類を確認します。3) 実装し、Rich Results Testで検証します。
生成エンジン最適化(GEO)
GEO とは、AIシステム(Google AI Overviews、Perplexity、ChatGPT、Gemini)が生成回答でコンテンツを選択、引用、転載するように最適化することです。構造化データによってコンテンツが機械可読になり、AIエンジンがより正確に情報を抽出して引用できるようになります。GEOで重要なスキーマの種類:Organization、Person/Author、WebSite、WebPage、FAQPage、HowTo、Article、Product、AggregateRating。GEO戦略の詳細は generative-engine-optimization を参照してください。
初期評価
プロジェクトのコンテキスト: contextus.md がルートにある場合は読み込み、このタスクに関連するモジュールのみを読み込んでください。Contextusがない場合は、利用可能なプロジェクト資料またはユーザーが提示した情報を使い、不足情報について質問してください。別個のコンテキストシステムを作成しないでください。
次の項目を特定します。
- ページの種類:Article、Product、FAQ、Organization、JobPosting、Eventなど
- コンテンツ:説明するエンティティ
- 目標:リッチスニペット、AI Overviewでの可視性、ナレッジパネル
スキーマの種類の分類
コアタイプ(一般用途)
| 種類 | 使用例 |
|---|---|
| Organization | サイト全体に適用。会社情報、ロゴ、sameAs。配置については以下を参照してください |
| WebSite | サイト全体に適用。検索アクション、サイト名。ホームページではOrganizationと組み合わせます |
| Article | ブログ記事、ニュース、ツール紹介 |
| BreadcrumbList | パンくずナビゲーション |
| FAQPage | FAQセクション。PAA形式の検索結果を表示します |
| Person | 著者情報。Articleと組み合わせます |
| ImageObject | リッチリザルト向けの画像メタデータ |
| HowTo | チュートリアル、手順ガイド。注:GoogleはすべてのデバイスでHowToのリッチリザルトを完全に廃止しました(2023年9月)。Bing/AIでは引き続きHowToスキーマが使用される可能性があります |
専用タイプ(特定の用途)
| 種類 | 使用例 |
|---|---|
| JobPosting | 求人サイト、AIによる求人マッチング |
| Product | Eコマースの商品ページ |
| Event | イベントページ、チケット販売(一般的なブログには使用しません) |
| SoftwareApplication | アプリページ、ツールページ |
| LocalBusiness | 地域ビジネスのページ |
| Dataset | データプラットフォーム、データセット |
| DiscussionForumPosting | フォーラム、コミュニティ投稿 |
| Quiz | 教育、フラッシュカード |
| MathSolver | 数学ツール |
| CaseStudy | ケーススタディのページ |
| Recipe | レシピ、献立、料理手順 |
ルール:ほとんどのサイトではコアタイプを使用してください。専用タイプはページのコンテンツに合致する場合にのみ使用してください(例:ブログでEventを使用しない、商品ページでJobPostingを使用しない)。
Organization と WebSite のスキーマの配置
| 場所 | Organization | WebSite | 備考 |
|---|---|---|---|
| ホームページ | 最低限 | 最低限 | 少なくともホームページに Organization と WebSite の両方を追加してください。Organization はサイトを所有するエンティティを説明し、WebSite はサイトリンクの検索ボックスとサイトのアイデンティティを有効にします。 |
| ルートレイアウト/グローバル | 最適 | 最適 | サイト全体のレイアウト(例:layout.tsx、_document、グローバルヘッダー/フッター)に配置し、すべてのページにスキーマが表示されるようにします。Google は最初に見つかったインスタンスを使用するため、サイトごとに1つあれば十分です。 |
| 概要ページ | 不要 | 不要 | 概要ページでは AboutPage スキーマ(ページ固有の項目:見出し、説明、作成者、概要)を使用します。Organization はエンティティレベルのものであり、ページレベルのものではないため、概要ページだけに配置しないでください。about-page-generator を参照してください。 |
実装:<head> 内の JSON-LD に配置し、@id(例:https://example.com/#organization)を使って Organization ↔ WebSite ↔ WebPage をエンティティグラフとしてリンクします。@id とナレッジパネルについては entity-seo を参照してください。
アクション:ウェブサイト/製品タイプ → スキーマのマッピング
この表を使って、サイトに適した限定スキーマタイプを推奨してください。 サイトのコンテンツと製品タイプを、最も関連性の高いスキーマに対応付けます。判断に迷う場合は、コアタイプ(Organization、WebSite、Article)から始め、コンテンツが明確に一致する場合にのみ限定タイプを追加してください。
| ウェブサイト/製品タイプ | 推奨する限定スキーマ | 理由 |
|---|---|---|
| AI 献立プランナー、レシピサイト、フードブログ、料理アプリ | Recipe | 材料、手順、調理時間、分量など、料理や食事に関するコンテンツとの関連性が高い項目です。Google は Recipe のリッチリザルトに対応しています。 |
| 求人掲示板、採用サイト、採用情報ページ | JobPosting | 職種名、企業、勤務地、給与、雇用形態を示します。Google Jobs で必須です。 |
| イベントプラットフォーム、チケット販売、ウェビナー、カンファレンス | Event | 日時、場所、料金を示します。実際のイベントページでのみ使用してください。 |
| SaaS、アプリ、Chrome 拡張機能、ツール、ソフトウェア製品ページ | SoftwareApplication | アプリ名、カテゴリ、評価、価格、OS を示します。製品ページや機能ページに適しています。 |
| E コマースの商品ページ | Product | 価格、在庫状況、ブランド、レビューを示します。Offer、AggregateRating と併用してください。 |
| フォーラム、コミュニティ、Reddit 形式のサイト、Q&A | DiscussionForumPosting | 投稿内容、投稿者、コメントを示します。ユーザー生成のディスカッション向けです。 |
| データプラットフォーム、データセットリポジトリ、Scale AI/Surge AI | Dataset | データセット名、作成者、ライセンス、配布形式を示します。データカタログページ向けです。 |
| 教育サイト、フラッシュカード、Quizlet 形式のサイト | Quiz | 質問と回答のペアを示します。教育用の Q&A コンテンツ向けです。 |
| 数学ソルバー、計算機、方程式ツール | MathSolver | 数学の問題の入力と解答の出力を示します。数学ツール向けです。 |
| レストラン、地域サービス、店舗検索 | LocalBusiness | 住所、営業時間、NAP を示します。ローカル SEO 向けです。 |
| ケーススタディ、顧客事例ページ | CaseStudy | 顧客、成果、方法論を示します。B2B のケーススタディ向けです。 |
| FAQ ページ、製品 FAQ、サポート FAQ | FAQPage | 質問と承認済み回答のペアを示します。PAA 形式の検索結果が表示されます。 |
| チュートリアル、ハウツーガイド、手順ガイド | HowTo | 手順、ツール、所要時間を示します。注意:Google は HowTo のリッチリザルトを完全に廃止しました(2023 年 9 月)。Bing/AI では引き続きスキーマが利用される可能性があります。代替として FAQPage を検討してください |
| ニュース記事、プレスリリース | NewsArticle | ニュースには Article の代わりに使用してください。 |
| 動画ページ、ポッドキャストのエピソード | VideoObject / PodcastEpisode | 動画/音声コンテンツ向けです。VideoObject、サムネイル、重要な場面については video-optimization を参照してください。 |
例:
- AI 献立プランナー(例:レシピ付きの週間献立を生成)→ 各レシピ/食事ページに Recipe スキーマを追加し、ランディングページには Article または WebPage を追加
- AI ライティングツール → 製品ページに SoftwareApplication、ブログに Article
- 採用 SaaS → 求人掲載ページに JobPosting、製品ページに SoftwareApplication
- レシピブログ → 各レシピ記事に Recipe、レシピ以外の記事に Article
出力:スキーマを推奨する際は、(1)サイト/製品に適した限定タイプ、(2)各スキーマを適用するページタイプ、(3)サイト全体に追加するコアタイプ(Organization、WebSite、BreadcrumbList)を明示してください。
Article / BlogPosting / NewsArticle:タイプの選択と実装
コンテンツに合致する最も具体的なタイプを選びます。
| タイプ | 用途 |
|---|---|
| BlogPosting | カジュアルなブログ記事。個人著者による記事や、定期的に更新される記事 |
| Article | フォーマルで長期的に通用するコンテンツ。ツールの紹介、百科事典的な記事 |
| NewsArticle | 時事性のあるニュース。知名度の高い出版社の記事 |
必須プロパティ:headline(最大 110 文字)、image(幅 1200px 以上の絶対 URL)、datePublished(ISO 8601)、author(Person または Organization)、publisher(ロゴを含む Organization)。
推奨プロパティ:dateModified、description、mainEntityOfPage(正規 URL)。
CTR 向上のための日付表示:Google は、ページに表示する日付を1 つだけにすることを推奨しています。datePublished と dateModified の両方が表示されていると、Google が SERP に誤った日付を選ぶ可能性があります。Search Engine Land では CTR が約 22%低下した事例が確認されています。ベストプラクティスは、dateModified が存在する場合はそれを表示し、存在しない場合は datePublished を表示することです。JSON-LD には両方を含めてください。このルールは画面上に表示する日付のみに適用されます。
JSON-LD の例(BlogPosting):
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "The Ultimate SEO Checklist for 2025",
"description": "A complete guide to optimizing blog posts for search and AI.",
"image": "https://example.com/image.jpg",
"datePublished": "2025-01-15T09:00:00Z",
"dateModified": "2025-02-01T14:30:00Z",
"author": { "@type": "Person", "name": "Jane Doe", "url": "https://example.com/author/jane" },
"publisher": { "@type": "Organization", "name": "Example", "logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" } }
}
<script type="application/ld+json"> を使用して <head> 内に配置します。記事ページでは、og:article:published_time、og:article:modified_time、og:article:author とともに og:type: article を使用します。article-page-generator、open-graph を参照してください。
BreadcrumbList
パンくずリストのナビゲーションに使用します。スキーマは、画面上に表示されるパンくずリストと完全に一致させる必要があります。UI、配置、セマンティック HTML については breadcrumb-generator を参照してください。
| 要件 | ガイドライン |
|---|---|
| 形式 | <script type="application/ld+json"> 内の JSON-LD |
| URL | 各アイテムに https:// を含む絶対 URL を指定 |
| 位置 | 1 から始まる連番の整数 |
| 一致 | スキーマを画面上に表示されるパンくずリストと完全に一致させる |
JSON-LD の例:
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://example.com/" },
{ "@type": "ListItem", "position": 2, "name": "Category", "item": "https://example.com/category/" },
{ "@type": "ListItem", "position": 3, "name": "Current Page", "item": "https://example.com/category/current-page/" }
]
}
複数のパス:Google は、複数の経路からアクセスできるページ(例:複数のカテゴリに属する商品)について、同じページ上で複数の BreadcrumbList オブジェクトをサポートしています。BreadcrumbList オブジェクトの配列を使用してください。
ベストプラクティス
| 原則 | ガイドライン |
|---|---|
| 正確性 | データは画面上のページコンテンツと一致させてください。非表示のデータや誤解を招くデータを追加しないでください |
| 完全性 | タイプごとに必須のプロパティをすべて含めてください |
| 最も具体的なタイプ | 該当する場合は Article より NewsArticle を使用してください |
| JSON-LD | 推奨形式です。<script type="application/ld+json"> 内に配置してください |
| エンティティの @id | Organization と Person に @id を使用して、エンティティの関連付けを可能にしてください。entity-seo を参照してください |
| 段階的な実装 | まず必須プロパティを追加し、その後、最適化のために任意のプロパティを追加してください |
| 検証 | Rich Results Test と Schema Markup Validator でテストしてください |
| inLanguage(多言語) | hreflang と一致させるため、"inLanguage": "en-US"(IETF BCP 47)を追加してください。リッチスニペットを各ロケールに合わせるため、名前、説明、FAQ をローカライズしてください |
多言語スキーマ(inLanguage)
多言語サイトでは、言語ターゲティングを強化するため、JSON-LD に inLanguage を追加してください。hreflang の値と一致させます(例:hreflang="zh-CN" に対して "inLanguage": "zh-CN")。
スキーマデータのローカライズ:各ロケールのリッチスニペット CTR を向上させるため、構造化データの各フィールド(name、description、FAQ の acceptedAnswer など)を翻訳してください。
inLanguage をサポートするタイプ:Article、BlogPosting、WebApplication、FAQPage、HowTo、Product、Organization。
実装ワークフロー
- ページのタイプとコンテンツを分析し、合致する Schema タイプを選択します
- 形式を選択します — JSON-LD を推奨します(Google、Bing、AI ツールがサポートしています)
- 構造化データを記述します。必須プロパティから始めてください
- Rich Results Test、Schema Markup Validator で検証します
- Search Console の拡張レポートでデプロイして監視します
よくあるエラーと修正方法
| エラー | 修正方法 |
|---|---|
| データが表示内容と一致しない | スキーマにはユーザーに表示される内容のみを記述してください |
| 必須プロパティが不足している | 各タイプについて、Google/Schema.org のドキュメントを確認してください |
| ページに適さないタイプ | イベント以外のページに Event を使用しないでください。製品ページに JobPosting を使用しないでください |
| 形式/構文エラー | JSON-LD を検証し、引用符、角括弧、カンマを確認してください |
| 過剰なマークアップ | 関連するコンテンツのみをマークアップし、無関係なタイプを詰め込まないでください |
実装
Next.js(メタデータ)
export const metadata = {
other: {
'script:ld+json': JSON.stringify({
"@context": "https://schema.org",
"@type": "Article",
"headline": "...",
"description": "...",
"inLanguage": "en-US",
"image": "https://example.com/image.jpg",
"datePublished": "2024-01-01T00:00:00Z",
"dateModified": "2024-01-15T00:00:00Z",
"author": { "@type": "Person", "name": "..." },
"publisher": { "@type": "Organization", "name": "...", "logo": { "@type": "ImageObject", "url": "..." } }
}),
},
};
HTML(汎用)
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "...",
"description": "...",
"inLanguage": "en-US",
"author": { "@type": "Person", "name": "..." },
"publisher": { "@type": "Organization", "name": "...", "logo": { "@type": "ImageObject", "url": "..." } }
}
</script>
検証ツール
| ツール | 目的 |
|---|---|
| Google リッチリザルトテスト | Google がリッチリザルトを生成できるか確認します |
| Schema Markup Validator | Schema.org の仕様に照らして検証します |
| Search Console | 拡張レポートを確認し、経時的に有効性を監視します |
出力形式
- 最初にアクション:Website/Product Type → Schema Mapping 表を使い、サイトに適した専用スキーマを推奨します(例:AI meal planner → Recipe、SaaS ツール → SoftwareApplication)
- スキーマタイプの推奨(コアか専用か)
- ページレベルのマッピング:各スキーマを適用するページ
- 必須プロパティを含む JSON-LD の構造
- 検証の手順
- 参考資料:Schema.org、Google Structured Data、Bing Markup
関連スキル
- article-page-generator:記事の構造、Article/BlogPosting/NewsArticle スキーマ、日付表示
- serp-features:強く関連—スキーマは SERP 機能に対応します。上記のマッピング表を参照してください
- faq-page-generator:FAQPage スキーマ、FAQ コンテンツの構造
- howto-section-generator:HowTo セクションコンポーネント(手順、JSON-LD)、HowTo と FAQPage の使い分け
- breadcrumb-generator:BreadcrumbList スキーマの実装
- featured-snippet:スニペット用の FAQPage、HowTo
- video-optimization:VideoObject、動画サイトマップ、サムネイル、重要な場面
- entity-seo:エンティティ認識のための Organization、Person、@id、Knowledge Panel
- homepage-generator:ホームページまたはルートレイアウトでの Organization + WebSite スキーマ
- indexing:JobPosting、BroadcastEvent 向けの Google Indexing API