Skip to main content
Validación HTML

Se especificó el atributo “itemprop”, pero el elemento no es una propiedad de ningún ítem.

Acerca de este problema HTML

Microdata es una especificación HTML que te permite incrustar datos legibles por máquina en tu contenido usando tres atributos principales: itemscope, itemtype, e itemprop. El atributo itemscope crea un nuevo ítem (un grupo de pares nombre-valor), itemtype especifica qué tipo de cosa es el ítem (usando una URL de vocabulario como Schema.org), e itemprop define propiedades individuales dentro de ese ítem. Estos atributos funcionan juntos — itemprop solo tiene sentido en el contexto de un itemscope.

Cuando el validador encuentra un atributo itemprop en un elemento que no es descendiente de ningún elemento con itemscope, no tiene forma de asociar esa propiedad con un ítem. La propiedad queda esencialmente huérfana. Esto es un problema por varias razones:

  • Los motores de búsqueda no pueden usar los datos. Los consumidores de datos estructurados como Google, Bing y otros rastreadores dependen de la jerarquía itemscope/itemprop para entender tu contenido. Un itemprop huérfano es ignorado o malinterpretado.
  • Cumplimiento de estándares. El estándar HTML living del WHATWG requiere que un elemento con itemprop debe ser una propiedad de un ítem — lo que significa que debe tener un ancestro con itemscope, o ser referenciado explícitamente vía el atributo itemref en un elemento itemscope.
  • Problemas de mantenimiento. Los atributos itemprop huérfanos sugieren que el marcado circundante fue refactorizado y la estructura de microdata se rompió accidentalmente.

Las causas más comunes de este error son:

  1. itemscope faltante — Agregaste atributos itemprop pero olvidaste definir el ítem contenedor con itemscope.
  2. Elementos movidos — Un elemento con itemprop fue movido fuera de su contenedor itemscope original durante una refactorización.
  3. Errores de copiar y pegar — Copiaste un fragmento que incluía itemprop pero no el itemscope padre.

Para corregir el problema, envuelve los elementos itemprop dentro de un contenedor itemscope, usa itemref para asociar propiedades distantes con un ítem, o elimina el atributo itemprop si no se pretendían datos estructurados.

Ejemplos

Incorrecto: itemprop sin itemscope

Esto desencadena el error de validación porque no hay un ancestro itemscope:

<div>
  <p>Mi nombre es <span itemprop="name">Liza</span>.</p>
</div>

Correcto: itemprop dentro de un contenedor itemscope

Agregar itemscope (y opcionalmente itemtype) a un elemento ancestro corrige el problema:

<div itemscope itemtype="https://schema.org/Person">
  <p>Mi nombre es <span itemprop="name">Liza</span>.</p>
</div>

Correcto: ítems anidados con su propio alcance

Cuando un ítem contiene un sub-ítem, el ítem anidado necesita su propio itemscope:

<div itemscope itemtype="https://schema.org/Person">
  <p itemprop="name">Liza</p>
  <div itemprop="address" itemscope itemtype="https://schema.org/PostalAddress">
    <span itemprop="addressLocality">Portland</span>,
    <span itemprop="addressRegion">OR</span>
  </div>
</div>

Correcto: usando itemref para propiedades fuera del alcance

Si no puedes reestructurar tu HTML para anidar itemprop dentro de itemscope, usa itemref para referenciar elementos por su id:

<div itemscope itemtype="https://schema.org/Person" itemref="user-name"></div>

<p id="user-name">
  Mi nombre es <span itemprop="name">Liza</span>.
</p>

En este caso, el elemento itemprop="name" no es descendiente del elemento itemscope, pero el atributo itemref="user-name" extrae explícitamente el árbol del elemento referenciado hacia el ítem, haciéndolo válido.

Incorrecto: alcance roto después de refactorizar

Un escenario del mundo real común donde aparece el error después de reestructurar:

<div itemscope itemtype="https://schema.org/Product">
  <span itemprop="name">Widget</span>
</div>

<!-- Esto fue movido fuera del div de arriba -->

<span itemprop="price">9.99</span>

Corrige esto moviendo el elemento de vuelta dentro del contenedor itemscope, usando itemref, o eliminando el itemprop huérfano.

Encuentra problemas como este automáticamente

Rocket Validator escanea miles de páginas en segundos, detectando problemas de HTML en todo tu sitio web.

Ayúdanos a mejorar nuestras guías

¿Te ha sido útil esta guía?

¿Listo para validar tus sitios?
Inicia tu prueba gratuita hoy.