メインコンテンツまでスキップ

型選定の判断プロセス (WebPage / Service / Organization / Audience / Country)

この章の位置づけ

本ガイドの中核章です。「自サイトでどの schema.org 型を使うか」を決める判断プロセスを、再現可能な思考フローとして整理します。

題材は はじめに で導入した架空の B2B SaaS Acme Workflow のサービス紹介ページです。以下の構造を組み立てるプロセスを解説します。

WebPage (ルート型)
├── isPartOf → WebSite (親サイト参照)
└── mainEntity → Service (このページの主題)
├── provider → Organization (提供者: Acme Inc.)
├── audience → Audience (対象: 業務担当者)
└── areaServed → Country (提供地域: Japan)

各型を なぜ選んだか / 何を却下したか を順に説明します。

判断 1: ルート型に WebPage を選ぶ

何を表現したいか

  • 「コーポレートサイトの 1 ページ」というメタ情報
  • ページタイトル / 説明文 / URL
  • このページが属するサイト (isPartOf)
  • このページの主題 (mainEntity)

候補

候補型適する用途今回の適否
WebPage汎用的な Web ページ✅ 採用
Articleニュース / ブログ記事 / 解説記事❌ サービス紹介は記事ではない
Product物販商品ページ❌ サービスは無形
Organization (単独)組織情報のみのページ❌ サービス情報が主題

WebPageCreativeWork の派生型で、Web ページ全般を表す 最も汎用的なルート型 です。サービス紹介ページのように「記事 / 商品 / 組織紹介のいずれにも当てはまらない」場合、WebPage を選びます。

WebPage のサブクラス

schema.org には AboutPage / ContactPage / FAQPage / ItemPage 等の WebPage サブクラスもあります。ページの性質が明確 (例: 「会社概要」なら AboutPage) であれば、より具体的なサブクラスを選びます。サービス紹介ページは ItemPage (商品 / サービス紹介) を選ぶことも検討に値しますが、本ガイドでは汎用性を優先して WebPage を採用しました。

判断 2: mainEntity でページ主題を 1 つだけ宣言する

02 章 で述べた通り、schema.org 公式の見解は明確です。

about can refer to multiple entities/topics, while mainEntity should be used for only the primary one

(about は複数のエンティティを参照できるが、mainEntity は主たる 1 つにのみ使う)

と明記しています。ページの主題は 1 つに絞る のが原則です。

mainEntity を使う意味

WebPage 自身が持つ name description は「ページ自体の情報」ですが、mainEntity「このページが何を語っているか」 を別レイヤーで宣言します。検索エンジンはこの主題を見て、ページの本質を理解します。

参照: schema.org/mainEntity / Schema.org Data Model — background notes (確認: 2026-06)

mainEntity を複数定義した場合の問題

複数主題を抱えるページは、そもそも「主題が曖昧」というサイト設計上の問題を抱えていることが多いです。検索エンジンの観点でも、主題が拡散したページは順位が安定しません。やむを得ず複数概念を扱うなら、ItemList で並列要素として表現するなど、別の構造を検討します。

判断 3: mainEntity の型に Service を選ぶ

主題は「Acme Workflow という SaaS」です。これを何の型で表現するかが次の判断です。

候補

候補型性質今回の適否
Service無形のサービス (継続提供)✅ 採用
Product有形 / 単発購入の物品❌ SaaS は買い切り物品ではない
SoftwareApplicationダウンロード型ソフトウェア△ SaaS には不適 (後述)
WebApplicationWeb ベースアプリケーション△ 選択肢になるが (後述)

ServiceIntangible 配下で、「継続提供される無形のサービス」を表します。SaaS のように 継続契約で利用するサービスService がもっとも素直な選択です。

SoftwareApplication / WebApplication を選ばなかった理由
  • SoftwareApplication はインストール型ソフトウェア (デスクトップアプリ / モバイルアプリ) を主な想定としており、ダウンロード URL / OS 要件 / アプリストア情報を持ちます。SaaS には合いません。
  • WebApplicationSoftwareApplication のサブタイプで Web アプリ向けです。Acme Workflow のような「ログイン後に Web で使うアプリ」を厳密にモデリングするならこれも選択肢ですが、コーポレートサイトの サービス紹介ページ で表現するのは「アプリ自体」ではなく「提供サービス」なので、Service の方が文脈に合います。
  • もし「アプリの機能仕様」を中心に紹介するページ (e.g. App Store 風の機能一覧) なら WebApplication への切替を検討します。

Service で必須に近いプロパティ

プロパティ値域役割
nameTextサービス名
descriptionText簡潔な説明
providerOrganization / Person提供者 (判断 4)
serviceTypeTextサービスのカテゴリ
audienceAudience対象 (判断 6)
areaServedAdministrativeArea 等提供地域 (判断 7)

name / description 以外は任意ですが、検索エンジンに豊かな情報を渡すには provider / audience / areaServed を埋めるのが推奨です。

判断 4: providerOrganization を入れる

サービスの提供者を provider で宣言します。

Person か Organization か

  • 個人事業 / フリーランス → Person
  • 会社 / 団体 → Organization

Acme Workflow は架空の Acme Inc. が提供する SaaS なので、Organization を選びます。

Google ガイドラインによる根拠

Organization Schema Markup (確認: 2026-05) は組織情報のマークアップを推奨しており、ナレッジパネルや検索結果でのロゴ表示などの基盤になります。Service.provider として参照するだけでなく、サイト全体で Organization を一意に定義しておくと、複数ページから @id で参照できます (後述の @id 戦略)。

Organization で埋めるべき主要プロパティ

プロパティ役割
name会社名
urlコーポレートサイトの URL (canonical)
logoロゴ画像 URL
sameAs関連 URL の配列 (Wikipedia / SNS 等)
contactPoint連絡先情報 (ContactPoint 型)
OrganizationsameAs

sameAs には Wikipedia ページ / 公式 SNS アカウント / 公式 Crunchbase ページ 等の URL を配列で並べます。Google が「これらは同一組織を指す」という認識を持ちやすくなり、ナレッジパネル統合の精度が上がります。

Organization のサブタイプ

Organization には Corporation / EducationalOrganization / GovernmentOrganization / LocalBusiness 等のサブタイプがあります。

  • 株式会社なら Corporation を選んでもよい (ただし Organization のままでも問題なし)
  • 実店舗を持つ業態なら LocalBusiness 系を強く推奨 (営業時間 / 住所 / 地図情報を表現できる)
  • SaaS 提供企業のように実店舗が主目的でない場合は Organization で十分

判断に迷ったら Organization を選ぶのが安全です。Google は親型 Organization でも適切に解釈します。

判断 5: WebPage.isPartOf で親 WebSite を参照する

isPartOf は「このリソースが属する上位リソース」を示すプロパティです。WebPage から見たとき、それが属する WebSite (サイト全体) を参照します。

なぜ親 WebSite を表現するか

  • サイト全体の名前 / URL を 1 箇所で定義できる
  • 複数ページ間で WebSite 定義を共有でき、整合性を保てる
  • Google 検索結果の「サイト名」表示の情報源になる (Site names 参照。サイト名に使われる WebSite はホームページへの設置が要件)

なお、旧 Sitelinks search box (SearchAction) は 2024-11 に廃止済みのため、WebSite を定義する目的に検索アクションは含めません。

WebSite の最小定義例

{
"@type": "WebSite",
"@id": "https://example.com/#website",
"url": "https://example.com/",
"name": "Acme Inc.",
"publisher": { "@id": "https://example.com/#organization" }
}

@id を URL ベースで一意化し、publisherOrganization@id で参照することで、サイト構造を綺麗に表現できます。

判断 6: mainEntity.audienceAudience を使う

サービスの対象利用者を audience で宣言します。

Audience の型階層

AudienceIntangible 配下で、対象利用者全般を表す汎用型です。サブタイプとして以下があります。

Audience subclass の決定木

対象利用者の性質推奨型
企業 / 業種別 (B2B SaaS / 業務ツール / 法人サービス)BusinessAudience
個人の属性ベース (年齢 / 性別 / ライフスタイル)PeopleAudience
教育系 (学生 / 教師 / 教材対象者)EducationalAudience
医療 (医療従事者 / 患者)MedicalAudience
上記いずれにも当てはまらない / 不明Audience (汎用)

Acme Workflow の場合

Acme Workflow は業務担当者向けの B2B SaaS なので、BusinessAudience が適切です。

{
"@type": "BusinessAudience",
"audienceType": "業務担当者",
"name": "中小企業の業務担当者"
}

audienceType は対象を文字列で表現するプロパティで、Audience (および全サブタイプ) で使えます。

audience を文字列だけで書かない

"audience": "業務担当者" のように単純文字列で書く実装をたまに見かけますが、これは型として不正です。schema.org の audience プロパティの値域は Audience 型なので、必ず { "@type": "...", ... } 形式のオブジェクトで書きます。型階層を活かすメリット (Google が対象を構造化された情報として認識する) も失われます。

判断 7: mainEntity.areaServedCountry を使う

サービスを提供する地域を areaServed で宣言します。

値域の候補

areaServed の値域は AdministrativeArea / GeoShape / Place / Text です。

候補型適する用途
Country国全体 (例: 日本)
State都道府県 / 州
City市区町村
AdministrativeArea行政区分の汎用型
GeoShape緯度経度のポリゴン
Place特定の場所 (会場 / 店舗等)
Text構造化されない文字列 (非推奨)

Acme Workflow の場合

Acme Workflow は日本全国でサービス提供しているので、Country を使います。

{
"@type": "Country",
"name": "Japan"
}

CountryAdministrativeArea のサブタイプで、国を表す型です。複数国で提供する場合は areaServed を配列にします。

ISO 3166 コードの併記

identifier プロパティで ISO 3166-1 alpha-2 コード (JP 等) を併記すると、検索エンジンが国を一意に識別しやすくなります。

@id 戦略 — オブジェクト間参照の設計

複数オブジェクトを含む JSON-LD では、@id の付け方が 保守性を大きく左右 します。

規約

  • @id の URL は、そのオブジェクトを表す URL ベースに フラグメント (#xxx) を付けて一意化する
  • フラグメント名は概念名 (#organization, #website, #webpage, #service) を使う
  • 同じ概念は サイト全体で同じ @id を使う

@id表すオブジェクト
https://example.com/#organizationサイト全体の Organization (Acme Inc.)
https://example.com/#websiteサイト全体の WebSite
https://example.com/services/workflow/#webpageこのサービス紹介ページの WebPage
https://example.com/services/workflow/#serviceAcme Workflow という Service

なぜこの規約か

  • URL ベース: 識別子としてグローバルに一意になる (@id は URI なので URL を使うのが慣習)
  • フラグメント: # 以降はサーバーに送られないので URL として副作用がない
  • 概念名: @id を読むだけで何のオブジェクトかが分かる
  • サイト全体で統一: 複数ページで Organization を参照しても、@id が一致していれば検索エンジンが「同じ Organization」と認識する

@id 衝突の典型パターン

  • ページごとに違う Organization @id を使う (https://example.com/page-a/#organizationhttps://example.com/page-b/#organization) → 別組織として認識される
  • 動的に生成する @id (timestamp や UUID 含む) → ページ更新で別オブジェクト扱いになる
  • @id を URL ではなく単純な文字列で書く ("@id": "organization") → 識別子として弱く、複数サイト間でぶつかる可能性

自サイト適用 decision tree

ここまで Acme Workflow を題材に判断プロセスを示しました。自サイトに応用する場合の汎化された分岐 を以下にまとめます。

ステップ 1: ルート型を決める

ページの性質から WebPage のサブクラスを選びます。

ページの性質推奨ルート型
サービス / 製品紹介 / 一般WebPage (or ItemPage)
会社概要AboutPage
連絡先ContactPage
FAQFAQPage
チェックアウトCheckoutPage
検索結果SearchResultsPage

ステップ 2: mainEntity の型を決める

ページの主題は何かを決め、それを表す型を選びます。

ページ主題mainEntity 型
無形サービス (SaaS / コンサル / 専門サービス)Service
有形商品 / 単発購入物Product
記事 / ブログ投稿Article (or BlogPosting / NewsArticle)
組織紹介ページOrganization
イベント告知Event
FAQ ページ全体FAQPage のとき主題は QA リスト
求人募集JobPosting
レシピRecipe
動画VideoObject
ランディング (主題複合)最も主たるエンティティ 1 つに絞る

ステップ 3: provider / publisher / author を決める

主題に応じて関係者を表現します。

主題型関連プロパティ値域
ServiceproviderOrganization / Person
Productmanufacturer / brandOrganization / Brand
Articleauthor / publisherPerson / Organization
Eventorganizer / performerOrganization / Person
RecipeauthorPerson / Organization

ステップ 4: 対象 / 地域を決める (必要に応じて)

対象 / 地域の宣言プロパティ値域
対象利用者audienceAudience 系 (decision 6 の決定木)
提供地域areaServedCountry / State / City / Place
言語inLanguageLanguage / Text (IETF BCP 47、例: ja)

ステップ 5: @id で関係を結ぶ

サイト全体の Organization / WebSite を 1 箇所に定義し、各ページから @id で参照します。

却下した代替案の整理

判断のトレースを残すため、ここまでで「採用しなかった選択肢」を整理します。

場面採用した型却下した型却下理由
ルート型WebPageArticleサービス紹介は記事ではない
ルート型WebPageProductサービスは無形
ルート型WebPageItemPageより汎用な WebPage で十分 (将来サイト構成変更時に他ページに転用しやすい)
主題ServiceProduct継続契約のサービスは Product ではない
主題ServiceSoftwareApplicationインストール型ソフトウェアではない
主題ServiceWebApplicationサービス紹介ページはアプリ機能仕様ではない
提供者OrganizationPerson個人ではなく会社
対象BusinessAudienceAudience (汎用)サブタイプで業種文脈を表現したい
対象BusinessAudience文字列のみ値域違反
地域CountryPlace国全体なので Place は過剰
地域CountryText構造化情報が失われる

このあと

ここまでで型選定の判断プロセスを完了しました。次章 04. 実装 + 検証 + 運用 では、ここで決めた型を組み合わせて Acme Workflow の 完成 JSON-LD を提示し、Google Rich Results Test での検証手順と継続運用の規範を扱います。