Combinar Article, FAQPage y HowTo en una sola página se hace con un @graph: un arreglo dentro del mismo script JSON-LD donde cada schema es un nodo independiente conectado por referencias @id. Es la estructura que usamos en KOM en producción para artículos con preguntas frecuentes y pasos. Aquí tienes la plantilla completa, la implementación paso a paso en WordPress y los errores que invalidan el marcado ante Google y los modelos de IA.
Tabla de Contenidos
- 1 ¿Por qué combinar varios schemas en una sola página?
- 2 La plantilla completa
- 3 Cómo implementarla en WordPress paso a paso
- 4 ¿Qué nodo elimino según el tipo de página?
- 5 Cómo se conecta el @graph con tus entidades de sitio
- 6 Errores que invalidan el marcado
- 7 ¿Cómo monitorear el marcado después de publicar?
- 8 Preguntas frecuentes
¿Por qué combinar varios schemas en una sola página?
Porque una buena página rara vez es una sola cosa. Un artículo serio sobre un proceso es a la vez contenido editorial (Article), una serie de pasos (HowTo) y un bloque de dudas resueltas (FAQPage). Marcar solo uno deja a las máquinas leyendo un tercio de lo que publicaste; marcar los tres en scripts separados y sin conexión genera nodos sueltos que se interpretan peor.
El @graph resuelve ambas cosas: declara todos los tipos en un solo bloque y los relaciona entre sí y con tus entidades de sitio, autor y organización, mediante @id. Esta técnica es parte del trabajo de fondo que explicamos en la guía de GEO para aparecer en ChatGPT, Gemini, Claude y Perplexity y que ejecutamos a diario en el servicio de posicionamiento GEO.
La plantilla completa
Cópiala, reemplaza dominios y textos, y elimina los nodos que tu página no necesite:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "Article",
"@id": "https://tudominio.pe/tu-articulo/#article",
"headline": "Título del artículo",
"description": "La misma meta description de la página.",
"inLanguage": "es-PE",
"datePublished": "2026-06-11",
"dateModified": "2026-06-11",
"mainEntityOfPage": "https://tudominio.pe/tu-articulo/",
"author": { "@id": "https://tudominio.pe/#autor" },
"publisher": { "@id": "https://tudominio.pe/#organizacion" }
},
{
"@type": "FAQPage",
"@id": "https://tudominio.pe/tu-articulo/#faq",
"mainEntity": [
{
"@type": "Question",
"name": "Pregunta tal como aparece visible en la página",
"acceptedAnswer": {
"@type": "Answer",
"text": "Respuesta idéntica a la visible, en texto plano."
}
}
]
},
{
"@type": "HowTo",
"@id": "https://tudominio.pe/tu-articulo/#howto",
"name": "Nombre del proceso que enseña el artículo",
"step": [
{
"@type": "HowToStep",
"name": "Nombre corto del paso",
"text": "Qué se hace y qué resultado deja."
}
]
}
]
}
</script>
Tres decisiones de diseño que conviene entender. Cada nodo lleva su @id con un ancla propia (#article, #faq, #howto): así otros nodos o páginas pueden referenciarlo sin ambigüedad. El autor y la organización no se redeclaran aquí: se referencian por @id hacia las entidades que ya defines una sola vez a nivel de sitio. Y la description del Article repite tu meta description a propósito: una sola fuente de verdad, menos mantenimiento.
Cómo implementarla en WordPress paso a paso
Paso 1: prepara los datos antes de tocar código
Reúne en un documento el título, la meta description, la URL final, las fechas de publicación y de última edición, las preguntas con sus respuestas y la lista de pasos con su resultado. Resultado verificable: todos los textos listos sin un solo pendiente de redacción.
Paso 2: adapta la plantilla a tu página
Reemplaza dominio y rutas, completa los nodos y elimina los que no apliquen. Multiplica los bloques Question y HowToStep según necesites, separados por comas. Resultado verificable: el JSON pasa un validador de sintaxis sin errores, algo que cualquier editor de código o validador online te confirma en segundos.
Paso 3: revisa qué genera ya tu plugin SEO
Abre el código fuente de la página publicada y busca application/ld+json. Si tu plugin ya emite un Article, no lo dupliques: configura tu bloque para complementar (FAQ y HowTo) o desactiva el nodo del plugin para esa página. Resultado verificable: un solo Article en el código fuente.
Paso 4: inserta el script en la página
Tienes tres vías limpias: el campo de schema personalizado de tu plugin SEO, un bloque HTML al final del contenido, o un snippet PHP condicionado a la URL si prefieres mantenerlo fuera del editor. Resultado verificable: el script aparece una sola vez en el código fuente de la página pública.
Paso 5: valida y corrige
Pasa la URL por la prueba de resultados enriquecidos de Google y corrige lo que marque. Revisa también que cada texto del schema exista visible en la página. Resultado verificable: validación sin errores y contenido espejado. [DATO-KOM: capturas del Rich Results Test con la plantilla validada]
¿Qué nodo elimino según el tipo de página?
La regla es de honestidad estructural: marca solo lo que la página realmente es. Sin bloque visible de preguntas y respuestas, fuera el FAQPage. Sin pasos reales que alguien pueda ejecutar, fuera el HowTo: una lista de consejos sueltos no es un procedimiento. El Article queda casi siempre, porque casi todo contenido editorial lo es.
La tentación inversa también existe: forzar un HowTo en una página comercial porque alguien dijo que ayuda. No lo hagas. El marcado que no corresponde al contenido visible es exactamente lo que los validadores y las políticas de datos estructurados penalizan, y lo que erosiona la confianza de los sistemas en tu dominio.
Cómo se conecta el @graph con tus entidades de sitio
Las referencias @id de autor y organización solo funcionan si esas entidades existen declaradas en algún lugar estable de tu sitio: típicamente el schema global que tu plugin SEO genera en la portada, o un bloque propio en la página de quiénes somos. Ahí viven el nodo Person con el nombre y credenciales del autor, y el nodo Organization con razón social, logo y datos de contacto, cada uno con el @id exacto que tus artículos van a citar.
El beneficio de esta arquitectura es acumulativo: cada artículo nuevo refuerza a las mismas entidades en lugar de crear copias, y las máquinas consolidan todo lo que publicas bajo un mismo autor y una misma organización. Define los @id una vez, documéntalos en tu manual interno y no los cambies más.
Errores que invalidan el marcado
Los cinco que más encontramos al auditar sitios peruanos. Schema que no refleja el contenido visible, sobre todo FAQs con respuestas distintas a las de la página. Nodos duplicados por convivencia de plugin y bloque manual, con dos Article compitiendo. Referencias @id que apuntan a entidades que nunca se declararon en el sitio. Fechas de dateModified congeladas hace dos años, que comunican abandono. Y comas sobrantes o comillas sin cerrar que rompen el JSON completo: un error de sintaxis no invalida un nodo, invalida todo el bloque.
¿Cómo monitorear el marcado después de publicar?
La validación del día uno no alcanza, porque los plugins se actualizan y las plantillas cambian. Dos hábitos cubren el riesgo: revisa los reportes de mejoras de Search Console cada mes, donde aparecen los errores de datos estructurados que Google encontró al rastrear, y vuelve a pasar la prueba de resultados enriquecidos después de cualquier cambio de tema, plugin SEO o constructor.
En KOM lo tenemos como regla de mantenimiento: cada actualización mayor de WordPress o del plugin SEO dispara una revalidación de las cinco URLs más importantes del sitio. Quince minutos que evitan meses de marcado roto sin que nadie lo note.
Preguntas frecuentes
¿Google sigue mostrando resultados enriquecidos de FAQ?
Los muestra de forma muy restringida desde que limitó ese formato a sitios de ciertos tipos, así que no esperes el despliegue visual de antes. El FAQPage sigue valiendo por otra razón: estructura pares de pregunta y respuesta que los sistemas de IA recuperan con facilidad, y documenta tu contenido en el formato en que los asistentes responden.
¿Un @graph grande afecta la velocidad de la página?
El impacto es despreciable: hablamos de unos pocos KB de texto que no bloquean el renderizado. El cuidado real no es el peso sino el mantenimiento: un bloque grande desincronizado del contenido hace más daño que su tamaño. Si tu página es liviana en todo lo demás, el schema nunca será tu problema de rendimiento.
¿Puedo usar esta plantilla si mi web está hecha con Elementor?
Sí. Las mismas tres vías del paso 4 funcionan: el campo de schema de tu plugin SEO, un widget HTML al final de la página, o un snippet PHP. En sitios con Elementor Pro solemos preferir el campo del plugin SEO, porque sobrevive a los cambios de diseño sin que nadie tenga que acordarse del widget.
¿Qué hago si mi plugin SEO ya genera parte de estos schemas?
Complementa en lugar de duplicar. Deja que el plugin emita el Article, que es lo que mejor automatiza, y agrega tú el FAQPage y el HowTo conectados con @id. Verifica el resultado final en el código fuente: el criterio es un nodo por tipo, sin importar cuántas herramientas participan en generarlos.
Tu siguiente paso: elige el artículo con más tráfico de tu blog que tenga preguntas o pasos, ármale su @graph con esta plantilla y pásalo por la prueba de resultados enriquecidos hoy. Con uno validado, replicar al resto es trabajo de molde.








