Para implementar schema markup en WordPress use JSON-LD — el formato que Google recomienda desde 2015 —, con SEOPress Pro para el ~80% de los casos y Code Snippets PHP para los schemas custom, y valide todo con Rich Results Test. El premio es medible: páginas con rich results obtienen 20-40% más clics que el mismo ranking sin ellos.
Schema markup es la diferencia entre aparecer como un resultado más en Google y aparecer con estrellas, precio, FAQs desplegables o su cara como autor. Es el lenguaje que le habla directamente a los crawlers, traduciendo su HTML en datos que Google, Bing, ChatGPT y Perplexity entienden sin ambigüedades.
La mayoría de tutoriales sobre schema en WordPress se quedan en “instala Yoast/Rank Math y ya”. Esta guía va más profundo: implementación con SEOPress Pro paso a paso, schemas custom con Code Snippets PHP, plantillas JSON-LD listas para copiar, validación con Rich Results Test, errores que hacen que Google ignore su marcado, y cómo estructurar schema para que los LLMs de AI Overviews lo citen.
Qué es schema markup y por qué multiplica su CTR
Schema markup es un vocabulario estandarizado (creado por Google, Microsoft, Yahoo y Yandex en schema.org) que se inyecta en su HTML para describir el contenido de la página de forma estructurada. En lugar de que Google adivine que un número es un precio o que una fecha es la publicación de un artículo, schema lo declara explícitamente.
El impacto en CTR es medible. Estudios de Search Engine Land y Schema.org muestran que páginas con rich results obtienen 20-40% más clics que el mismo ranking sin rich results. Razón: ocupan más espacio visual, comunican información clave (precio, rating, FAQs) directamente en SERP, y proyectan autoridad.
Qué tipos de rich results activa schema
- Article/BlogPosting: miniatura grande, autor, fecha
- Product: precio, disponibilidad, rating, reviews
- LocalBusiness: dirección, horarios, teléfono en panel lateral
- Recipe: tiempo de preparación, calorías, foto
- Event: fecha, lugar, precio de entradas
- Video: duración, miniatura, descripción
- BreadcrumbList: jerarquía de navegación visible en SERP
- FAQPage: preguntas desplegables (solo gobierno y salud autorizados desde 2023)
Tipos de schema relevantes para empresas
No todos los schemas aplican a todos los sitios. Los más relevantes para empresas B2B y servicios profesionales en 2026:
| Schema | Cuándo usarlo |
|---|---|
| Organization | Empresa con presencia corporativa: nombre legal, logo, redes (sameAs), contacto |
| LocalBusiness | Negocio con ubicación física: address, geo, openingHours, priceRange |
| ProfessionalService | Servicios profesionales con areaServed multi-ciudad sin oficina en cada una |
| Service | Página de un servicio específico (SEO, Google Ads, Diseño Web) |
| Article / BlogPosting | Posts de blog: headline, autor con @id, fechas, imagen |
| Person | Autores y profesionales: jobTitle, sameAs, worksFor (señal E-E-A-T) |
| BreadcrumbList | Jerarquía de navegación; casi obligatorio en cualquier sitio |
| WebSite con SearchAction | Sitebox de búsqueda interna en SERP de marca |
Organization
Para empresas con presencia corporativa. Define nombre legal, logo, redes sociales (sameAs), contacto. Si es marca personal o consultor independiente, considere Person en su lugar.
LocalBusiness
Para negocios con ubicación física. Hereda de Organization pero agrega address, geo, openingHours, priceRange. Variantes específicas: Restaurant, Dentist, AutoRepair, etc. Activa el panel de Knowledge Graph local en Google.
ProfessionalService
Variante de LocalBusiness para servicios profesionales (consultoría, abogacía, marketing, etc.). Permite definir areaServed con coordenadas geográficas para servicio multi-ciudad sin oficinas físicas en cada una, como una página de posicionamiento SEO en Medellín atendida desde otra ciudad.
Service
Para páginas que describen un servicio específico (no la empresa entera). Define el servicio, el provider, áreas de cobertura. Una empresa puede tener múltiples páginas Service: SEO, Google Ads, Diseño Web, etc.
Article / BlogPosting
Para posts de blog y artículos editoriales. Define headline, autor (con @id que apunte a Person), datePublished, dateModified, image. Activa la miniatura grande en SERP móvil.
Person
Para autores, fundadores, profesionales. Define jobTitle, image, sameAs (redes), worksFor. Crítico para señales E-E-A-T en 2026: Google quiere saber quién está detrás del contenido.
BreadcrumbList
Casi obligatorio en cualquier sitio. Define la jerarquía de navegación de la página actual. Aparece en SERP debajo del título reemplazando la URL técnica.
WebSite con SearchAction
Activa la sitebox de búsqueda interna en SERP de marca. Usuario busca su marca y Google muestra una caja de búsqueda dentro de su sitio.
JSON-LD vs Microdata vs RDFa: cuál usar
Schema.org acepta tres formatos de marcado. Solo uno es relevante en 2026.
JSON-LD (la respuesta)
Es el formato que Google recomienda explícitamente desde 2015. Se inyecta como un
Microdata
Atributos itemscope/itemtype/itemprop dentro del HTML visible. Funciona pero acopla schema con presentación: cualquier rediseño puede romperlo. No usar en proyectos nuevos.
RDFa
Similar a Microdata pero con atributos typeof/property. Mismo problema de acoplamiento. No usar.
Schema con SEOPress Pro: configuración paso a paso
SEOPress Pro tiene un módulo de Schemas que permite crear reglas declarativas: “para todas las páginas tipo X, aplica schema Y con estos campos mapeados a estos meta de WordPress”.
Activación inicial
SEO → Advanced → Advanced: activar “Enable Schemas”. SEO → Schemas: aparecen los schemas existentes (vacío al inicio).
Crear schema Article para todos los posts
- Add new → Schema type: Article (o BlogPosting según prefiera)
- Title: “Article schema for all posts”
- Mapeo de campos: headline → Post title, author → “user defined” con su Person @id, datePublished → Post date, dateModified → Post modified, image → Featured image, description → Excerpt
- Conditions: Page type “is” Single post type → post
- Save
Crear schema Service para páginas de servicios
- Add new → Schema type: Service
- Title: “Service schema for service pages”
- Mapeo: name → Post title, description → Excerpt, provider → “user defined” con @id de su Organization/Person, areaServed → ciudades atendidas, serviceType → categoría
- Conditions: Page type “is” Single page → si tiene CPT “service” usar ese, sino filtrar por categoría/parent
- Save
Schema BreadcrumbList automático
SEO → Advanced → Breadcrumbs: activar “Enable Breadcrumbs JSON+LD”. SEOPress genera el BreadcrumbList automático sin configuración adicional. La estructura sigue la jerarquía parent/child de WordPress + categorías de posts.
Schema custom con Code Snippets: cuándo y cómo
SEOPress Pro cubre ~80% de casos. El 20% restante requiere código: schemas con datos calculados, áreas geográficas múltiples, ratings agregados de fuentes externas, eventos con datos dinámicos. Para estos uso el plugin Code Snippets.
Por qué Code Snippets en lugar de functions.php
- Cada snippet es un registro en BD con on/off, no requiere FTP
- Sobrevive a cambios de tema
- Cada snippet tiene contexto (admin, frontend, ambos)
- Facilita auditoría: se ven todos los hooks custom en un dashboard
- Versionado interno para rollback
Estructura básica de un snippet schema
add_action(‘wp_head’, ‘avj_inject_custom_schema’, 5); function avj_inject_custom_schema() { if (!is_page(‘mi-pagina-objetivo’)) return;
$schema = \[
'@context' => 'https://schema.org',
'@type' => 'ProfessionalService',
'name' => 'Mi Empresa',
// resto de propiedades
\];
echo '<script type="application/ld+json">';
echo wp\_json\_encode($schema, JSON\_UNESCAPED\_SLASHES | JSON\_UNESCAPED\_UNICODE);
echo '</script>' . "
”; }
Ese patrón (action en wp_head con prioridad 5, condicional por página, json_encode con flags Unicode) es el estándar limpio.
Plantillas listas: Person, ProfessionalService, BlogPosting
Tres plantillas JSON-LD validadas que puede copiar y adaptar.
Person (perfil profesional)
{ “@context”: “https://schema.org”, “@type”: “Person”, “@id”: “https://tudominio.com/#person”, “name”: “Tu Nombre”, “jobTitle”: “Tu Profesión”, “url”: “https://tudominio.com/”, “image”: “https://tudominio.com/avatar.jpg”, “email”: “tu@correo.com”, “telephone”: “+57 300 0000000”, “address”: { “@type”: “PostalAddress”, “addressLocality”: “Bucaramanga”, “addressRegion”: “Santander”, “addressCountry”: “CO” }, “sameAs”: [ “https://linkedin.com/in/tu-perfil”, “https://twitter.com/tu-perfil” ] }
ProfessionalService (con áreas geográficas)
{ “@context”: “https://schema.org”, “@type”: “ProfessionalService”, “@id”: “https://tudominio.com/#service”, “name”: “Tu Empresa”, “url”: “https://tudominio.com/”, “logo”: “https://tudominio.com/logo.png”, “image”: “https://tudominio.com/og-image.jpg”, “telephone”: “+57 300 0000000”, “priceRange”: ”$$”, “address”: { “@type”: “PostalAddress”, “addressLocality”: “Bucaramanga”, “addressCountry”: “CO” }, “areaServed”: [ {“@type”:“City”,“name”:“Bucaramanga”}, {“@type”:“City”,“name”:“Medellín”}, {“@type”:“City”,“name”:“Bogotá”} ], “founder”: {“@id”:“https://tudominio.com/#person”} }
BlogPosting
{ “@context”: “https://schema.org”, “@type”: “BlogPosting”, “headline”: “Título del artículo”, “datePublished”: “2026-04-27T09:00:00-05:00”, “dateModified”: “2026-04-28T10:00:00-05:00”, “author”: {“@id”:“https://tudominio.com/#person”}, “publisher”: { “@type”: “Organization”, “name”: “Tu Empresa”, “logo”: { “@type”: “ImageObject”, “url”: “https://tudominio.com/logo.png” } }, “image”: “https://tudominio.com/post-image.jpg”, “mainEntityOfPage”: “https://tudominio.com/post-url/” }
Cómo validar schema con Rich Results Test
Implementar schema sin validar es perder el tiempo. Tres herramientas oficiales:
Google Rich Results Test
En search.google.com/test/rich-results pega la URL o código JSON-LD y obtiene: tipos detectados, errores críticos, advertencias menores, vista previa de cómo se vería el rich result. Es la herramienta principal porque solo muestra schemas que Google realmente considera para rich results.
Schema.org Validator
En validator.schema.org valida sintaxis correcta y conformidad con el vocabulario schema.org. Útil para verificar schemas que Google no reconoce como rich results pero que igual son útiles (Person para E-E-A-T, WebSite para SearchAction).
Search Console → Enhancements
Una vez en producción, Search Console reporta los rich results que Google ha procesado. Aparecen en menú lateral por tipo (Articles, Products, Breadcrumbs, etc.). Tarda 7-14 días en mostrar tipos nuevos. Aquí se ven errores en producción que pueden no aparecer en validators sintéticos.
Errores comunes que hacen que Google ignore su schema
Schema técnicamente válido no garantiza rich results. Errores frecuentes:
1. Datos contradictorios entre HTML y schema
Schema dice precio “$50.000” pero el HTML visible dice “$45.000”. Google detecta la inconsistencia y descarta el schema. Regla: schema debe describir literalmente lo que el usuario ve.
2. URLs relativas o con http:// en sitio https://
Todas las URLs en schema deben ser absolutas y con el protocolo correcto (https://). Las relativas o con protocolo incorrecto se descartan.
3. Imágenes con dimensiones insuficientes
Article schema requiere imagen de mínimo 1200px de ancho para rich result con miniatura grande. Si sube una imagen de 800px, el schema es válido pero el rich result no aparece.
4. Datos placeholder no reemplazados
Copiar plantilla y dejar “[INSERT NAME]” como nombre de la empresa. Google lo detecta como spam de schema y penaliza.
5. Schema duplicado por múltiples plugins
Yoast + SEOPress + tema custom inyectando schemas separados. Resultado: dos Article schemas con datos ligeramente distintos. Google se confunde y descarta ambos. Solución: un solo plugin SEO + schemas custom solo en Code Snippets sin solapamiento.
6. Schemas deprecados
HowTo: rich results retirados en septiembre 2023. FAQ: solo permitido en sitios de gobierno y salud autorizados desde agosto 2023. Si los usa, Google los ignora. Un buen checklist completo de SEO técnico WordPress incluye auditar que no esté usando schemas obsoletos.
7. Hreflang/canonical contradictorio
Schema en URL X pero canonical apunta a URL Y. Google indexa Y y el schema de X queda huérfano.
Schema para AI Overviews: estructuras que prefieren los LLMs
En 2026 schema no solo alimenta a Google sino también a los LLMs que generan respuestas en AI Overviews, ChatGPT, Perplexity, Claude. Estos sistemas usan schema como señal estructural pero priorizan ciertos tipos.
Person + sameAs robusto
Los LLMs cruzan referencias para validar autoridad. Si su Person schema tiene sameAs con LinkedIn, Twitter, GitHub, Wikipedia (cuando aplique), los LLMs lo identifican como entidad real con presencia verificable. Esto eleva sus probabilidades de ser citado como fuente.
Article con author @id apuntando a Person
El uso correcto de @id genera un grafo de entidades. Article apunta a Person, Person tiene su propia entrada con datos completos. Los LLMs siguen ese grafo igual que un humano siguiendo links.
Organization con address verificable
Empresas con address físico verificable en LocalBusiness tienen señal adicional de autoridad real (no operación 100% digital sin presencia). Los LLMs lo notan.
Combinar schema con llms.txt
El estándar llms.txt (file en /llms.txt) declara qué páginas son las más relevantes de su sitio para crawlers de IA. Combinar llms.txt con schema robusto es el stack 2026 para máxima visibilidad en motores generativos. Para profundizar, lea la guía sobre schema como señal para IA en AI Overviews.
Caso real: de 0 a 100% rich results en 2 semanas
Cliente: empresa de servicios B2B en Bogotá, 47 páginas + 80 posts de blog. Estado inicial: cero rich results, schema solo el básico de Yoast (Article + WebSite con errores).
Auditoría inicial
- Article schema: presente pero con author como string, no como Person con @id
- Sin Organization schema
- Sin BreadcrumbList
- Sin Service schema en páginas de servicios
- Schema duplicado en home (Yoast + tema)
- Imágenes featured de 800px (insuficiente para rich result grande)
Plan ejecutado
Semana 1: migración Yoast → SEOPress Pro, configuración schema Article con author @id apuntando a Person, BreadcrumbList automático, Service schema para 8 páginas de servicios con areaServed.
Semana 2: Code Snippets para Person + Organization en home, optimización de imágenes featured a 1920x1080 con WebP, validación con Rich Results Test página por página, purga total de cache.
Resultados a 30 días
- Search Console → Articles: 80 páginas con rich result válido (de 0)
- Search Console → Breadcrumbs: 127 páginas con rich result (de 0)
- Knowledge panel de marca activado
- CTR promedio: +28% en queries de marca, +14% en queries genéricas
- Posiciones promedio: -1,8 (mejoró casi 2 posiciones de promedio)
Si quiere una auditoría profesional de su schema actual, identificación de tipos faltantes y plan de implementación con código listo para Code Snippets, contácteme para un servicio SEO con implementación de datos estructurados profesional.