本文へスキップ

構造化データ(Schema)とは?

image

定義

構造化データ(Structured Data)またはスキーママークアップ(Schema Markup)は、検索エンジンがより理解しやすいように、ウェブページのコンテンツを標準化された形式で表示するコードです。一般的なHTMLが人が読むためのものであるのに対し、構造化データは機械(検索エンジン)が正確に理解するためのものです。例えば、「ジェームズ・ボンド」というテキストがある場合、これが映画のタイトルなのか人物名なのかを検索エンジンが明確に知ることができるようにメタデータを追加します。

構造化データは主にSchema.orgの語彙を使用し、JSON-LD、Microdata、RDFaのような形式で実装されます。その中でJSON-LD(JavaScript Object Notation for Linked Data)が最も広く使用されており、Googleも推奨しています。JSON-LDはHTMLと分離されているため管理が簡単で、スクリプトタグ内にJSON形式で記述されるため、既存のHTML構造を変更する必要がありません。

構造化データを正しく実装すると、検索結果でリッチスニペット(Rich Snippet)、リッチカード(Rich Card)、ナレッジグラフ(Knowledge Graph)のような強化された検索結果を得ることができます。例えば、レシピページに構造化データを追加すると、調理時間、カロリー、評価などが検索結果に直接表示され、クリック率を大幅に高めることができます。

特徴

  • 検索結果の向上:構造化データを使用すると、評価、価格、在庫状況、イベント日時などが検索結果に直接表示され、クリック率(CTR)を大幅に向上させることができます。
  • 音声検索の最適化:Googleアシスタント、Siri、Alexaなどの音声アシスタントがウェブページの情報をより正確に理解し、音声回答に活用できます。
  • ナレッジパネルへの露出:適切な構造化データを使用すると、Googleのナレッジパネルやカード形式で検索結果の上部に表示される可能性があります。
  • さまざまなコンテンツタイプのサポート:製品、レシピ、イベント、記事、レビュー、動画、FAQ、求人など、非常に多様なコンテンツタイプのスキーマが存在します。
  • 検索エンジンの理解度向上:ページのコンテキストと関係を明確に伝えることで、検索エンジンがコンテンツをより正確に分類し、関連する検索クエリにマッチングさせることができます。

活用方法

構造化データを効果的に実装・管理する方法は以下の通りです。

ステップ1:コンテンツタイプの識別 まず、ウェブページのコンテンツがどのタイプかを把握します。Schema.orgで提供される数百のスキーマの中から適切なものを選択します。一般的によく使用されるタイプは、Article(記事)、Product(製品)、Recipe(レシピ)、Event(イベント)、Organization(組織)、Person(人物)、LocalBusiness(地域ビジネス)、Review(レビュー)などです。

ステップ2:JSON-LDコードの作成 選択したスキーマタイプに合わせてJSON-LD形式で構造化データを作成します。Schema.orgのドキュメントを参照して、必須プロパティと推奨プロパティを含めます。Googleの構造化データマークアップヘルパーを使用すると、より簡単に作成できます。

ステップ3:HTMLへの挿入 作成したJSON-LDコードをウェブページの<head>または<body>タグ内に<script type="application/ld+json">タグで囲んで挿入します。一般的に<head>セクションに配置することが推奨されます。

ステップ4:テストと検証 Googleのリッチリザルトテストツール(Rich Results Test)またはスキーママークアップ検証ツール(Schema Markup Validator)を使用して、構造化データが正しく実装されているかを確認します。エラーや警告があればすぐに修正します。

ステップ5:Google Search Consoleでのモニタリング Google Search Consoleの「拡張」セクションで構造化データの状態をモニタリングします。エラーが発見されると通知を受け取ることができ、どのページに問題があるかを確認できます。

ステップ6:継続的なアップデート コンテンツが変更されるたびに構造化データも一緒に更新する必要があります。特に価格、在庫状況、イベント日時のように頻繁に変わる情報は正確に維持する必要があります。自動化ツールやCMSプラグインを使用すると、管理がより簡単になります。

例1:ブログ記事(Article)スキーマ

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "バックリンクとは?SEO初心者のための完全ガイド",
"image": [
"https://zero-coke.com/img/backlink-guide.jpg"
],
"datePublished": "2024-03-23T09:00:00+09:00",
"dateModified": "2024-03-23T14:30:00+09:00",
"author": {
"@type": "Person",
"name": "田中太郎",
"url": "https://zero-coke.com/author/tanaka"
},
"publisher": {
"@type": "Organization",
"name": "Zero-Coke",
"logo": {
"@type": "ImageObject",
"url": "https://zero-coke.com/logo.png"
}
},
"description": "バックリンクの定義、特徴、活用方法を初心者にも理解しやすく説明します。",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://zero-coke.com/blog/what-is-backlink"
}
}
</script>

例2:製品(Product)スキーマ

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "ワイヤレスBluetoothイヤホン XYZ-2000",
"image": [
"https://example.com/photos/earphone-front.jpg",
"https://example.com/photos/earphone-side.jpg"
],
"description": "ノイズキャンセリング機能搭載のプレミアムワイヤレスイヤホン",
"brand": {
"@type": "Brand",
"name": "TechSound"
},
"sku": "XYZ2000-BLK",
"mpn": "925872",
"offers": {
"@type": "Offer",
"url": "https://example.com/product/xyz2000",
"priceCurrency": "JPY",
"price": "12900",
"priceValidUntil": "2024-12-31",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.7",
"reviewCount": "342"
}
}
</script>

例3:レシピ(Recipe)スキーマ

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Recipe",
"name": "簡単キムチチゲのレシピ",
"image": "https://example.com/photos/kimchi-jjigae.jpg",
"author": {
"@type": "Person",
"name": "シェフ パク・ヨンヒ"
},
"datePublished": "2024-03-20",
"description": "20分で完成する美味しいキムチチゲ",
"prepTime": "PT10M",
"cookTime": "PT10M",
"totalTime": "PT20M",
"recipeYield": "4人分",
"recipeCategory": "メイン料理",
"recipeCuisine": "韓国料理",
"keywords": "キムチチゲ、韓国料理、簡単レシピ",
"nutrition": {
"@type": "NutritionInformation",
"calories": "250カロリー"
},
"recipeIngredient": [
"熟成キムチ 300g",
"豚肉 200g",
"豆腐 1/2丁",
"ネギ 1本",
"粉唐辛子 大さじ1"
],
"recipeInstructions": [
{
"@type": "HowToStep",
"text": "キムチと豚肉を一口サイズに切ります。"
},
{
"@type": "HowToStep",
"text": "鍋でキムチと肉を炒めます。"
},
{
"@type": "HowToStep",
"text": "水を入れて沸騰させ、豆腐とネギを入れます。"
}
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"ratingCount": "127"
}
}
</script>

例4:FAQ スキーマ

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "バックリンクは何個あれば効果的ですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "バックリンクの数よりも質がはるかに重要です。権威のあるサイトからのバックリンク1つが、低品質サイト100個のバックリンクよりも価値がある場合があります。"
}
},
{
"@type": "Question",
"name": "バックリンクを購入するのはどうですか?",
"acceptedAnswer": {
"@type": "Answer",
"text": "バックリンクの購入はGoogleのガイドラインに明確に違反する行為です。発覚した場合、深刻なペナルティを受ける可能性があり、最悪の場合、検索結果から完全に除外される可能性もあります。"
}
}
]
}
</script>

例5:イベント(Event)スキーマ

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Event",
"name": "2024 ウェブ開発カンファレンス",
"description": "最新のウェブ開発トレンドと技術を学ぶ年次カンファレンス",
"image": "https://example.com/conference-2024.jpg",
"startDate": "2024-09-15T09:00:00+09:00",
"endDate": "2024-09-15T18:00:00+09:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"location": {
"@type": "Place",
"name": "ソウル COEX コンベンションセンター",
"address": {
"@type": "PostalAddress",
"streetAddress": "永東大路513",
"addressLocality": "ソウル",
"addressRegion": "江南区",
"postalCode": "06164",
"addressCountry": "KR"
}
},
"organizer": {
"@type": "Organization",
"name": "韓国ウェブ開発者協会",
"url": "https://example.com"
},
"offers": {
"@type": "Offer",
"url": "https://example.com/tickets",
"price": "50000",
"priceCurrency": "KRW",
"availability": "https://schema.org/InStock",
"validFrom": "2024-06-01T00:00:00+09:00"
}
}
</script>

メリットとデメリット

メリット

  • 検索結果の可視性向上:構造化データを使用すると、検索結果でより目立つリッチスニペットとして表示され、クリック率を大幅に高めることができます。研究によると、リッチスニペットがある検索結果は平均30%以上高いクリック率を示します。

  • 検索エンジンの理解度増加:ページのコンテンツとコンテキストを明確に伝えることで、検索エンジンがより正確な検索結果を提供できるようにサポートします。これは間接的に検索順位の向上にも寄与できます。

  • 音声検索とAIの最適化:構造化データは、音声アシスタントとAIベースの検索エンジンが情報を簡単に抽出して活用できるようにし、未来の検索トレンドに備えることができます。

デメリット

  • 実装の複雑さ:正しい構造化データを作成するには、Schema.orgの膨大なドキュメントを理解し、JSON-LD形式を正確に記述する必要があります。特に複雑なページでは、複数のスキーマタイプをネストしたり組み合わせたりする必要がある場合があります。

  • メンテナンス負担:コンテンツが変更されるたびに構造化データも一緒に更新する必要があります。特に価格や在庫が頻繁に変わる電子商取引サイトのような場合、データの不一致が発生しないように自動化が必要です。

  • 即座の効果保証なし:構造化データを追加しても、必ずリッチスニペットが表示されるわけではありません。Googleが最終的にリッチリザルトを表示するかどうかを決定し、ページの品質と関連性も一緒に考慮します。また、一部のスキーマタイプは特定の条件を満たす必要がリッチリザルトとして表示されます。

FAQ

Q:構造化データは検索順位を直接上げてくれますか? A:いいえ、構造化データ自体は直接的な順位要素ではありません。Googleはこれを公式に確認しています。ただし、リッチスニペットによってクリック率が高くなると、間接的に順位向上に役立つ可能性があります。また、検索エンジンがページをより理解できるようになり、関連する検索クエリにより正確にマッチングされる可能性があります。

Q:すべてのページに構造化データを追加する必要がありますか? A:すべてのページに必須ではありませんが、製品ページ、ブログ記事、イベントページ、FAQページなど特定のタイプのコンテンツがあるページには追加することをお勧めします。ホームページにはOrganizationスキーマを、ブログポストにはArticleスキーマを追加するのが一般的です。優先順位を決めて重要なページから始めてください。

Q:JSON-LD、Microdata、RDFaのうちどれを使用すべきですか? A:JSON-LDを使用することが最も推奨されます。Googleも公式にJSON-LDを好んでおり、HTMLと分離されているため管理が簡単でエラーの可能性が低いです。MicrodataとRDFaはHTMLタグに直接属性を追加する方式でより複雑でメンテナンスが困難です。特別な理由がない限り、JSON-LDを選択してください。

Q:構造化データを間違って実装するとペナルティを受けますか? A:一般的なエラーはペナルティを受けませんが、意図的に虚偽の情報を提供したり、スパム性のマークアップを使用したりすると、手動対策(Manual Action)を受ける可能性があります。たとえば、実際には存在しない5つ星レビューを構造化データに追加したり、ユーザーに見えないコンテンツをマークアップしたりすることは違反です。Google Search Consoleで警告を受けたら、すぐに修正してください。