DEV Community

Cover image for Structured Data para B2B: cómo hacer que Google (y la IA) entiendan tu web
Roiting
Roiting

Posted on

Structured Data para B2B: cómo hacer que Google (y la IA) entiendan tu web

#ai

Si tienes un sitio B2B, el problema no suele ser que Google no te indexe: es que no entiende qué ofreces, a quién y por qué debería mostrarte. El structured data (datos estructurados) resuelve justo eso — y desde que los motores de respuesta con IA (ChatGPT Search, Gemini, Perplexity) construyen respuestas a partir de fuentes que consideran fiables, marcar tu web con schema ha pasado de "nice to have" a infraestructura básica.

Este post es una guía práctica con JSON-LD real que puedes copiar, adaptar y validar hoy.

Por qué JSON-LD y no Microdata

Google recomienda JSON-LD sobre Microdata o RDFa por una razón práctica: va en un solo bloque <script>, separado del HTML. No ensucias el markup, lo inyectas dinámicamente y lo testeas de forma aislada.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Tu Empresa"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Regla de oro: el schema debe describir lo que el usuario ve en la página. Marcar datos que no existen en el contenido visible es una vía rápida a una penalización manual.

1. Organization + LocalBusiness

La base de tu identidad. Para una empresa con oficina física, LocalBusiness (subtipo de Organization) te da elegibilidad para resultados enriquecidos locales.

{
  "@context": "https://schema.org",
  "@type": "ProfessionalService",
  "name": "Roiting | Agencia de Marketing B2B Valencia",
  "url": "https://www.roiting.com",
  "telephone": "+34962736602",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Gran Via de les Germanies, 7",
    "addressLocality": "València",
    "addressRegion": "Valencia",
    "postalCode": "46006",
    "addressCountry": "ES"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 39.4634,
    "longitude": -0.3762
  },
  "areaServed": { "@type": "Country", "name": "España" },
  "priceRange": "€€"
}
Enter fullscreen mode Exit fullscreen mode

Nota sobre el teléfono: usa formato E.164 (+34962736602) en el schema aunque en pantalla lo muestres como 962 73 66 02. Los parsers lo prefieren normalizado.

2. Service: describe lo que vendes

En B2B, cada servicio clave merece su propio marcado. Ayuda a los motores a asociarte con búsquedas de intención concreta.

{
  "@context": "https://schema.org",
  "@type": "Service",
  "serviceType": "Account-Based Marketing (ABM)",
  "provider": {
    "@type": "Organization",
    "name": "Roiting | Agencia de Marketing B2B Valencia"
  },
  "areaServed": "ES",
  "description": "Campañas ABM para cuentas B2B de alto valor.",
  "audience": {
    "@type": "BusinessAudience",
    "name": "Empresas B2B (industria, tecnología, servicios)"
  }
}
Enter fullscreen mode Exit fullscreen mode

3. FAQPage: el más rentable en B2B

Los compradores B2B llegan con preguntas. Marcar tu FAQ con schema no solo puede darte resultados enriquecidos: alimenta directamente a los motores de respuesta con IA, que extraen pares pregunta-respuesta bien estructurados.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "¿En qué se diferencia la generación de demanda del lead generation?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "El lead generation busca volumen de contactos. La generación de demanda crea y captura interés cualificado a lo largo de todo el ciclo, con el pipeline como objetivo."
      }
    },
    {
      "@type": "Question",
      "name": "¿Cuánto tarda en verse resultados una estrategia B2B?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Con un sistema completo —estrategia, canales, automatización y medición— los primeros resultados en negocio suelen aparecer en torno a los 90 días."
      }
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

4. BreadcrumbList: estructura navegable

Ayuda a los motores a entender la jerarquía de tu sitio y mejora cómo aparece la URL en los resultados.

{
  "@context": "https://schema.org",
  "@type": "BreadcrumbList",
  "itemListElement": [
    {
      "@type": "ListItem",
      "position": 1,
      "name": "Inicio",
      "item": "https://www.roiting.com"
    },
    {
      "@type": "ListItem",
      "position": 2,
      "name": "Servicios",
      "item": "https://www.roiting.com/servicios"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Inyectar el schema con JavaScript

Si trabajas con un SPA o quieres centralizar el schema, inyéctalo por JS. Este helper evita duplicados:

function injectSchema(schemaObject) {
  // Evita insertar el mismo tipo dos veces
  const type = schemaObject['@type'];
  const existing = document.querySelector(
    `script[data-schema-type="${type}"]`
  );
  if (existing) existing.remove();

  const script = document.createElement('script');
  script.type = 'application/ld+json';
  script.dataset.schemaType = type;
  script.textContent = JSON.stringify(schemaObject);
  document.head.appendChild(script);
}

// Uso
injectSchema({
  '@context': 'https://schema.org',
  '@type': 'FAQPage',
  mainEntity: [/* ... */]
});
Enter fullscreen mode Exit fullscreen mode

Conecta el schema con tu analítica

De poco sirve marcar una FAQ si no sabes si la gente interactúa con ella. Aquí el puente entre structured data y medición: dispara un evento cuando alguien abre una pregunta marcada con schema.

document.querySelectorAll('[data-faq-question]').forEach((el) => {
  el.addEventListener('click', () => {
    // GA4 mediante dataLayer (Google Tag Manager)
    window.dataLayer = window.dataLayer || [];
    window.dataLayer.push({
      event: 'faq_interaction',
      faq_question: el.dataset.faqQuestion,
      page_section: 'faq_b2b'
    });
  });
});
Enter fullscreen mode Exit fullscreen mode

Y el envío directo a GA4 sin GTM, para eventos de conversión B2B (una descarga de recurso, por ejemplo):

function trackConversion(action, params = {}) {
  if (typeof gtag !== 'function') return;
  gtag('event', action, {
    event_category: 'b2b_engagement',
    ...params
  });
}

// Ejemplo: descarga de un lead magnet
trackConversion('resource_download', {
  resource_name: 'guia_generacion_demanda',
  value: 1
});
Enter fullscreen mode Exit fullscreen mode

Consejo B2B: no midas solo "leads". Instrumenta los micro-eventos que anticipan una oportunidad — descarga de caso de éxito, visita a la página de precios, tiempo en la demo. Son las señales que de verdad predicen pipeline.

Validar antes de publicar

Nunca subas schema sin validar. Tres herramientas:

  1. Schema Markup Validator — valida contra la spec de Schema.org.
  2. Rich Results Test de Google — te dice si eres elegible para resultados enriquecidos.
  3. Google Search Console → informe de Mejoras, para monitorizar en producción.

Snippet rápido para detectar todos los bloques JSON-LD de una página desde la consola del navegador:

[...document.querySelectorAll('script[type="application/ld+json"]')]
  .map((s) => {
    try { return JSON.parse(s.textContent); }
    catch (e) { return { error: 'JSON inválido', raw: s.textContent }; }
  })
  .forEach((schema, i) => console.log(`Schema ${i + 1}:`, schema));
Enter fullscreen mode Exit fullscreen mode

Checklist de implementación

  • [ ] Organization / ProfessionalService en todas las páginas (idealmente en el layout)
  • [ ] Service en cada página de servicio
  • [ ] FAQPage donde tengas preguntas reales visibles
  • [ ] BreadcrumbList en páginas internas
  • [ ] Teléfono en formato E.164 dentro del schema
  • [ ] El schema refleja contenido visible (nada oculto)
  • [ ] Validado en los dos validadores
  • [ ] Eventos de analítica conectados a las interacciones clave

Cierre

El structured data es de las pocas optimizaciones con impacto directo tanto en SEO clásico como en visibilidad en motores de IA, y es puro trabajo técnico: lo implementas una vez, lo validas y lo mantienes. Empieza por Organization y FAQPage, mide las interacciones, e itera.


Escrito por el equipo de **Roiting, agencia de marketing B2B en València especializada en SEO técnico, generación de demanda y medición conectada con ventas. 📍 Gran Via de les Germanies, 7, L'Eixample, 46006 València · 📞 962 73 66 02

Top comments (0)