Datos estructurados de salario estimado (Occupation)

Los datos estructurados Occupation permiten que los proveedores de estimaciones salariales definan rangos y promedios salariales según la región para diferentes tipos de trabajo y detalles sobre el puesto como prestaciones habituales, calificaciones y requisitos educativos. Los datos estructurados OccupationAggregationByEmployer permiten que los proveedores de estimaciones salariales agreguen puestos de trabajo por factores tales como los niveles de experiencia o el proceso de contratación.

Pueden aparecer salarios estimados en la experiencia de empleos de la Búsqueda de Google y como resultado enriquecido de la estimación salarial de un tipo de trabajo en particular.

Información salarial estimada en la experiencia de empleos de la Búsqueda de Google

Cómo añadir datos estructurados

Los datos estructurados son un formato estandarizado con el que se puede proporcionar información sobre una página y clasificar su contenido. Consulta cómo funcionan los datos estructurados si aún no te has familiarizado con ellos.

A continuación se explica a grandes rasgos cómo crear, probar y publicar datos estructurados. Si necesitas una guía detallada para añadir datos estructurados a una página web, consulta el codelab de datos estructurados.

  1. Añade las propiedades obligatorias. Consulta más información sobre dónde insertar datos estructurados en una página en función del formato que estés utilizando.
  2. Sigue las directrices.
  3. Valida tu código con la prueba de resultados enriquecidos y corrige los errores críticos. Te recomendamos que también corrijas los problemas no críticos que puedan marcarse en la herramienta, ya que pueden ayudar a mejorar la calidad de los datos estructurados (sin embargo, esto no es necesario para que se muestren los resultados enriquecidos).
  4. Crea varias páginas que incluyan tus datos estructurados y comprueba cómo las ve Google con la herramienta de inspección de URLs. Asegúrate de que Google pueda acceder a tu página y de que no esté bloqueada por un archivo robots.txt, por la etiqueta noindex ni por requisitos de inicio de sesión. Si la página se ve bien, puedes solicitar que Google vuelva a rastrear tus URLs.
  5. Para que Google siempre tenga la versión actualizada de tus páginas, te recomendamos que envíes un sitemap. Puedes automatizar este envío con la API Sitemap de Search Console.

Ejemplos

Ejemplo de Occupation

En el siguiente ejemplo de JSON-LD se muestra un elemento Occupation simple con datos de salario estimado:


<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>

Ejemplo de OccupationAggregationByEmployer

En el siguiente ejemplo de JSON-LD se muestra un ejemplo más complejo de OccupationAggregationByEmployer con datos de salario estimado:

<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>

Directrices

Debes seguir las directrices de calidad y las directrices técnicas generales de datos estructurados. Además, las siguientes directrices se aplican a datos estructurados Occupation:

Directrices técnicas

  • Los datos estructurados de Occupation son datos independientes. No hace falta que estén asociados con ningún otro dato estructurado que proporciones a Google.
  • Añade solo uno de los tipos Occupation o OccupationAggregationByEmployer a una página web. No incluyas más de una de esas definiciones de tipo por página.
  • Asegúrate de que tus datos estructurados coinciden con lo que aparece en la página. A continuación, tienes algunos ejemplos:
    • En tu página solo muestras a los usuarios el salario mediano, y tus datos estructurados solo incluyen esos valores.
    • En tu página redondeas el salario anual al múltiplo de 5000 más cercano y ofreces el mismo grado de detalle en los datos estructurados.
  • Especifica las propiedades solo una vez por definición, salvo que se indique lo contrario.
  • Para puestos de trabajo que tengan diferentes características según la ubicación (por ejemplo, el rango de salarios en el noreste de EE. UU. puede ser distinto al del Medio Oeste), crea una página web independiente, cada una con su propia definición de Occupation, que especifique un elemento occupationLocation diferente.
  • No añadas datos estructurados de estimación de salario a las páginas en las que se muestra una relación de puestos de trabajo.
  • Cuando cambies las páginas, actualiza tus sitemaps diariamente.

Directrices de contenido

  • Agrupa empleos similares cuando todos los trabajos tengan rangos salariales y descripciones similares. Los nombres de los puestos de trabajo deben ser específicos, pero no hasta el punto de que resulten confusos. A continuación, se muestran algunos ejemplos:
    • No seas demasiado general:

      No recomendado: "Psicólogos clínicos, escolares y psicoterapeutas"

      Recomendado: "Psicólogo escolar", "Psicólogo clínico", "Terapeuta clínico" y "Doctor en Psicología"

    • No seas demasiado específico:

      No recomendado: "Enfermero titulado a domicilio", "Enfermero titulado (ET)" ni "ET: Enfermero titulado, atención a domicilio"

      Recomendado: "Enfermero titulado"

Definiciones de tipos de datos estructurados

En esta sección se describen los tipos de datos estructurados relacionados con las estimaciones salariales.

Para que tu contenido pueda mostrarse en la experiencia de empleos de Google y como resultado enriquecido, debes incluir las propiedades obligatorias. Si quieres, puedes especificar también las propiedades recomendadas para proporcionar más información sobre tu contenido y, así, ofrecer una mejor experiencia a tus usuarios.

Occupation

El tipo Occupation sirve para definir información sobre un trabajo, como el salario estimado, las habilidades necesarias y las responsabilidades. Puedes consultar la definición completa de Occupation en schema.org/Occupation.

Las propiedades que admite Google son las siguientes:

Propiedades obligatorias
estimatedSalary

Matriz de MonetaryAmountDistribution

Indica el salario estimado de un puesto de trabajo en el elemento occupationLocation correspondiente. Especifica un rango salarial o estimaciones salariales por percentiles.

En el siguiente ejemplo se muestra un rango de salario estimado:

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

Para tener en cuenta el salario base, las bonificaciones y otras formas de compensación monetaria, define varios salarios en la matriz estimatedSalary. Es obligatorio indicar el salario base. Si quieres, puedes incluir otros tipos de compensación.

Este es un ejemplo de bonificación:

"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

Periodo, expresado en el formato de fecha ISO 8601, que se tarda en conseguir el sueldo estimado. Por ejemplo, si ese sueldo se gana a lo largo de un año, indica el valor P1Y en duration.

estimatedSalary.name

Text

Indica el tipo de valor. Es obligatorio indicar el salario base. Si quieres, puedes incluir otros tipos de compensación. Por ejemplo, "Base", "Bonificación" y "Comisión".

name

Text

Es el nombre de un empleo. En esta propiedad se puede escribir texto no estructurado. Por ejemplo, "Ingeniero de software".

Prácticas recomendadas:

  • En esta propiedad debe constar únicamente el nombre del puesto de trabajo.
  • No incluyas códigos de trabajo, direcciones, fechas, salarios ni nombres de empresa en la propiedad name.

    No recomendado: "Solicita ahora un puesto de TI en Bucarest: requiere francés fluido"

    Recomendado: "Especialista de mercado, requiere francés fluido"

  • Incluye títulos concisos y legibles.
  • No abuses de caracteres especiales como ! o *. Si usas demasiados caracteres de este tipo, es posible que se considere que tus etiquetas tienen contenido fraudulento. Sí que se aceptan números y caracteres como / y -.

    No recomendado: "*** ¡CONTRATACIÓN EN ALMACÉN EN UNA RUTA DE AUTOBUSES! ***"

    Recomendado: "Asociado de almacén para enviar y recibir mercancía"

occupationLocation

Matriz de City, State o Country

Indica el lugar donde se encuentra este puesto de trabajo. Define esta ubicación a nivel de ciudad, estado o país en la propiedad Name si se especifica una ubicación única.

Ejemplo más detallado (opción recomendada)

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

Ejemplos menos detallados

A continuación se incluyen dos ejemplos menos detallados, pero que siguen siendo aceptables:

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

Prácticas recomendadas:

  • El máximo nivel de detalle de una ubicación debería ser la ciudad.
  • En la propiedad State se pueden indicar nombres de región si en tu país no se especifica un estado.
  • El valor de occupationLocation es la ubicación en la que se desempeñará el trabajo, no la ubicación donde se creó la lista de estimación de salario.
  • Si un solo tipo Occupation incluye varias ubicaciones, especifícalas en la matriz de occupationLocation, tal como se muestra en el siguiente ejemplo.
    "occupationLocation": [
      {
        "@type": "City",
        "name": "Portland, Oregon, US" // Salary specified for multiple locations
      }, {
        "@type": "City",
        "name": "Seattle, Washington, US"
       }
    ]
  • Algunos datos, como los rangos salariales, los requisitos educativos y las calificaciones para profesiones, suelen variar en función de la ubicación. Para representarlo, define varias páginas, cada una con su propia definición de Occupation y una occupationLocation distinta.
Propiedades recomendadas
description

Text

La descripción del puesto de trabajo.

En description debe incluirse una descripción completa del puesto de trabajo, incluidas sus responsabilidades, calificaciones, aptitudes, horas de trabajo y requisitos de formación y de experiencia.

Directrices adicionales:

  • Incluye el elemento description en todas las páginas de producto a las que puede acceder un usuario, no solo en la página de nivel superior.
  • En description se debe identificar el empleo de manera única y proporcionar una descripción detallada de sus funciones.

    No recomendado: "Prácticas: las prácticas son una formación laboral para carreras administrativas y profesionales"

    Recomendado: "Becario de analista de datos: prácticas para trabajar con un analista de datos. Estos analistas extraen información valiosa de los datos para ayudar en la toma de decisiones".

  • description no puede ser igual que name.
  • No incluyas la organización que contrata en el elemento description. Indícala mejor en hiringOrganization.
estimatedSalary.currency

Text

Indica el código de moneda ISO 4217 de 3 letras del valor. Por ejemplo, "USD" o "CAD".

estimatedSalary.median

Number

Indica el valor del percentil 50 (o "mediana"). Es decir, la mitad de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile10

Number

Indica el valor del percentil 10. Es decir, el 10 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile25

Number

El valor del percentil 25. Es decir, el 25 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile75

Number

El valor del percentil 75. Es decir, el 75 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile90

Number

El valor del percentil 90. Es decir, el 90 % de los salarios de esta profesión son iguales o inferiores a este valor.

mainEntityOfPage

WebPage

Es el elemento principal que se describe en la página.

mainEntityOfPage.lastReviewed

Date

Indica la fecha en que se produjo la información sobre el salario estimado, expresada en el formato ISO 8601. Por ejemplo:

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

OccupationAggregationByEmployer

El tipo OccupationAggregationByEmployer proporciona datos relacionados con el trabajo agrupados por empresa. Por ejemplo, puedes indicar el sector y la organización al cargo de un grupo de profesiones si la empresa los agrega.

Las propiedades que admite Google son las siguientes:

Propiedades obligatorias
estimatedSalary

Matriz de MonetaryAmountDistribution

Indica el salario estimado de un puesto de trabajo en el elemento occupationLocation correspondiente. Especifica un rango salarial o estimaciones salariales por percentiles.

En el siguiente ejemplo se muestra un rango de salario estimado:

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

Para tener en cuenta el salario base, las bonificaciones y otras formas de compensación monetaria, define varios salarios en la matriz estimatedSalary. Es obligatorio indicar el salario base. Si quieres, puedes incluir otros tipos de compensación.

Ejemplo con una bonificación

"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

Periodo, expresado en el formato de fecha ISO 8601, que se tarda en conseguir el sueldo estimado. Por ejemplo, si ese sueldo se gana a lo largo de un año, indica el valor P1Y en duration.

estimatedSalary.name

Text

Indica el tipo de valor. Es obligatorio indicar el salario base. Si quieres, puedes incluir otros tipos de compensación. Por ejemplo, "Base", "Bonificación" y "Comisión".

hiringOrganization

Organization

La organización que ofrece un puesto de trabajo. Da el valor "https://schema.org/" al atributo @context. hiringOrganization debe ser el nombre de la empresa (por ejemplo, "Starbucks, Inc"), y no la dirección específica de la ubicación que está contratando (como "Starbucks en Gran Vía"). Por ejemplo:

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

Text

Es el nombre de un empleo. En esta propiedad se puede escribir texto no estructurado. Por ejemplo, "Ingeniero de software".

Prácticas recomendadas:

  • En esta propiedad debe constar únicamente el nombre del puesto de trabajo.
  • No incluyas códigos de trabajo, direcciones, fechas, salarios ni nombres de empresa en la propiedad name.

    No recomendado: "Solicita ahora un puesto de TI en Bucarest: requiere francés fluido"

    Recomendado: "Especialista de mercado, requiere francés fluido"

  • Incluye títulos concisos y legibles.
  • No abuses de caracteres especiales como ! o *. Si usas demasiados caracteres de este tipo, es posible que se considere que tus etiquetas tienen contenido fraudulento. Los números y caracteres como "/" y "-" sí que se aceptan.

    No recomendado: "*** ¡CONTRATACIÓN EN ALMACÉN EN UNA RUTA DE AUTOBUSES! ***"

    Recomendado: "Asociado de almacén para enviar y recibir mercancía"

occupationLocation

Matriz de City, State o Country

Indica el lugar donde se encuentra este puesto de trabajo. Define esta ubicación a nivel de ciudad, estado o país en la propiedad Name si se especifica una ubicación única.

Ejemplo más detallado (opción recomendada)

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

Ejemplos menos detallados

A continuación se incluyen dos ejemplos menos detallados, pero que siguen siendo aceptables:

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

Prácticas recomendadas:

  • El máximo nivel de detalle de una ubicación debería ser la ciudad.
  • En la propiedad State se pueden indicar nombres de región si en tu país no se especifica un estado.
  • El valor de occupationLocation es la ubicación en la que se desempeñará el trabajo, no la ubicación donde se creó la lista de estimación de salario.
  • Si un solo tipo Occupation incluye varias ubicaciones, especifícalas en la matriz de occupationLocation, tal como se muestra en el siguiente ejemplo.
    "occupationLocation": [
      {
        "@type": "City",
        "name": "Portland, Oregon, US" // Salary specified for multiple locations
      }, {
        "@type": "City",
        "name": "Seattle, Washington, US"
       }
    ]
  • Algunos datos, como los rangos salariales, los requisitos educativos y las calificaciones para profesiones, suelen variar en función de la ubicación. Para representarlo, define varias páginas, cada una con su propia definición de Occupation y una occupationLocation distinta.
Propiedades recomendadas
description

Text

La descripción del puesto de trabajo.

En description debe incluirse una descripción completa del puesto de trabajo, incluidas sus responsabilidades, calificaciones, aptitudes, horas de trabajo y requisitos de formación y de experiencia.

Directrices adicionales:

  • Incluye el elemento description en todas las páginas de producto a las que puede acceder un usuario, no solo en la página de nivel superior.
  • En description se debe identificar el empleo de manera única y proporcionar una descripción detallada de sus funciones.

    No recomendado: "Prácticas: las prácticas son una formación laboral para carreras administrativas y profesionales"

    Recomendado: "Becario de analista de datos: prácticas para trabajar con un analista de datos. Estos analistas extraen información valiosa de los datos para ayudar en la toma de decisiones".

  • description no puede ser igual que name.
  • No incluyas la organización que contrata en el elemento description. Indícala mejor en hiringOrganization.
estimatedSalary.currency

Text

Indica el código de moneda ISO 4217 de 3 letras del valor. Por ejemplo, "USD" o "CAD".

estimatedSalary.median

Number

Indica el valor del percentil 50 (o "mediana"). Es decir, la mitad de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile10

Number

Indica el valor del percentil 10. Es decir, el 10 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile25

Number

El valor del percentil 25. Es decir, el 25 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile75

Number

El valor del percentil 75. Es decir, el 75 % de los salarios de este puesto de trabajo son iguales o inferiores a este valor.

estimatedSalary.percentile90

Number

El valor del percentil 90. Es decir, el 90 % de los salarios de esta profesión son iguales o inferiores a este valor.

industry

Text

Indica el sector asociado al puesto de trabajo.

jobBenefits

Text

Es la descripción de las ventajas asociadas al puesto de trabajo.

mainEntityOfPage

WebPage

Es el elemento principal que se describe en la página.

mainEntityOfPage.lastReviewed

Date

Indica la fecha en que se produjo la información sobre el salario estimado, expresada en el formato ISO 8601. Por ejemplo:

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

Number

Indica el número de datos que contribuyen a los datos salariales agregados. Por ejemplo:

"sampleSize": 42
yearsExperienceMax

Number

Los años máximos de experiencia que son aceptables para este puesto de trabajo. Por ejemplo, un puesto junior podría especificar un máximo de 5 años de experiencia, como se muestra en el siguiente ejemplo:

"yearsExperienceMax": 5
yearsExperienceMin

Number

La cantidad mínima de años de experiencia requerida para este puesto de trabajo. Por ejemplo, un puesto de alto nivel puede requerir al menos 10 años de experiencia, como se muestra en el siguiente ejemplo:

"yearsExperienceMin": 10

Solucionar problemas

Si tienes problemas para implementar o depurar datos estructurados, a continuación se incluyen algunos recursos que pueden serte útiles.