Hay un problema bastante común en webs WordPress que usan plugins SEO… y muchas veces pasa completamente desapercibido.
La web parece funcionar bien.
Google indexa las páginas.
Los rich snippets incluso pueden aparecer.
Pero si miras el código con un poco más de atención, encuentras algo curioso: varios bloques de schema que describen exactamente lo mismo.
Dos Article.
Dos Organization.
Dos BreadcrumbList.
O peor aún: estructuras similares generadas por plugins distintos que no saben que el otro existe.
Esto es lo que llamamos schema duplicado en WordPress, y suele aparecer cuando varios plugins (o incluso el theme) generan marcado estructurado al mismo tiempo.
En muchos artículos sobre SEO técnico se menciona de pasada, pero pocas veces se explica cómo detectarlo realmente y por qué ocurre dentro de WordPress. Vamos a verlo con un poco más de profundidad.
Por qué aparece schema duplicado en WordPress
Para entender el problema hay que empezar por cómo funciona WordPress por dentro.
El schema normalmente se inyecta en el <head> o en el footer de la página usando JSON-LD. Y casi siempre lo hace un plugin a través de hooks como:
wp_headwp_footer- filtros internos del propio plugin
El problema es que WordPress no tiene un sistema centralizado para gestionar datos estructurados.
Cada plugin hace lo siguiente:
- Genera su propio JSON-LD
- Lo imprime en la página
- Asume que nadie más está haciendo lo mismo
Y ahí empiezan los conflictos.
Es bastante habitual encontrarse con combinaciones como:
- Plugin SEO principal (Yoast, RankMath, SEOPress…)
- Plugin de schema específico (Schema Pro, Structured Data for WP…)
- Theme que añade schema por defecto
- Plugins de recetas, eventos o reviews
Cada uno puede estar generando su propio marcado estructurado.
Sobre el papel parece correcto.
En la práctica, muchas veces significa duplicación o superposición de entidades.
Qué problemas puede causar el schema duplicado
Aquí hay que matizar algo importante.
El schema duplicado no siempre rompe el SEO automáticamente.
Google es bastante tolerante con errores menores en structured data. Pero eso no significa que sea una buena práctica.
Los problemas más habituales son:
Interpretación ambigua del contenido
Si Google encuentra dos bloques Article distintos, puede tener que decidir cuál usar.
En algunos casos:
- ignora uno
- mezcla datos
- o simplemente descarta ambos
No es algo que quieras dejar al azar.
Pérdida de control sobre rich snippets
Cuando el marcado se duplica o se solapa:
- los breadcrumbs pueden venir de un plugin
- el artículo de otro
- la organización de otro distinto
El resultado es un grafo de datos incoherente.
Problemas al escalar el proyecto
En webs pequeñas esto puede pasar desapercibido.
Pero cuando empiezas a trabajar con:
- custom post types
- schemas específicos
- datos estructurados más complejos
…el caos empieza a crecer.
Y entonces arreglarlo es mucho más difícil.
Cómo detectar schema duplicado en WordPress paso a paso
Aquí es donde entra el enfoque práctico.
La mayoría de guías dicen algo como “usa una herramienta de validación de schema”.
Eso está bien… pero no es suficiente para detectar duplicaciones reales.
Este es un proceso que suele funcionar mejor.
1. Inspeccionar el código fuente real de la página
Primer paso: ver qué se está imprimiendo realmente.
No lo que dice el plugin en su panel.
Lo que está saliendo en el HTML.
Abre una página del sitio y:
clic derecho → ver código fuente
Ahora busca:
application/ld+json
Ahí verás todos los bloques JSON-LD generados.
Este punto ya da muchas pistas.
En auditorías es bastante común encontrar:
- varios bloques
Article - varios
BreadcrumbList - varias entidades
Organization
Y casi siempre vienen de plugins distintos.
2. Buscar múltiples bloques JSON-LD
El siguiente paso es analizar si esos bloques describen lo mismo.
Por ejemplo:
Bloque 1
@type: Article
headline: Título del post
author: ...
Bloque 2
@type: Article
headline: Título del post
author: ...
Aunque los campos cambien un poco, el significado es el mismo.
Eso ya es schema duplicado funcional.
3. Analizar quién está generando cada schema
Aquí es donde empieza la parte interesante.
Para identificar el origen del schema puedes fijarte en varias pistas:
- comentarios HTML cercanos
- estructura del JSON-LD
- naming de campos específicos
- documentación del plugin
Muchos plugins SEO usan estructuras muy reconocibles.
Por ejemplo:
- Yoast genera un grafo conectado de entidades
- otros plugins generan bloques independientes
Esto permite identificar qué plugin está detrás del marcado.
4. Validar el marcado con herramientas externas
Después conviene pasar la URL por herramientas como:
- Rich Results Test
- Schema Markup Validator
Pero no para detectar duplicación (no siempre lo hacen bien), sino para comprobar:
- si hay entidades redundantes
- si Google está interpretando una sola
- o varias
Aquí es donde muchas veces se descubre que Google está ignorando parte del schema.
Conflictos típicos entre plugins SEO que generan schema duplicado
En la práctica, los mismos patrones se repiten una y otra vez.
Otro de los problemas más comunes al utilizar varios plugins de SEO a la vez puede ser la Duplicación de Canonical por Conflicto entre Plugins WP
Plugins SEO + plugins de schema dedicados
Este es probablemente el caso más común.
Instalas:
- Yoast o RankMath
- y además un plugin de schema
Resultado:
- ambos generan Article
- ambos generan Organization
- ambos generan Breadcrumbs
El usuario suele pensar que el plugin extra “añade más schema”, cuando en realidad muchas veces lo está duplicando.
Plugins SEO + themes que añaden structured data
Algunos themes modernos incluyen schema básico.
Por ejemplo:
- schema para breadcrumbs
- schema para artículos
- schema para autor
El problema es que el theme no sabe si ya hay un plugin SEO activo.
Así que ambos generan lo mismo.
Esto ocurre más de lo que parece.
Plugins SEO duplicados o migraciones mal cerradas
Otro escenario bastante típico:
- antes usabas Yoast
- migras a RankMath
- pero algo sigue activo
A veces:
- el plugin antiguo no se desinstaló bien
- queda código en el theme
- o un addon sigue generando schema
Y de repente tienes dos sistemas completos de structured data funcionando a la vez.
Cómo solucionar el schema duplicado sin romper el SEO
La solución no siempre es “desactivar todo”.
Hay que hacerlo con cierto criterio.
Desactivar el schema en uno de los plugins
Muchos plugins permiten desactivar partes del marcado.
Por ejemplo:
- breadcrumbs
- schema global
- tipos de contenido específicos
La idea suele ser dejar un único sistema generando el grafo principal.
Esto mantiene la coherencia.
Revisar hooks y filtros si necesitas control fino
Cuando el proyecto es más técnico, puede ser necesario intervenir en:
- filtros del plugin
- funciones del theme
- eliminación de hooks
Esto permite eliminar únicamente el schema problemático sin desactivar todo el plugin.
Es un enfoque más limpio cuando necesitas mantener funcionalidades concretas.
Auditar qué tipo de schema necesitas realmente
Este punto suele pasarse por alto.
Muchas webs generan schema que no aporta absolutamente nada.
Por ejemplo:
- Organization duplicado
- WebSite duplicado
- Article generado tres veces
Menos marcado… pero bien estructurado… suele ser mejor que un exceso de JSON-LD sin control.
Un detalle que muchos pasan por alto: el schema no vive aislado
Aquí hay algo importante.
El schema forma parte del grafo de datos de la página.
Está relacionado con:
- canonical
- breadcrumbs
- author
- publisher
- estructura del contenido
Cuando hay duplicación, lo que realmente se rompe no es solo el schema.
Se rompe la coherencia del grafo completo.
Por eso los plugins SEO más avanzados intentan construir una estructura conectada, no bloques sueltos.
Cuando añades otro plugin que genera schema sin integrarse en ese sistema… empiezan los conflictos.
Conclusión
El schema duplicado en WordPress casi nunca es un problema visible desde la interfaz del plugin.
En el panel todo parece correcto.
Pero lo que importa es lo que realmente se imprime en el HTML.
Y ahí es donde a menudo aparecen:
- entidades repetidas
- grafos desconectados
- o marcado generado por varios sistemas a la vez.
Detectarlo no requiere herramientas complejas.
Requiere mirar el output real y entender cómo los plugins interactúan con WordPress.
Cuando trabajas con WordPress desde dentro —plugins, hooks, head, filtros— empiezas a ver que muchos problemas SEO no vienen de Google… sino de cómo generamos el HTML.
Para ver la visión global de este tema, consulta también meta etiquetas WordPress head.
Si te interesa el SEO técnico aplicado a WordPress desde esta perspectiva —donde el comportamiento real del plugin importa más que el marketing—, este es exactamente el tipo de problemas que merece la pena aprender a detectar.
9. FAQs
¿Google penaliza el schema duplicado en WordPress?
No suele haber una penalización directa. Sin embargo, puede hacer que Google ignore parte del marcado estructurado o no genere rich snippets, especialmente si encuentra entidades redundantes o incoherentes.
¿Cómo saber qué plugin está generando el schema?
La forma más fiable es inspeccionar el código fuente y analizar la estructura del JSON-LD. Muchos plugins generan patrones reconocibles en el grafo de datos o en los campos utilizados.
¿Es malo tener varios bloques JSON-LD en una página?
No necesariamente. Una página puede tener varios tipos de schema distintos. El problema aparece cuando varios bloques describen la misma entidad, como dos Article o dos Organization.
¿Los plugins SEO como Yoast o RankMath ya generan schema automáticamente?
Sí. La mayoría de plugins SEO modernos generan schema completo por defecto, incluyendo Article, Breadcrumbs, WebSite y Organization. Por eso añadir otro plugin de schema suele provocar duplicaciones.
¿Los themes pueden generar schema sin que lo sepas?
Sí. Algunos themes incluyen marcado estructurado básico directamente en las plantillas. Si además usas un plugin SEO, puede producirse duplicación sin que aparezca ninguna advertencia en el panel de WordPress.
Si necesitas ayuda profesional, mira esto: auditoria tecnica wordpress