Schema Markup Guide: JSON-LD for Rich Results – BuiltToWinWeb
EN ES FR DE IT PT ZH JA KO RU NL
← Back to all articles

Dominio del marcado Schema: JSON‑LD para resultados enriquecidos (2026)

Los datos estructurados ya no son opcionales. Google ahora utiliza schema para entender entidades, y los sitios con fragmentos enriquecidos obtienen el doble de tasa de clics en promedio. Sin embargo, más del 70% de los sitios web de pequeñas empresas no tienen ningún marcado schema. Esta guía cubre cada tipo de schema que necesitarás – con código JSON‑LD listo para copiar y pegar, estrategias de implementación y resultados reales.

Por qué el schema es importante para el SEO (el caso de negocio)

El marcado schema no aumenta directamente el ranking. Pero desbloquea resultados enriquecidos – valoraciones con estrellas, acordeones de preguntas frecuentes, precios de productos, fechas de eventos y migas de pan mostrados directamente en las SERP. Estos listados visualmente prominentes se cliquean mucho más que los enlaces azules simples. Un CTR más alto envía señales de compromiso positivas a Google, lo que puede mejorar indirectamente el ranking.

Datos: Un estudio de caso de Search Engine Journal mostró que las páginas con esquema FAQ vieron un aumento del 12‑15% en el CTR. El esquema LocalBusiness con valoraciones de estrellas elevó el CTR en un 20‑30%. Para el comercio electrónico, el esquema Product aumentó las tasas de clic hasta en un 40% en los resultados de compras.

JSON‑LD vs Microdata vs RDFa – Siempre elige JSON‑LD

Tres formas de añadir schema:

  • JSON‑LD (preferido por Google) – Un bloque de script en el <head> o <body>. Limpio, no satura el HTML, fácil de mantener.
  • Microdata – Incrusta atributos directamente en las etiquetas HTML. Desordenado y verboso.
  • RDFa – Similar a microdata, pero más complejo.

Siempre usa JSON‑LD. Es más fácil de generar dinámicamente, no rompe tu HTML y Google lo recomienda explícitamente.

Los 8 tipos de schema más valiosos para pequeñas empresas

1. Organization – Para la identidad de marca

Coloca esto en tu página de inicio. Ayuda a Google a asociar tu logo, perfiles sociales y nombre legal.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "BuiltToWinWeb",
  "url": "https://built2winweb.com",
  "logo": "https://built2winweb.com/logo.webp",
  "sameAs": [
    "https://www.linkedin.com/in/jacob-campbell-32a60a1a7/",
    "https://www.upwork.com/freelancers/~016276996a9883140f"
  ],
  "contactPoint": {
    "@type": "ContactPoint",
    "telephone": "+15613017130",
    "contactType": "customer service",
    "availableLanguage": "English"
  }
}
</script>

2. LocalBusiness – Para SEO local

Esencial para cualquier negocio con ubicación física o área de servicio. Muestra dirección, teléfono, horarios y valoraciones con estrellas en el paquete local.

{
  "@type": "LocalBusiness",
  "name": "BuiltToWinWeb",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "7322 Ashley Shores Circle",
    "addressLocality": "Lake Worth",
    "addressRegion": "FL",
    "postalCode": "33467",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": "26.5986",
    "longitude": "-80.1784"
  },
  "telephone": "+15613017130",
  "openingHours": "Mo-Fr 09:00-17:00",
  "priceRange": "$$",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "5.0",
    "reviewCount": "7"
  }
}

3. FAQPage – Duplica tu espacio en la SERP

Las preguntas frecuentes en formato acordeón se expanden directamente en los resultados de búsqueda. Tu listado ocupa de 2 a 3 veces el espacio vertical de un resultado normal.

{
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How much does a custom PHP website cost?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Flat‑fee packages: Business $1,750, Ecommerce $5,600, SaaS $10,000. One payment, no monthly fees."
      }
    },
    {
      "@type": "Question",
      "name": "Do you build ecommerce stores without Shopify?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes – custom PHP with Stripe checkout. No subscription fees, you own the code."
      }
    }
  ]
}

4. Product – Para comercio electrónico

Muestra precio, disponibilidad y reseñas en Google Shopping y en los resultados estándar.

{
  "@type": "Product",
  "name": "Custom PHP Ecommerce Store",
  "image": "https://built2winweb.com/ecommerce.jpg",
  "description": "Full‑featured custom online store with Stripe checkout. One flat fee, no monthly costs.",
  "sku": "BTW-ECOMM",
  "offers": {
    "@type": "Offer",
    "price": "5600",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "url": "https://built2winweb.com/services/ecommerce"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "5.0",
    "reviewCount": "7"
  }
}

5. BreadcrumbList – Ruta de navegación limpia

Reemplaza la URL cruda con una ruta de navegación cliqueable (Inicio > Servicios > Diseño web). Mejora el CTR y ayuda a Google a entender la estructura del sitio.

{
  "@type": "BreadcrumbList",
  "itemListElement": [
    { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://built2winweb.com/" },
    { "@type": "ListItem", "position": 2, "name": "Services", "item": "https://built2winweb.com/services/" },
    { "@type": "ListItem", "position": 3, "name": "Custom PHP Website", "item": "https://built2winweb.com/services/custom-php-website/" }
  ]
}

6. Article / BlogPosting – Para páginas de contenido

Permite que tus publicaciones de blog aparezcan en el carrusel de Top Stories de Google y en resultados destacados de estilo noticioso. Requiere autor, fecha de publicación e imagen.

{
  "@type": "Article",
  "headline": "Schema Markup Mastery: JSON‑LD for Rich Results",
  "description": "Complete guide to implementing schema markup with copy‑paste JSON‑LD examples.",
  "datePublished": "2026-02-15",
  "dateModified": "2026-05-24",
  "author": {
    "@type": "Person",
    "name": "Jacob Campbell"
  },
  "publisher": {
    "@type": "Organization",
    "name": "BuiltToWinWeb",
    "logo": { "@type": "ImageObject", "url": "https://built2winweb.com/logo.webp" }
  },
  "image": "https://built2winweb.com/schema-guide.jpg",
  "mainEntityOfPage": "https://built2winweb.com/blog/schema-markup-guide"
}

7. HowTo – Para tutoriales y guías

Muestra instrucciones paso a paso con imágenes directamente en los resultados de búsqueda – perfecto para contenido de "cómo hacer".

{
  "@type": "HowTo",
  "name": "How to Add Schema Markup to Your Website",
  "step": [
    { "@type": "HowToStep", "name": "Choose your schema type", "text": "Select from LocalBusiness, FAQPage, Product, etc." },
    { "@type": "HowToStep", "name": "Generate JSON‑LD", "text": "Use a generator or write manually." },
    { "@type": "HowToStep", "name": "Add to your HTML head", "text": "Place the script tag in <head> or before </body>." },
    { "@type": "HowToStep", "name": "Test with Rich Results Tool", "text": "Validate at search.google.com/test/rich-results." }
  ]
}

8. Event – Para webinars, talleres o eventos locales

Muestra fecha, hora, ubicación y disponibilidad de entradas directamente en las SERP.

Cómo añadir schema sin romper tu sitio

  1. Escribe tu JSON‑LD dentro de una etiqueta <script type="application/ld+json">.
  2. Colócalo en el <head> (mejor para el rastreo) o al final del <body> (también funciona).
  3. Usa la Prueba de resultados enriquecidos de Google para validar.
  4. Después del despliegue, monitorea Google Search Console → Mejoras para ver errores.

Schema automatizado para sitios PHP – Generación dinámica

Para sitios con cientos de productos o publicaciones, genera schema dinámicamente. Aquí hay una función PHP completa para el esquema Product:

<?php
function outputProductSchema($product) {
    $schema = [
        "@context" => "https://schema.org",
        "@type" => "Product",
        "name" => $product['name'],
        "description" => $product['description'],
        "sku" => $product['sku'],
        "offers" => [
            "@type" => "Offer",
            "price" => number_format($product['price'], 2),
            "priceCurrency" => "USD",
            "availability" => $product['in_stock'] ? "https://schema.org/InStock" : "https://schema.org/OutOfStock"
        ]
    ];
    if (!empty($product['image_url'])) {
        $schema['image'] = $product['image_url'];
    }
    echo '<script type="application/ld+json">' . json_encode($schema, JSON_UNESCAPED_SLASHES) . '</script>';
}
?>

Pruebas y solución de problemas – Herramientas y errores comunes

Herramientas de prueba:

Errores comunes y soluciones:

  • Faltan propiedades requeridas: ej., Article necesita `author`, `headline`, `datePublished`. Consulta la especificación de schema.org.
  • Usar URLs relativas: Siempre usa URLs absolutas (incluye `https://`).
  • Referencias `@id` no coincidentes: Si haces referencia a una entidad, asegúrate de que exista.
  • Schema que no coincide con el contenido visible: Google puede penalizar reseñas falsas o precios que no están en la página.
  • Colocar JSON‑LD en el body pero no cerrar la etiqueta script: Causa HTML mal formado.

Caso de estudio: del 8% de CTR al 21% de CTR con schema

Un bufete de abogados de familia en Florida tenía un sitio WordPress sin schema. Sus páginas de áreas de práctica tenían un promedio del 8% de CTR en móvil. Añadimos:

  • Esquema LocalBusiness a la página de inicio con aggregateRating (4.8 estrellas de 24 reseñas de Google).
  • Esquema FAQ a cada página de área de práctica (ej., “¿Cuánto tiempo dura un divorcio en Florida?”).
  • Esquema BreadcrumbList a cada página.

Resultados después de 60 días:

  • CTR promedio en móvil en las páginas de áreas de práctica: 8% → 21%.
  • La posición para “abogado de divorcio Orlando” mejoró del #14 al #6 (el CTR saltó del 6% al 29%).
  • Llamadas orgánicas desde la búsqueda: +134%.

El bufete ahora aparece con valoraciones de estrellas y acordeones de FAQ, dominando a los competidores que todavía tienen enlaces azules simples.

Avanzado: Combinar múltiples tipos de schema con @graph

En lugar de bloques de script separados, puedes combinarlos:

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "name": "..." },
    { "@type": "LocalBusiness", ... },
    { "@type": "FAQPage", ... }
  ]
}

Esto es más limpio y puede ayudar a la resolución de entidades de Google.

¿Listo para añadir schema a tu sitio?

Implemento schema en cada sitio web PHP personalizado que construyo – toma 20 minutos y ofrece meses de mayor CTR. Incluso si tienes un sitio existente, puedo añadir esquemas LocalBusiness, FAQ y Breadcrumb por una tarifa fija.

Verás resultados en 30 días: tasas de clics más altas, más llamadas y, a menudo, un aumento en el ranking.

Implementaré schema para tu sitio →

Fuentes: Search Engine Journal, documentación de resultados enriquecidos de Google y resultados reales de clientes de BuiltToWinWeb.