構造化データの種類

以前に構造化データの記述方法についての記事を投稿しましたが、今回はGoogleがサポートしている構造化データの中で実際に使用しそうなものをいくつか見てみます。

記事(Article・NewsArticle・BlogPosting)

記事はニュースやブログなどの記事ページに対して追加する構造化データです。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "記事タイトル",
  "image": "https://example.com/photos/photo.jpg",
  "datePublished": "2015-02-05T08:00:00+08:00",
  "dateModified": "2015-02-05T09:20:00+08:00",
  "author": [
    {
      "@type": "Organization",
      "name": "組織名",
      "url": "https://example.com/"
    }
  ]
}
</script>

構造化データの項目(推奨)

author 記事の作成者。
個人の場合はPerson、組織の場合はOrganizationを@typeに設定。
author.name 作成者の名前。
author.url 記事の作成者を一意に識別するページへのリンク。
Personの場合はその個人のSNSや略歴ページなど、Organizationの場合はその組織のホームページなどを設定。
dateModified 記事の更新日時。
ISO 8601(YYYY-MM-DDThh:mm:ss)の形式。
datePublished 記事の公開日時。
ISO 8601(YYYY-MM-DDThh:mm:ss)の形式。
headline 記事のタイトル。
image 記事を表す画像。
ImageObjectかURLの繰り返し(配列)で設定。

パンくずリスト(BreadcrumbList)

パンくずリストは該当ページがサイト内のどの階層に位置するかを示すための構造化データです。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "サイト名",
    "item": "https://example.com/"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "ブログ",
    "item": "https://example.com/blog/"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "カテゴリ名",
    "item": "https://example.com/blog/category/"
  },{
    "@type": "ListItem",
    "position": 4,
    "name": "記事タイトル"
  }]
}
</script>

ページを辿るルートが複数ある場合、パンくずリストを複数指定することもできます。

<script type="application/ld+json">
[{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "サイト名",
    "item": "https://example.com/"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "ブログ",
    "item": "https://example.com/blog/"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "カテゴリ名",
    "item": "https://example.com/blog/category/"
  },{
    "@type": "ListItem",
    "position": 4,
    "name": "記事タイトル"
  }]
}, {
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [{
    "@type": "ListItem",
    "position": 1,
    "name": "サイト名",
    "item": "https://example.com/"
  },{
    "@type": "ListItem",
    "position": 2,
    "name": "ブログ",
    "item": "https://example.com/blog/"
  },{
    "@type": "ListItem",
    "position": 3,
    "name": "タグ名",
    "item": "https://example.com/blog/tag/"
  },{
    "@type": "ListItem",
    "position": 4,
    "name": "記事タイトル"
  }]
}]
</script>

構造化データの項目(必須)

itemListElement パンくずリストの配列。

構造化データの項目(推奨)

item パンくずリストの項目を表すページURL。
パンくずリストの最後のアイテムである場合、item は必須ではない。(そのページのURLが使用される)
name パンくずリストの項目のタイトル。
position パンくずリスト内の項目の位置。

イベント(Event)

イベントに対して設定できる構造化データです。
イベントはオフライン・オンラインのどちらの開催でも設定できますが、ここにあるように、イベント以外をイベントとして設定することはできません。

イベントの構造化データを設定するメリットとしてGoogleのイベント検索機能がありますが、記事作成時点では日本は利用対象に入っていないようです。

まず例として、オフラインで開催されるイベントの場合です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "イベントタイトル",
  "startDate": "2025-07-21T19:00:00",
  "endDate": "2025-07-21T23:00:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "Place",
    "name": "東京スカイツリー",
    "address": {
      "@type": "PostalAddress",
      "name": "東京都墨田区押上1丁目1−2"
    }
  },
  "image": "https://example.com/photos/photo.jpg",
  "description": "イベントの説明文です。",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/buy/12345",
    "price": "2000",
    "priceCurrency": "JPY",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00:00"
  },
  "performer": {
    "@type": "Person",
    "name": "パフォーマー名"
  },
  "organizer": {
    "@type": "Organization",
    "name": "主催者名",
    "url": "https://example.com"
  }
}
</script>

構造化データの項目(必須)

location イベントの場所。
物理的な場所で開催される場合はPlace、オンラインで開催される場合はVirtualLocationを@typeに設定。
location.address イベント会場の所番地。
@typeがPlaceの場合に設定。
location.url オンラインイベントのURL。
@typeがVirtualLocationの場合に設定。
name イベントのタイトル。
startDate イベントの開始日時。
ISO 8601(YYYY-MM-DD や YYYY-MM-DDThh:mm:ss)の形式。

構造化データの項目(推奨)

location.name イベント会場の名前。
@typeがPlaceの場合に設定。
description イベントの説明。
endDate イベントの終了開始日時。
ISO 8601(YYYY-MM-DD や YYYY-MM-DDThh:mm:ss)の形式。
eventAttendanceMode イベントの開催がオンラインかオフラインを指定。
指定がない場合はOfflineEventAttendanceModeになる。
https://schema.org/OfflineEventAttendanceMode の場合、オフラインで参加できるイベント。
https://schema.org/OnlineEventAttendanceMode の場合、オンラインで参加できるイベント。
https://schema.org/MixedEventAttendanceMode の場合、オンラインでもオフラインでも参加できるイベント。
eventStatus イベントのステータス。
指定がない場合はEventScheduledになる。
https://schema.org/EventCancelled の場合、イベントはキャンセル。
https://schema.org/EventMovedOnline の場合、イベントはオフライン参加からオンライン参加に変更。
https://schema.org/EventPostponed の場合、イベントは延期で日程はまだ不明。
https://schema.org/EventRescheduled の場合、イベントの日時変更。startDateとendDateを該当する新しい日付で更新する。
https://schema.org/EventScheduled の場合、イベントは開催予定。
image イベントやツアーの画像やロゴ画像。
ImageObjectかURLの繰り返し(配列)で設定。
offers チケットに関する情報。
@typeにはOfferを設定。
offers.availability チケットの在庫状態。
チケットがまだ販売されていない場合、この項目を省略して後述のvalidFromを使用する。
https://schema.org/InStock の場合、 在庫あり。
https://schema.org/SoldOut の場合、完売。
https://schema.org/PreOrder の場合、予約購入可。
offers.price チケットの販売価格。
イベント参加が無料の場合は0を設定。
offers.priceCurrency チケット価格の通貨コード。
priceが0より大きい場合に設定。
offers.validFrom チケット販売日時。
ISO 8601(YYYY-MM-DDThh:mm:ss)の形式。
offers.url チケットを購入できるページURL。
organizer イベントをホストしている個人または組織。
個人の場合はPerson、組織の場合はOrganizationを@typeに指定。
organizer.name イベントをホストする個人名または組織名。
organizer.url イベントホストのドメインURL。
performer イベントでパフォーマンスを行う参加者。
グループの場合はPerformingGroup、個人の場合はPersonを設定。
performer.name イベントでパフォーマンスを行う参加者名。
previousStartDate イベントの日程が変更された際の、変更前のイベント開始日。
eventStatusでEventRescheduledを設定した際に必要に応じて設定。

最初にオフラインで開催されるイベントの場合の例を確認しましたが、それ以外のパターンもいくつか確認してみます。
オンラインで開催されるイベントの場合です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "イベントタイトル",
  "startDate": "2025-07-21T19:00:00",
  "endDate": "2025-07-21T23:00:00",
  "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": {
    "@type": "VirtualLocation",
    "url": "https://example.com/stream/12345/"
  },
  "image": "https://example.com/photos/photo.jpg",
  "description": "イベントの説明文です。",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/buy/12345",
    "price": "2000",
    "priceCurrency": "JPY",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00:00"
  },
  "performer": {
    "@type": "Person",
    "name": "パフォーマー名"
  },
  "organizer": {
    "@type": "Organization",
    "name": "主催者名",
    "url": "https://example.com"
  }
}
</script>

オンラインとオフラインの両方で開催されるイベントの場合です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "イベントタイトル",
  "startDate": "2025-07-21T19:00:00",
  "endDate": "2025-07-21T23:00:00",
  "eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
  "eventStatus": "https://schema.org/EventScheduled",
  "location": [
    {
      "@type": "VirtualLocation",
      "url": "https://example.com/stream/12345/"
    },
    {
      "@type": "Place",
      "name": "東京スカイツリー",
      "address": {
        "@type": "PostalAddress",
        "name": "東京都墨田区押上1丁目1−2"
      }
    }
  ],
  "image": "https://example.com/photos/photo.jpg",
  "description": "イベントの説明文です。",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/buy/12345",
    "price": "2000",
    "priceCurrency": "JPY",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00:00"
  },
  "performer": {
    "@type": "Person",
    "name": "パフォーマー名"
  },
  "organizer": {
    "@type": "Organization",
    "name": "主催者名",
    "url": "https://example.com"
  }
}
</script>

イベントがキャンセルになった場合です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "イベントタイトル",
  "startDate": "2025-07-21T19:00:00",
  "endDate": "2025-07-21T23:00:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventCancelled",
  "location": {
    "@type": "Place",
    "name": "東京スカイツリー",
    "address": {
      "@type": "PostalAddress",
      "name": "東京都墨田区押上1丁目1−2"
    }
  },
  "image": "https://example.com/photos/photo.jpg",
  "description": "イベントの説明文です。",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/buy/12345",
    "price": "2000",
    "priceCurrency": "JPY",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00:00"
  },
  "performer": {
    "@type": "Person",
    "name": "パフォーマー名"
  },
  "organizer": {
    "@type": "Organization",
    "name": "主催者名",
    "url": "https://example.com"
  }
}
</script>

イベントが日程変更になった場合です。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "イベントタイトル",
  "startDate": "2025-07-21T19:00:00",
  "endDate": "2025-07-21T23:00:00",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "eventStatus": "https://schema.org/EventRescheduled",
  "previousStartDate": "2025-03-21T19:00:00",
  "location": {
    "@type": "Place",
    "name": "東京スカイツリー",
    "address": {
      "@type": "PostalAddress",
      "name": "東京都墨田区押上1丁目1−2"
    }
  },
  "image": "https://example.com/photos/photo.jpg",
  "description": "イベントの説明文です。",
  "offers": {
    "@type": "Offer",
    "url": "https://www.example.com/buy/12345",
    "price": "2000",
    "priceCurrency": "JPY",
    "availability": "https://schema.org/InStock",
    "validFrom": "2024-05-21T12:00:00"
  },
  "performer": {
    "@type": "Person",
    "name": "パフォーマー名"
  },
  "organizer": {
    "@type": "Organization",
    "name": "主催者名",
    "url": "https://example.com"
  }
}
</script>

よくある質問(FAQPage・Question・Answer)

各質問に対する回答が1つだけのよくある質問に対して追加する構造化データです。
1つの質問に対してユーザーが他の回答を送信できるページの場合、QAPageの構造化データになります。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "質問A",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "<p>回答内容</p>"
    }
  }, {
    "@type": "Question",
    "name": "質問B",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "回答内容."
    }
  }]
}
</script>

構造化データの項目(必須)

mainEntity よくある質問の配列。
mainEntity.acceptedAnswer 質問に対する回答。
mainEntity.name 質問の全文
mainEntity.acceptedAnswer.text 質問に対する回答の全文。
下記HTMLタグを含むことができる。
<h1>~<h6>、<br>、<ol>、<ul>、<li>、<a>、<p>、<div>、<b>、<strong>、<i>、<em>

組織(Organization)

組織の情報について示すための構造化データです。
企業情報ページなどのような、組織の説明を掲載した単一のページに対して構造化データを実装します。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "image": "https://www.example.com/example_image.jpg",
  "url": "https://www.example.com",
  "logo": "https://www.example.com/images/logo.png",
  "name": "会社名",
  "description": "会社に関する説明",
  "email": "contact@example.com",
  "telephone": "+81-00-0000-0000",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "押上一丁目1番2号他",
    "addressLocality": "墨田区",
    "addressCountry": "JP",
    "addressRegion": "東京都",
    "postalCode": "1310045"
  }
}
</script>

構造化データの項目(推奨)

name 組織の名前。
description 組織の詳細な説明。
logo 組織を表すロゴ。
ImageObjectかURLで設定。
url 組織のウェブサイトの URL。
telephone 顧客の問い合わせ窓口の電話番号。
電話番号には国コードと市外局番を含める。
email ユーザーの問い合わせ窓口のメールアドレス。
address 組織の住所。
LocalBusinessまたはそのサブタイプを使用している場合は必須。
address.streetAddress 番地。
address.addressLocality 市区町村。
address.addressRegion 地域(都道府県や州など)。
address.postalCode 郵便番号。
address.addressCountry 国。
2文字の国コードで指定。
image 組織の画像。

サイトリンク検索ボックス(WebSite)

サイトリンク検索ボックスを使用すると、Googleの検索結果画面からサイト内検索をすることができるようになります。
サイトのトップページに構造化データを実装します。

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "url": "https://cly7796.net/blog/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://cly7796.net/blog/?s={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}
</script>

構造化データの項目(必須)

potentialAction 検索クエリの送信先の情報を指定。
potentialAction.query-input 後述のtargetで使用する、検索クエリの設定位置の指定。
potentialAction.target EntryPointオブジェクトの指定。
potentialAction.target.urlTemplate 前述のquery-inputで指定した値を使った形でのエンドポイントの指定。
url 検索先のサイトURLを指定。

参考サイト

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年9月
1234567
891011121314
15161718192021
22232425262728
2930