給与推定額(Occupation)の構造化データ

Occupation 構造化データを使用すると、給与推定額の提供者は、各職種の給与範囲と地域別の平均給与、その職業に関する詳細(一般的な福利厚生、応募資格、学歴要件など)を定義できます。OccupationAggregationByEmployer 構造化データを使用すると、給与推定額の提供者は、経験レベルや採用組織などの要素ごとに職業を集計できます。

給与総定額は、Google 検索の求人情報に、該当の職業についての給与推定額リッチリザルトとして表示できます。

Google 検索の求人情報に表示された給与推定額の情報

構造化データを追加する方法

構造化データは、ページに関する情報を提供し、ページ コンテンツを分類するための標準化されたデータ形式です。構造化データを初めて使用する場合は、構造化データの仕組みについてをご覧ください。

構造化データの作成、テスト、リリースの概要は次のとおりです。ウェブページに構造化データを追加するための手順ガイドについては、構造化データの Codelab をご覧ください。

  1. 必須プロパティを追加します。使用している形式に基づいて、ページ上の構造化データを挿入する場所をご確認ください。
  2. ガイドラインに従います。
  3. リッチリザルト テストでコードを検証し、重大なエラーを修正します。ツールで報告される重大ではない問題の修正も検討してください。構造化データの品質向上に役立ちます(ただし、リッチリザルトの対象となるために必ずしも必要というわけではありません)。
  4. 構造化データが含まれているページを数ページ導入し、URL 検査ツールを使用して、Google でページがどのように表示されるかをテストします。Google がページにアクセスでき、robots.txt ファイル、noindex タグ、ログイン要件によってページがブロックされていないことを確認します。ページが正常に表示されたら、Google に URL の再クロールを依頼できます。
  5. 今後の変更について Google に継続して情報を提供するために、サイトマップを送信することをおすすめします。これは、Search Console Sitemap API で自動化できます。

Occupation の例

次の JSON-LD の例は、給与見積もりデータを含む単純な Occupation を示しています。


<html>
  <head>
    <title>Software Developer, Applications</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.org/",
      "@type": "Occupation",
      "name": "Software Developer, Applications",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "lastReviewed": "2024-07-23T14:20:00-05:00"
      },
      "description": "Develops information systems by designing, developing, and installing software solutions",
      "estimatedSalary": [
        {
          "@type": "MonetaryAmountDistribution",
          "name": "base",
          "currency": "USD",
          "duration": "P1Y",
          "percentile10": 100000.5,
          "percentile25": 115000,
          "median": 120000.28,
          "percentile75": 130000,
          "percentile90": 150000
        }
      ],
      "occupationLocation": [
        {
          "@type": "City",
          "name": "Mountain View"
        }
      ]
    }
    </script>
  </head>
  <body>
  </body>
</html>

OccupationAggregationByEmployer の例

次の JSON-LD の例は、給与見積もりデータを含む、より複雑な OccupationAggregationByEmployer を示しています。

<html>
  <head>
    <title>App/Web App Developer</title>
    <script type="application/ld+json">
    {
      "@context": "https://schema.googleapis.com/",
      "@type": "OccupationAggregationByEmployer",
      "name": "App/Web App Developer",
      "mainEntityOfPage": {
        "@type": "WebPage",
        "lastReviewed": "2024-07-23T14:20:00-05:00"
      },
      "description": "Develops information systems by designing, developing, and installing software solutions.",
      "estimatedSalary": [
        {
          "@type": "MonetaryAmountDistribution",
          "name": "base",
          "currency": "USD",
          "duration": "P1Y",
          "percentile10": 100000.5,
          "percentile25": 115000,
          "median": 120000.28,
          "percentile75": 130000,
          "percentile90": 150000
        },
        {
          "@type": "MonetaryAmountDistribution",
          "name": "bonus",
          "currency": "USD",
          "duration": "P1Y",
          "percentile10": 10000,
          "percentile25": 20000,
          "median": 25000,
          "percentile75": 27000,
          "percentile90": 60000
        }
      ],
      "occupationLocation": [
        {
          "@type": "State",
          "name": "Oregon"
        },
        {
          "@type": "State",
          "name": "Washington"
        },
        {
          "@type": "State",
          "name": "California"
        }
      ],
      "hiringOrganization": {
        "@type": "Organization",
        "name": "Google LLC"
      },
      "sampleSize":1000,
      "industry": "Technology",
      "jobBenefits": "6 weeks paid vacation every year",
      "yearsExperienceMin": 3,
      "yearsExperienceMax": 7
    }
    </script>
  </head>
  <body>
  </body>
</html>

ガイドライン

一般的な構造化データの品質に関するガイドライン技術的ガイドラインに準拠する必要があります。また、Occupation 構造化データには、以下のガイドラインが適用されます。

技術に関するガイドライン

  • Occupation 構造化データはスタンドアロン データです。Google に提供する他の構造化データと関連付ける必要はありません。
  • 1 つのウェブページに OccupationOccupationAggregationByEmployer のいずれか 1 つだけを追加します。これらのタイプの定義を 1 つのページに複数追加しないでください。
  • 構造化データとページに表示されるデータに一貫性を持たせるようにしてください。次に例を示します。
    • ページに平均給与のみを表示していて、構造化データにもそれらの値のみが含まれている。
    • 年収を 5 桁の概数にした値をページに掲載し、構造化データでも同じ粒度の値を提供する。
  • プロパティは、特に指定のない限り定義内に 1 回だけ使用するようにします。
  • 地域によって特性が異なる職業の場合(たとえば、米国北東部の給与範囲は中西部の給与範囲と異なることがあります)は、別々のウェブページを作成し、それぞれに Occupation の定義を記述して異なる occupationLocation を指定します。
  • 給与推定額の構造化データは、リスティング ページ(職業の一覧を表示するページ)には追加しないでください。
  • ページが変更される場合は、サイトマップを毎日更新してください。

コンテンツ ガイドライン

  • すべての仕事の給与範囲と説明が類似している場合は、同様の職業名をグループ化します。職業名は具体的な名称にする必要がありますが、混乱を招くため、詳細にしすぎないようにしてください。次に例を示します。
    • 範囲を広くしすぎない。

      非推奨例: "臨床、カウンセリング、学校専属の精神分析医"

      推奨例: "学校専属のカウンセラー"、"臨床心理学者"、"臨床セラピスト"、"心理学の博士号"

    • 詳細にしすぎない。

      非推奨例: "在宅医療分野の正看護師"、"正看護師(RN)"、"RN - 正看護師 - 在宅医療 - トラベルナース"

      推奨例: "正看護師"

構造化データタイプの定義

ここでは、給与推定額に関連する構造化データタイプについて説明します。

コンテンツが求人情報として Google およびリッチリザルトに表示されるようにするには、必須プロパティを含める必要があります。また、推奨プロパティを使用することでコンテンツに関する詳細情報を追加でき、ユーザー エクスペリエンスの向上につながります。

Occupation

Occupation タイプでは、給与推定額、必要なスキル、業務内容など、仕事に関する情報を定義します。Occupation の定義の全文は schema.org/Occupation で確認できます。

Google がサポートするプロパティは、次のとおりです。

必須プロパティ
estimatedSalary

MonetaryAmountDistribution の配列

特定の occupationLocation におけるこの職業の給与推定額。パーセンタイルのランクに基づいて給与の範囲か推定給与額を指定します。

次の例は、推定の給与範囲を示しています。

"estimatedSalary": [{
  "@type": "MonetaryAmountDistribution",
  "name": "base",
  "currency": "USD",
  "duration": "P1Y",
  "minValue": "100000", // Inherited from QuantitativeValue
  "maxValue": "150000", // Inherited from QuantitativeValue
  "median": "124900" // Inherited from QuantitativeValueDistribution
}]

基本給、ボーナス、その他の形式の金銭的報酬を説明するには、estimatedSalary 配列内で複数の給与を定義します。基本給の指定は必須です。その他の種類の報酬は省略できます

ボーナスの例を次に示します。

"estimatedSalary": [
  {
    "@type": "MonetaryAmountDistribution",
    "name": "base",
    "currency": "USD",
    "duration": "P1Y",
    "minValue": "100000",
    "maxValue": "150000",
    "median": "124900"
  }, {
    "@type": "MonetaryAmountDistribution",
    "name": "bonus",
    "currency": "USD",
    "duration": "P1Y",
    "minValue": "0",
    "maxValue": "34500",
    "median": "4450"
  }
]
estimatedSalary.duration

Duration

給与推定額を得るまでの期間(ISO 8601 の日付形式)。たとえば、給与推定額が 1 年間で得られる場合は、durationP1Y を使用します。

estimatedSalary.name

Text

値のタイプ。基本給の指定は必須です。その他の種類の報酬は省略できます ("基本給"、"ボーナス"、"コミッション" など)。

name

Text

職業の名称。このプロパティでは非構造化テキストを使用できます。例: "ソフトウェア エンジニア"

おすすめの方法:

  • このプロパティには職業の名称のみを指定します。
  • name プロパティには、求人コード、住所、日付、給与、会社名は含めないでください。

    非推奨例: ブカレストでフランス語を話せる IT 技術者を募集中

    推奨例: マーケティング専門家、フランス語話者

  • 簡潔で読みやすい名称を指定します。
  • !* などの特殊文字を多用しないでください。特殊文字を濫用すると、マークアップがスパム行為のある構造化マークアップと見なされる可能性があります。/- などの数字や文字は使用できます。

    非推奨例: *** 倉庫でのお仕事です!バス停のすぐ近く!***

    推奨例: 倉庫での出荷・入荷の担当

occupationLocation

CityState、または Country の配列

この職業の記述が適用される地域。単一の地域を指定する場合、1 つの Name プロパティに都市、都道府県、国レベルで地域を定義できます。

詳細な指定例(推奨)

"occupationLocation": {
  "@type": "City", // Maximum level of granularity (recommended)
  "name": "Mountain View, CA, US" // City, State, and Country inputted on same property
}

詳細に指定しない例

許容される範囲で詳細に指定しない例を 2 つ挙げます。

"occupationLocation": {
  "@type": "State",
  "name": "CA, US"
}
"occupationLocation": {
  "@type": "Country",
  "name": "US"
}

おすすめの方法:

  • 地域は都市より詳細にしないでください。
  • 該当する国で都道府県を指定しない場合は、State プロパティに地域名を入力できます。
  • occupationLocation の値は、給与推定額のリストが作成された場所ではなく、その職業が実際に行われる場所です。
  • 1 つの Occupation タイプに複数の地域がある場合は、次の例のように occupationLocation の配列内に地域を指定します。
    "occupationLocation": [
      {
        "@type": "City",
        "name": "Portland, Oregon, US" // Salary specified for multiple locations
      }, {
        "@type": "City",
        "name": "Seattle, Washington, US"
       }
    ]
  • 職業の給与範囲、学歴要件、資格などのデータは、地域によって異なることがよくあります。これを表現するには、複数のページを定義し、各ページに別々の Occupation 定義と異なる occupationLocation を記述します。
推奨プロパティ
description

Text

職業の説明。

description では、仕事について詳細に記述します(職務、資格、スキル、業務時間、学歴要件、経験に関する要件など)。

その他のガイドライン:

  • description は、最上位のページだけでなく、ユーザーがアクセスする可能性のあるすべてのリーフページに含めてください。
  • description では、職業を一意に識別し、その職業に伴うものを具体的に説明する必要があります。

    非推奨例: "インターンシップ - 事務職または専門職向けの職務体験です。"

    推奨例: "データ アナリスト インターン - データ アナリストと働くチャンスです。データ アナリストはデータから分析情報を抽出して最適な決断をするのを助けます。”

  • descriptionname を同じにすることはできません。
  • description には採用組織を含めないでください。代わりに hiringOrganization を使用します。
estimatedSalary.currency

Text

3 文字の ISO 4217 通貨コード。例: "USD"、"CAD"

estimatedSalary.median

Number

中央値。たとえば、この職業の給与の半分はこの値以下です。

estimatedSalary.percentile10

Number

10 パーセンタイル値。たとえば、この職業の給与の 10% はこの値以下です。

estimatedSalary.percentile25

Number

25 パーセンタイル値。たとえば、この職業の給与の 25% はこの値以下です。

estimatedSalary.percentile75

Number

75 パーセンタイル値。たとえば、この職業の給与の 75% はこの値以下です。

estimatedSalary.percentile90

Number

90 パーセンタイル値。たとえば、この職業の給与の 90% はこの値以下です。

mainEntityOfPage

WebPage

ページに記載されている主な内容。

mainEntityOfPage.lastReviewed

Date

給与推定額の情報が作成された日付(ISO 8601 形式)。次に例を示します。

"mainEntityOfPage": {
  "@type": "WebPage",
  "lastReviewed": "2017-07-23T14:20:00-05:00"
}

OccupationAggregationByEmployer

OccupationAggregationByEmployer は、雇用主別にグループ化された仕事関連のデータを提供します。たとえば、ある職業グループの業種と採用組織を雇用主別に集約した形で指定できます。

Google がサポートするプロパティは、次のとおりです。

必須プロパティ
estimatedSalary

MonetaryAmountDistribution の配列

特定の occupationLocation におけるこの職業の給与推定額。パーセンタイルのランクに基づいて給与の範囲か推定給与額を指定します。

次の例は、推定の給与範囲を示しています。

"estimatedSalary": [{
  "@type": "MonetaryAmountDistribution",
  "name": "base",
  "currency": "USD",
  "duration": "P1Y",
  "minValue": "100000", // Inherited from QuantitativeValue
  "maxValue": "150000", // Inherited from QuantitativeValue
  "median": "124900" // Inherited from QuantitativeValueDistribution
}]

基本給、ボーナス、その他の形式の金銭的報酬を説明するには、estimatedSalary 配列内で複数の給与を定義します。基本給の指定は必須です。その他の種類の報酬は省略できます。

ボーナスがある例

"estimatedSalary": [
  {
    "@type": "MonetaryAmountDistribution",
    "name": "base",
    "currency": "USD",
    "duration": "P1Y",
    "minValue": "100000",
    "maxValue": "150000",
    "median": "124900"
  }, {
    "@type": "MonetaryAmountDistribution",
    "name": "bonus",
    "currency": "USD",
    "duration": "P1Y",
    "minValue": "0",
    "maxValue": "34500",
    "median": "4450"
  }
]
estimatedSalary.duration

Duration

給与推定額を得るまでの期間(ISO 8601 の日付形式)。たとえば、給与推定額が 1 年間で得られる場合は、durationP1Y を使用します。

estimatedSalary.name

Text

値のタイプ。基本給の指定は必須です。その他の種類の報酬は省略できます ("基本給"、"ボーナス"、"コミッション" など)。

hiringOrganization

Organization

この職業の地位を提供している組織。@context に "https://schema.org/" を指定します。hiringOrganization には会社名を指定する必要があります(例: “Starbucks, Inc”)。所在地は含めないでください(例: “Starbucks on Main Street”)。次に例を示します。

"hiringOrganization": {
  "@context": "https://schema.org/",
  "@type": "Organization",
  "name": "Google LLC"
}
name

Text

職業の名称。このプロパティでは非構造化テキストを使用できます。例: "ソフトウェア エンジニア"

おすすめの方法:

  • このプロパティには職業の名称のみを指定します。
  • name プロパティには、求人コード、住所、日付、給与、会社名は含めないでください。

    非推奨例: ブカレストでフランス語を話せる IT 技術者を募集中

    推奨例: マーケティング専門家、フランス語話者

  • 簡潔で読みやすい名称を指定します。
  • !* などの特殊文字を多用しないでください。特殊文字を濫用すると、マークアップがスパム行為のある構造化マークアップと見なされる可能性があります。数値や「/」、「-」などの文字は使用できます。

    非推奨例: *** 倉庫でのお仕事です!バス停のすぐ近く!***

    推奨例: 倉庫での出荷・入荷の担当

occupationLocation

CityState、または Country の配列

この職業の記述が適用される地域。単一の地域を指定する場合、1 つの Name プロパティに都市、都道府県、国レベルで地域を定義できます。

詳細な指定例(推奨)

"occupationLocation": {
  "@type": "City", // Maximum level of granularity (recommended)
  "name": "Mountain View, CA, US" // City, State, and Country inputted on same property
}

詳細に指定しない例

許容される範囲で詳細に指定しない例を 2 つ挙げます。

"occupationLocation": {
  "@type": "State",
  "name": "CA, US"
}
"occupationLocation": {
  "@type": "Country",
  "name": "US"
}

おすすめの方法:

  • 地域は都市より詳細にしないでください。
  • 該当する国で都道府県を指定しない場合は、State プロパティに地域名を入力できます。
  • occupationLocation の値は、給与推定額のリストが作成された場所ではなく、その職業が実際に行われる場所です。
  • 1 つの Occupation タイプに複数の地域がある場合は、次の例のように occupationLocation の配列内に地域を指定します。
    "occupationLocation": [
      {
        "@type": "City",
        "name": "Portland, Oregon, US" // Salary specified for multiple locations
      }, {
        "@type": "City",
        "name": "Seattle, Washington, US"
       }
    ]
  • 職業の給与範囲、学歴要件、資格などのデータは、地域によって異なることがよくあります。これを表現するには、複数のページを定義し、各ページに別々の Occupation 定義と異なる occupationLocation を記述します。
推奨プロパティ
description

Text

職業の説明。

description では、仕事について詳細に記述します(職務、資格、スキル、業務時間、学歴要件、経験に関する要件など)。

その他のガイドライン:

  • description は、最上位のページだけでなく、ユーザーがアクセスする可能性のあるすべてのリーフページに含めてください。
  • description では、職業を一意に識別し、その職業に伴うものを具体的に説明する必要があります。

    非推奨例: "インターンシップ - 事務職または専門職向けの職務体験です。"

    推奨例: "データ アナリスト インターン - データ アナリストと働くチャンスです。データ アナリストはデータから分析情報を抽出して最適な決断をするのを助けます。”

  • descriptionname を同じにすることはできません。
  • description には採用組織を含めないでください。代わりに hiringOrganization を使用します。
estimatedSalary.currency

Text

3 文字の ISO 4217 通貨コード。例: "USD"、"CAD"

estimatedSalary.median

Number

中央値。たとえば、この職業の給与の半分はこの値以下です。

estimatedSalary.percentile10

Number

10 パーセンタイル値。たとえば、この職業の給与の 10% はこの値以下です。

estimatedSalary.percentile25

Number

25 パーセンタイル値。たとえば、この職業の給与の 25% はこの値以下です。

estimatedSalary.percentile75

Number

75 パーセンタイル値。たとえば、この職業の給与の 75% はこの値以下です。

estimatedSalary.percentile90

Number

90 パーセンタイル値。たとえば、この職業の給与の 90% はこの値以下です。

industry

Text

職位に関連付けられている業種。

jobBenefits

Text

仕事に関連付けられている福利厚生の説明。

mainEntityOfPage

WebPage

ページに記載されている主な内容。

mainEntityOfPage.lastReviewed

Date

給与推定額の情報が作成された日付(ISO 8601 形式)。次に例を示します。

"mainEntityOfPage": {
  "@type": "WebPage",
  "lastReviewed": "2017-07-23T14:20:00-05:00"
}
sampleSize

Number

集計された給与データの要因となっているデータポイントの数。次に例を示します。

"sampleSize": 42
yearsExperienceMax

Number

この職業で受け入れられる最長の経験年数。たとえば、次の例のように、若手の職務では、最長 5 年間の経験年数を指定することが考えられます。

"yearsExperienceMax": 5
yearsExperienceMin

Number

この職業で受け入れられる最小の経験年数。たとえば、次の例のように、上級の職務では、最低 10 年間の経験年数を求めることが考えられます。

"yearsExperienceMin": 10

トラブルシューティング

構造化データの実装またはデバッグで問題が発生した場合は、以下のリソースが参考になります。