Schema.org Metatag

Extiende el módulo Metatag de Drupal para mostrar datos estructurados de Schema.org como JSON-LD en el head de las páginas web.

schema_metatag
59,150 sites
148
drupal.org

Install

Drupal 11, 10, 9 v3.0.3
composer require 'drupal/schema_metatag:^3.0'

Overview

Schema.org Metatag extiende el módulo Metatag de Drupal para mostrar datos estructurados como JSON-LD en el head de las páginas web. Esto permite rich snippets y resultados de búsqueda mejorados al proporcionar marcado de vocabulario Schema.org que los motores de búsqueda como Google pueden entender y utilizar para mostrar resultados de búsqueda enriquecidos.

El módulo permite codificar propiedades de Schema.org de forma fija o identificar patrones usando reemplazos de tokens. Usando el sistema de anulación del módulo Metatag, puedes definir valores de datos estructurados predeterminados para todos los tipos de contenido, anular los valores globales predeterminados para un tipo de contenido particular, o incluso anular todo lo demás en un nodo individual para proporcionar valores específicos para ese nodo.

El módulo proporciona una arquitectura basada en plugins con plugins de tipo de propiedad para varios tipos de datos de Schema.org, permitiendo datos estructurados anidados complejos con definiciones de @type apropiadas. Se proporcionan múltiples submódulos para tipos específicos de Schema.org como Article, Product, Event, Organization, etc.

Features

  • Renderiza datos estructurados de Schema.org en formato JSON-LD en el head del HTML
  • Se integra perfectamente con el módulo Metatag de Drupal
  • Soporta reemplazos de tokens para valores de propiedades dinámicos
  • Proporciona 43 plugins de tipo de propiedad para tipos de datos de Schema.org (Text, Number, Date, Organization, Person, ImageObject, etc.)
  • Soporta estructuras anidadas complejas de Schema.org con jerarquías de @type apropiadas
  • Incluye envoltorio @graph para múltiples objetos Schema.org en una sola página
  • Proporciona funcionalidad de pivote para múltiples valores en datos estructurados
  • 21 submódulos para tipos específicos de Schema.org (Article, Product, Event, Organization, etc.)
  • Arquitectura extensible que permite agregar tipos personalizados de Schema.org
  • Utiliza archivo de datos de vocabulario de Schema.org para jerarquías de tipos y definiciones de propiedades
  • Almacena en caché árboles de objetos Schema.org e información de propiedades para rendimiento
  • Soporta estados de visibilidad para elementos de formulario basados en la selección de @type

Use Cases

Rich Snippets de artículos para publicaciones de blog

Habilita el submódulo schema_article y configura los metatags predeterminados de Schema.org Article para tipos de contenido de blog. Establece @type como BlogPosting, usa tokens para headline ([node:title]), description ([node:summary]), datePublished ([node:created:html_datetime]), dateModified ([node:changed:html_datetime]), nombre del autor ([node:author:display-name]) y organización del editor. Esto permite que Google muestre rich snippets con información del autor, fechas de publicación y vistas previas de artículos en los resultados de búsqueda.

Resultados enriquecidos de productos para comercio electrónico

Habilita el submódulo schema_product y configura datos estructurados de Product para tipos de contenido de productos. Incluye información de oferta con price, priceCurrency y availability. Agrega calificaciones agregadas si usas un sistema de calificación. Esto permite la integración con Google Shopping y rich snippets de productos que muestran precio, disponibilidad y calificaciones con estrellas directamente en los resultados de búsqueda.

Datos de organización para negocios locales

Habilita el submódulo schema_organization y configura datos estructurados de Organization o LocalBusiness para tu sitio. Incluye nombre, logo, dirección, puntos de contacto y horarios de atención. Establece esto como valor predeterminado global para aparecer en todas las páginas. Esto ayuda a los motores de búsqueda a entender la identidad de tu negocio y puede activar la visualización del panel de conocimiento.

Listados de eventos con datos estructurados

Habilita el submódulo schema_event y configura datos estructurados de Event para tipos de contenido de eventos. Incluye startDate, endDate, location (usando el tipo de propiedad Place con dirección), performer y offers para información de entradas. Esto habilita resultados enriquecidos de eventos en la búsqueda de Google mostrando fechas, ubicaciones y precios de entradas.

Resultados enriquecidos de recetas para sitios de comida

Habilita el submódulo schema_recipe para tipos de contenido de recetas. Configura propiedades para prepTime, cookTime, recipeIngredient, recipeInstructions (usando HowToStep), información nutricional y calificaciones agregadas. Esto habilita resultados enriquecidos de recetas con tiempos de cocción, calificaciones e información de calorías en los resultados de búsqueda.

Datos estructurados de página de preguntas frecuentes

Habilita el submódulo schema_qa_page y configura datos estructurados de FAQPage para contenido de FAQ. Agrega elementos Question con acceptedAnswer usando los tipos de propiedad apropiados. Esto habilita resultados enriquecidos de FAQ donde las preguntas y respuestas aparecen directamente en los resultados de búsqueda, ocupando más espacio en el SERP.

Cuadro de búsqueda de sitelinks

Habilita el submódulo schema_web_site y configura datos estructurados de WebSite con potentialAction establecido como SearchAction. Configura la URL de destino a la página de búsqueda de tu sitio con el parámetro de consulta. Esto puede habilitar la función de cuadro de búsqueda de sitelinks en la búsqueda de Google, permitiendo a los usuarios buscar en tu sitio directamente desde Google.

Resultados enriquecidos de contenido de video

Habilita el submódulo schema_video_object para tipos de contenido de video. Configura thumbnailUrl, uploadDate, duration, description y contentUrl. Esto habilita resultados enriquecidos de video con vistas previas de miniaturas e insignias de duración en los resultados de búsqueda.

Datos estructurados de ofertas de empleo

Habilita el submódulo schema_job_posting para contenido de listados de empleo. Configura title, description, hiringOrganization, jobLocation, baseSalary y employmentType. Esto habilita resultados enriquecidos de ofertas de empleo que pueden aparecer en Google for Jobs, aumentando la visibilidad de los listados de empleo.

Navegación de migas de pan

Configura datos estructurados de BreadcrumbList para ayudar a los motores de búsqueda a entender la jerarquía de tu sitio. Esto puede mejorar cómo aparecen las migas de pan en los resultados de búsqueda, reemplazando la URL con una ruta de navegación legible.

Tips

  • Usa la Prueba de Resultados Enriquecidos de Google (https://search.google.com/test/rich-results) para validar tu salida JSON-LD
  • Siempre incluye las propiedades requeridas para cada tipo de Schema.org - consulta la documentación de Google para requisitos específicos
  • Usa tokens para valores dinámicos como [node:title], [node:created:html_datetime], [node:field_image:url] para auto-poblar datos estructurados
  • Para dimensiones de imagen, usa tokens como [node:field_image:0:width] y [node:field_image:0:height] del módulo Token
  • Configura primero los valores predeterminados globales, luego anula a nivel de tipo de contenido, y después a nivel de entidad individual si es necesario
  • El módulo renderiza JSON-LD en formato @graph, permitiendo múltiples objetos Schema.org en una sola página
  • Usa la opción 'pivot' cuando tengas múltiples valores (como múltiples autores u ofertas) para crear objetos separados para cada uno
  • Habilita solo los submódulos que necesites - cada uno agrega grupos adicionales de tipos de Schema.org a la configuración de Metatag
  • Copia la estructura del módulo schema_article_example cuando crees extensiones personalizadas de tipos de Schema.org
  • Limpia las cachés después de instalar nuevos submódulos para asegurar que los nuevos grupos de metatag aparezcan en la configuración

Technical Details

Hooks 2
hook_metatag_tags_alter

Permite a los módulos modificar las definiciones de etiquetas de Schema Metatag. Se puede usar para cambiar tipos de propiedad, padres del árbol, profundidad del árbol o habilitar múltiples valores para etiquetas específicas.

hook_schema_metatag_property_type_plugins_alter

Permite a los módulos modificar las definiciones de plugins de tipo de propiedad de Schema Metatag. Se puede usar para modificar tipos de propiedad, sub-propiedades y configuraciones de árbol para plugins de tipo de propiedad.

Troubleshooting 7
JSON-LD no aparece en el código fuente de la página

Verifica que el módulo esté habilitado y configurado correctamente en la configuración de Metatag. Comprueba que al menos la propiedad @type esté establecida para tu grupo de Schema.org. El módulo omite el renderizado si solo @type está establecido sin otras propiedades.

Los valores de tokens no se reemplazan

Asegúrate de que la sintaxis del token sea correcta y que el módulo Token esté instalado. Verifica que el contexto de la entidad esté disponible - algunos tokens requieren estar en una página de entidad específica. Usa el navegador de tokens de Devel para verificar los nombres de tokens.

Las dimensiones de imagen no aparecen

Usa los tokens específicos del campo de imagen con índice y propiedad, ej., [node:field_image:0:width] en lugar de tokens de imagen genéricos. El módulo Token del core proporciona estos tokens de dimensiones de imagen.

Errores de validación de Google por propiedades requeridas faltantes

Revisa la documentación de datos estructurados de Google para las propiedades requeridas de cada tipo. Asegúrate de que todos los campos REQUERIDOS estén completados en la configuración de Metatag. Algunos tipos como Article requieren author y publisher aunque Schema.org los marque como opcionales.

Errores de serialización o datos estructurados rotos

Esto puede ocurrir cuando los reemplazos de tokens tienen longitudes diferentes a los tokens originales. El módulo incluye recálculo automático de longitud, pero si los problemas persisten, verifica caracteres especiales o saltos de línea en los valores de tokens.

Los elementos del formulario no muestran estados de visibilidad correctamente

Los estados de visibilidad dependen del selector @type. Asegúrate de que la propiedad @type esté configurada primero en el formulario. El módulo maneja de manera diferente los selectores del formulario principal de Metatag y del widget de campo.

Los grupos de metatag de submódulos no aparecen

Después de habilitar un submódulo, limpia todas las cachés. Si aún no aparece, verifica que las dependencias del submódulo se cumplan (ej., schema_item_list requiere metatag_views).

Security Notes 4
  • El módulo sanitiza la salida eliminando etiquetas HTML y convirtiendo valores a texto plano antes de la codificación JSON-LD
  • Los valores de tokens se procesan a través del sistema de renderizado de Drupal que maneja la prevención de XSS
  • Las funciones serialize/unserialize incluyen salvaguardas contra ataques de inyección de objetos usando el parámetro allowed_classes
  • El manejo de URLs de imágenes convierte rutas relativas a URLs absolutas y extrae src de etiquetas img de forma segura