Структурированные данные для ориентировочной зарплаты (Occupation)

Благодаря структурированным данным Occupation поставщики информации о трудоустройстве могут указывать диапазоны зарплат, средний заработок на разных должностях в зависимости от региона, а также бонусы, требования к образованию и опыту. Структурированные данные OccupationAggregationByEmployer позволяют поставщикам информации группировать ее по различным параметрам, например по работодателю или необходимому опыту.

Сведения об ориентировочной зарплате могут появляться в разделе вакансий Google Поиска, а также в расширенных результатах по определенной профессии.

Информация об ориентировочной зарплате в результатах Google Поиска по вакансиям

Как добавлять структурированные данные

Структурированные данные – стандартизированный формат, который позволяет предоставлять информацию о странице и классифицировать ее контент. О том, как это работает, рассказывается в другой статье.

Ниже в общих чертах описано, как создать, проверить и добавить на сайт структурированные данные. Пошаговые инструкции вы найдете в практической работе, посвященной добавлению структурированных данных на веб-страницу.

  1. Добавьте обязательные свойства. Узнайте, в каких частях страницы нужно размещать структурированные данные выбранного вами формата.
  2. Следуйте рекомендациям.
  3. Протестируйте свой код с помощью инструмента проверки расширенных результатов. Если будут обнаружены критические ошибки, устраните их. Мы также рекомендуем устранить некритические ошибки, отмеченные в инструменте. Это может привести к повышению качества структурированных данных, хотя страницы будут подходить для создания расширенных результатов и без этого.
  4. Опубликуйте страницу и с помощью инструмента проверки URL выясните, как она выглядит для робота Googlebot. Убедитесь, что доступ Google к странице не заблокирован файлом robots.txt или метатегом noindex и авторизация на ней не требуется. Если все в порядке, то запросите повторное сканирование ваших URL.
  5. Отправляйте нам файл Sitemap, чтобы информировать нас об изменениях на сайте. Отправку такого файла можно автоматизировать с помощью Search Console Sitemap API.

Примеры

Пример со сведениями о профессии

Нажмите кнопку ниже, чтобы увидеть простой код 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>

Пример со сведениями о профессии, сгруппированными по работодателю

Нажмите кнопку ниже, чтобы увидеть более сложный код 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.
  • Добавляйте только один экземпляр данных Occupation или OccupationAggregationByEmployer на каждую веб-страницу.
  • Убедитесь, что структурированные данные соответствуют контенту веб-страницы. Ниже приведено несколько примеров.
    • Если пользователи видят на странице среднюю зарплату, в структурированные данные должны входить только соответствующие значения.
    • Если значение зарплаты округляется до двух знаков после запятой, структурированные данные должны быть представлены с той же точностью.
  • За исключением отдельно оговоренных случаев, каждое свойство следует указывать в экземпляре элемента только один раз.
  • Если характеристики профессии различаются в зависимости от местоположения (например, в Москве и Екатеринбурге разный диапазон зарплат), создайте отдельные веб-страницы с данными типа Occupation, указав в них разные значения occupationLocation.
  • Не добавляйте структурированные данные с ориентировочными зарплатами на страницы со списком профессий.
  • Ежедневно обновляйте файлы Sitemap, когда вносите на страницу изменения.

Требования к контенту

  • Группируйте профессии с похожим описанием и диапазоном зарплат под одним заголовком. Заголовки должны быть конкретными, но в пределах разумного. Ниже приведено несколько примеров.
    • Избегайте слишком общих заголовков.

      Неправильно: "Клинические, консультирующие и школьные психологи"

      Правильно: "Школьный психолог", "Клинический психолог", "Психотерапевт", "Доктор психологии"

    • Избегайте слишком конкретных заголовков.

      Неправильно: "Программист-разработчик со знанием PHP", "Программист на C#", "Разработчик ПО (программ и приложений)"

      Правильно: "Разработчик программного обеспечения"

Типы структурированных данных

В этом разделе описаны типы структурированных данных, которые связаны с ориентировочными зарплатами.

Чтобы ваш контент мог появляться в разделе вакансий 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). Например, если такой уровень зарплаты достигается за год, укажите для свойства duration значение P1Y.

estimatedSalary.name

Text

Тип значения. Необходимо указать значение базовой ставки. Остальные виды компенсаций добавлять не обязательно. Это может быть "Оклад", "Премия", "Комиссия".

name

Text

Название профессии. В этом свойстве можно использовать неструктурированный текст, например "Разработчик программного обеспечения".

Рекомендации:

  • В этом свойстве должно быть указано только название профессии.
  • Не включайте в свойство name коды должностей, адреса, даты, зарплату и название компании.

    Неправильно: "В Москве открыта ИТ-вакансия для говорящих по-французски".

    Правильно: "Специалист по маркетингу, говорящий по-французски".

  • Названия должны быть короткими и легко читаемыми.
  • Не злоупотребляйте специальными символами, например ! и *, иначе разметка может быть отнесена к спаму. Цифры и такие символы, как / и -, считаются допустимыми.

    Неправильно: "*** НА СКЛАД ТРЕБУЮТСЯ РАБОТНИКИ!! РЯДОМ АВТОБУСНАЯ ОСТАНОВКА!!! ***".

    Правильно: "Младший сотрудник склада для отгрузки и приема товаров".

occupationLocation

Массив City, State, Country

Местоположение, которое относится к информации о должности. Если вам нужно задать одно местоположение, укажите его на уровне города, региона или страны в одном свойстве Name.

Пример с подробным указанием местоположения (рекомендуется)

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

Примеры с менее подробным указанием местоположения

Ниже приведены два примера, которые являются допустимыми, хотя в них местоположение указано не очень подробно:

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

Рекомендации:

  • Местоположение можно указывать с точностью до города.
  • Если в вашей стране нет штатов, значением свойства State может быть название региона.
  • Значение occupationLocation – это место, где располагается работа, а не где была создана страница с ориентировочными зарплатами.
  • Если для 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 должны быть представлены точные и однозначные сведения о профессии.

    Неправильно: "Стажировка. Практика для офисных работников в организации".

    Правильно: "Стажировка в качестве помощника аналитика. Рабочие обязанности: сбор и анализ данных для получения статистики, которая помогает руководителям принимать решения".

  • Значения свойств description и name не должны совпадать.
  • Не указывайте в description сведения о работодателе. Вместо этого используйте hiringOrganization.
estimatedSalary.currency

Text

Трехбуквенный код валюты в формате ISO 4217. Пример: USD или RUB.

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). Например, если такой уровень зарплаты достигается за год, укажите для свойства duration значение P1Y.

estimatedSalary.name

Text

Тип значения. Необходимо указать значение базовой ставки. Остальные виды компенсаций добавлять не обязательно. Это может быть "Оклад", "Премия", "Комиссия".

hiringOrganization

Organization

Организация-работодатель. Задайте для @context значение "https://schema.org/". В свойстве hiringOrganization нужно указать название компании (например, Азбука вкуса), но без уточнения места работы (Азбука вкуса на Тверской). Пример:

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

Text

Название профессии. В этом свойстве можно использовать неструктурированный текст, например "Разработчик программного обеспечения".

Рекомендации:

  • В этом свойстве должно быть указано только название профессии.
  • Не включайте в свойство name коды должностей, адреса, даты, зарплату и название компании.

    Неправильно: "В Москве открыта ИТ-вакансия для говорящих по-французски".

    Правильно: "Специалист по маркетингу, говорящий по-французски".

  • Названия должны быть короткими и легко читаемыми.
  • Не злоупотребляйте специальными символами, например ! и *, иначе разметка может быть отнесена к спаму. Цифры и символы типа "/" и "-" относятся к допустимым знакам.

    Неправильно: "*** НА СКЛАД ТРЕБУЮТСЯ РАБОТНИКИ!! РЯДОМ АВТОБУСНАЯ ОСТАНОВКА!!! ***".

    Правильно: "Младший сотрудник склада для отгрузки и приема товаров".

occupationLocation

Массив City, State, Country

Местоположение, которое относится к информации о должности. Если вам нужно задать одно местоположение, укажите его на уровне города, региона или страны в одном свойстве Name.

Пример с подробным указанием местоположения (рекомендуется)

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

Примеры с менее подробным указанием местоположения

Ниже приведены два примера, которые являются допустимыми, хотя в них местоположение указано не очень подробно:

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

Рекомендации:

  • Местоположение можно указывать с точностью до города.
  • Если в вашей стране нет штатов, значением свойства State может быть название региона.
  • Значение occupationLocation – это место, где располагается работа, а не где была создана страница с ориентировочными зарплатами.
  • Если для 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 должны быть представлены точные и однозначные сведения о профессии.

    Неправильно: "Стажировка. Практика для офисных работников в организации".

    Правильно: "Стажировка в качестве помощника аналитика. Рабочие обязанности: сбор и анализ данных для получения статистики, которая помогает руководителям принимать решения".

  • Значения свойств description и name не должны совпадать.
  • Не указывайте в description сведения о работодателе. Вместо этого используйте hiringOrganization.
estimatedSalary.currency

Text

Трехбуквенный код валюты в формате ISO 4217. Пример: USD или RUB.

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

Устранение неполадок

Если у вас возникли трудности с добавлением или отладкой структурированных данных, вам помогут ресурсы и сведения, доступные по приведенным ниже ссылкам.