Schema Markup para Bufetes de Abogados: Guía Completa JSON-LD (2026)
He implementado esquema markup en docenas de sitios web de bufetes de abogados durante los últimos años, y el patrón es siempre el mismo: el desarrollador de la firma (o peor, su "especialista en SEO") no ha hecho nada, o ha aplicado esquema autogenerado de Yoast que apenas rasguña la superficie. Mientras tanto, el bufete competidor de la calle está obteniendo resultados enriquecidos de FAQ, datos de panel de conocimiento, y siendo citado por herramientas de búsqueda de IA — todo porque se tomaron el tiempo de escribir JSON-LD apropiado.
Esta guía es la que desearía que existiera cuando comencé. Cubriremos cada tipo de esquema que importa para bufetes de abogados — LegalService, Attorney, FAQPage, Organization, y cómo se conectan todos — con JSON-LD real y listo para producción que puedas adaptar e implementar hoy.
Tabla de Contenidos
- Por Qué el Schema Markup es Importante para Bufetes de Abogados en 2026
- JSON-LD vs Microdata: Elige el Formato Correcto
- Schema LegalService: La Base
- Schema Attorney con Person Markup
- Schema FAQPage para Áreas de Práctica
- Schema Organization: Uniéndolo Todo
- Construyendo un Grafo de Schema Conectado
- Dónde Colocar JSON-LD en Tus Plantillas
- Validación y Pruebas
- Errores Comunes que Destruyen Tus Resultados Enriquecidos
- FAQ

Por Qué el Schema Markup es Importante para Bufetes de Abogados en 2026
Seamos directos: el schema markup no hará que tu sitio tenga rango mágicamente. No es un factor de clasificación en el sentido tradicional. Pero hace tres cosas que se componen con el tiempo:
Resultados enriquecidos en SERPs. Desplegables de FAQ, calificaciones de estrellas, detalles del negocio — estos ocupan más espacio en la pantalla y aumentan las tasas de clics. Los datos de un estudio de investigación de Milestone de 2025 mostraron que las páginas con datos estructurados ganaron 40-50% más CTR que las que no los tenían.
Citas de búsqueda de IA. Google AI Overviews, Bing Copilot, Perplexity, y ChatGPT search todos analizan datos estructurados para entender entidades. Si quieres que tu bufete sea citado cuando alguien pregunta "mejor abogado de lesiones personales en Austin", el schema ayuda a estos sistemas a entender quién eres, qué haces, y dónde estás ubicado.
Elegibilidad del panel de conocimiento. El Knowledge Graph de Google extrae mucho de datos estructurados. Un bufete de abogados debidamente marcado con enlaces
sameAsconsistentes tiene muchas más probabilidades de activar un panel de conocimiento de marca.
Para bufetes de abogados específicamente, las apuestas son altas. Las palabras clave legales son algunas de las más caras en búsqueda pagada ($50-150+ por clic para áreas de práctica competitivas). Cualquier cosa que puedas hacer para mejorar la visibilidad orgánica vale el tiempo de ingeniería.
JSON-LD vs Microdata: Elige el Formato Correcto
Respuesta corta: usa JSON-LD. Siempre.
Google explícitamente recomienda JSON-LD. Es más fácil de mantener, no contamina tu marcado HTML, y puede inyectarse dinámicamente a través de etiquetas <script>. Microdata requiere que agregues atributos directamente a tus elementos HTML, lo que se vuelve desordenado rápidamente — especialmente si trabajas con un CMS sin cabeza como Sanity, Contentful, o Storyblok donde el contenido y la presentación están desacoplados.
| Característica | JSON-LD | Microdata | RDFa |
|---|---|---|---|
| Recomendado por Google | ✅ Sí | ⚠️ Soportado | ⚠️ Soportado |
| Separado del HTML | ✅ Sí | ❌ No | ❌ No |
| Fácil de mantener | ✅ Sí | ❌ Desordenado | ❌ Desordenado |
| Funciona con CMS sin cabeza | ✅ Encaje perfecto | ⚠️ Posible | ⚠️ Posible |
| Compatibilidad de búsqueda de IA | ✅ Excelente | ✅ Bueno | ✅ Bueno |
| Inyección dinámica | ✅ Trivial | ❌ Requiere cambios DOM | ❌ Requiere cambios DOM |
Si estás construyendo con Next.js o Astro (que hacemos mucho en Social Animal — ver nuestras capacidades de desarrollo Next.js y desarrollo Astro), JSON-LD es especialmente limpio. Generas como un objeto JavaScript y lo sueltas en una etiqueta <script type="application/ld+json"> en el <head>.
Schema LegalService: La Base
LegalService es el tipo schema.org diseñado específicamente para bufetes de abogados y prácticas legales. Es un subtipo de LocalBusiness, lo que significa que hereda todas las propiedades del negocio local — dirección, teléfono, horas — más puedes especificar detalles específicos legales.
Aquí hay un ejemplo listo para producción:
{
"@context": "https://schema.org",
"@type": "LegalService",
"@id": "https://www.smithlawfirm.com/#organization",
"name": "Smith & Associates Law Firm",
"alternateName": "Smith Law",
"url": "https://www.smithlawfirm.com",
"logo": {
"@type": "ImageObject",
"url": "https://www.smithlawfirm.com/images/logo.png",
"width": 600,
"height": 200
},
"image": "https://www.smithlawfirm.com/images/office-exterior.jpg",
"description": "Smith & Associates proporciona servicios legales de lesiones personales, derecho familiar, y planificación patrimonial en Austin, Texas.",
"telephone": "+1-512-555-0199",
"email": "contact@smithlawfirm.com",
"address": {
"@type": "PostalAddress",
"streetAddress": "456 Congress Avenue, Suite 300",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 30.2672,
"longitude": -97.7431
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "18:00"
}
],
"priceRange": "$$",
"areaServed": {
"@type": "City",
"name": "Austin",
"sameAs": "https://en.wikipedia.org/wiki/Austin,_Texas"
},
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Legal Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Personal Injury Representation",
"description": "Representación legal para accidentes automovilísticos, caídas y tropiezos, e lesiones laborales."
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Family Law",
"description": "Servicios de divorcio, custodia de menores, y acuerdos prenupciales."
}
}
]
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.8",
"reviewCount": "127",
"bestRating": "5"
},
"sameAs": [
"https://www.facebook.com/SmithLawAustin",
"https://www.linkedin.com/company/smith-law-austin",
"https://www.avvo.com/attorneys/smith-associates.html"
]
}
Propiedades Clave que No Deberías Omitir
@id: Esto es crucial para conectar esquemas juntos. Piénsalo como un identificador único que otros bloques de schema pueden referenciar.geo: Google usa esto para resultados del pack local. No lo omitas.areaServed: Si sirves múltiples ciudades o condados, enuméralos todos. UsaGeoCirclepara áreas de servicio basadas en radio.hasOfferCatalog: Así es como enumeras tus áreas de práctica como servicios. Idealmente, cada página de área de práctica también debería tener su propio schemaService.sameAs: Incluye tu Avvo, Justia, FindLaw, LinkedIn, Facebook — cualquier perfil autoritario. Esto ayuda a Google a conectar los puntos para tu panel de conocimiento.aggregateRating: Solo incluye esto si estás extrayendo de reseñas legítimas de primera parte. Las pautas de Google son estrictas aquí — no fabriques calificaciones.

Schema Attorney con Person Markup
Cada abogado en tu bufete debería tener un schema Person en su página de biografía. Aquí es donde E-E-A-T realmente entra en juego — estás diciéndoles explícitamente a los motores de búsqueda sobre credenciales, admisiones a la barra, educación, y experiencia.
{
"@context": "https://schema.org",
"@type": "Person",
"@id": "https://www.smithlawfirm.com/attorneys/jane-smith/#person",
"name": "Jane Smith",
"jobTitle": "Managing Partner",
"url": "https://www.smithlawfirm.com/attorneys/jane-smith",
"image": "https://www.smithlawfirm.com/images/attorneys/jane-smith.jpg",
"description": "Jane Smith es una abogada de lesiones personales en Austin, TX con más de 15 años de experiencia y un historial de $50M+ en liquidaciones.",
"telephone": "+1-512-555-0200",
"email": "jane@smithlawfirm.com",
"worksFor": {
"@id": "https://www.smithlawfirm.com/#organization"
},
"alumniOf": [
{
"@type": "CollegeOrUniversity",
"name": "University of Texas School of Law",
"sameAs": "https://law.utexas.edu"
}
],
"hasCredential": [
{
"@type": "EducationalOccupationalCredential",
"credentialCategory": "Bar Admission",
"recognizedBy": {
"@type": "Organization",
"name": "State Bar of Texas"
}
}
],
"knowsAbout": [
"Personal Injury Law",
"Car Accident Claims",
"Wrongful Death",
"Premises Liability"
],
"sameAs": [
"https://www.linkedin.com/in/janesmith-attorney",
"https://www.avvo.com/attorneys/jane-smith.html",
"https://www.martindale.com/jane-smith"
]
}
Por Qué las Referencias de `worksFor` Importan
¿Ves esa propiedad worksFor? Usa el @id del schema LegalService. Así es como construyes un grafo conectado — Google entiende que Jane Smith trabaja en Smith & Associates, que es un proveedor de servicios legales en Austin. Estas conexiones fortalecen ambas entidades.
La propiedad hasCredential es relativamente nueva pero cada vez más importante. Admisiones a la barra, certificaciones de junta directiva, designaciones Super Lawyers — marca todas ellas. Los sistemas de búsqueda de IA adoran este tipo de datos de credenciales verificables.
Schema FAQPage para Áreas de Práctica
El schema FAQ ha tenido una historia turbulenta. Google redujo la visibilidad de resultados enriquecidos de FAQ en agosto de 2023, limitándolos principalmente a sitios gubernamentales y de salud autoritarios. Pero aquí está la cosa — el schema FAQPage sigue siendo importante en 2026 por dos razones:
- Análisis de búsqueda de IA. Los LLM activamente consumen datos estructurados de FAQ al generar respuestas. Perplexity y Google AI Overviews ambos citan contenido de FAQ.
- Bing y otros motores. Bing sigue mostrando resultados enriquecidos de FAQ más liberalmente que Google.
Para cada página de área de práctica, deberías tener una sección de FAQ relevante con schema correspondiente:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿Cuánto cuesta un abogado de lesiones personales en Austin?",
"acceptedAnswer": {
"@type": "Answer",
"text": "La mayoría de abogados de lesiones personales en Austin trabajan bajo una base de contingencia, lo que significa que no pagas nada por adelantado. La tarifa de contingencia estándar oscila entre el 33% y el 40% del monto de la liquidación o veredicto. Si no ganas, no pagas honorarios de abogado."
}
},
{
"@type": "Question",
"name": "¿Cuál es el plazo de prescripción para lesiones personales en Texas?",
"acceptedAnswer": {
"@type": "Answer",
"text": "En Texas, generalmente tienes dos años a partir de la fecha de la lesión para presentar una demanda de lesiones personales. Hay excepciones para menores, entidades gubernamentales, y casos donde la lesión no fue inmediatamente descubierta. Consultar a un abogado rápidamente es crítico para preservar tus derechos."
}
},
{
"@type": "Question",
"name": "¿Cuánto tiempo toma resolver un caso de lesiones personales?",
"acceptedAnswer": {
"@type": "Answer",
"text": "La mayoría de casos de lesiones personales en Texas se resuelven dentro de 6 a 18 meses. Casos más simples como accidentes de tráfico con responsabilidad clara pueden resolverse en pocos meses. Casos complejos que involucren lesiones catastróficas o responsabilidad disputada pueden tomar 2-3 años o más si van a juicio."
}
}
]
}
Reglas Críticas de FAQPage
- El contenido debe aparecer en la página. Las pautas de Google son explícitas: tu marcado de FAQ debe coincidir con contenido visible en la página. No agregues schema de FAQ para preguntas que solo existen en el JSON-LD.
- Mantén respuestas concisas. Dos a tres oraciones por respuesta funciona mejor. Si necesitas explicar algo complejo, enlaza a una página dedicada.
- Usa preguntas reales. Extrae de datos de Google Search Console, cuadros "Preguntas relacionadas", y conversaciones reales de admisión de clientes. No inventes preguntas que nadie hace.
- Limita a 5-10 por página. Más que eso y estás diluyendo relevancia.
Schema Organization: Uniéndolo Todo
Si tu bufete tiene múltiples oficinas, querrás un schema Organization en tu página de inicio que actúe como entidad padre, con schemas LegalService individuales para cada ubicación.
{
"@context": "https://schema.org",
"@type": "Organization",
"@id": "https://www.smithlawfirm.com/#organization",
"name": "Smith & Associates Law Firm",
"url": "https://www.smithlawfirm.com",
"logo": "https://www.smithlawfirm.com/images/logo.png",
"foundingDate": "2008",
"founder": {
"@id": "https://www.smithlawfirm.com/attorneys/jane-smith/#person"
},
"numberOfEmployees": {
"@type": "QuantitativeValue",
"value": 25
},
"subOrganization": [
{
"@type": "LegalService",
"name": "Smith & Associates - Austin Office",
"url": "https://www.smithlawfirm.com/locations/austin"
},
{
"@type": "LegalService",
"name": "Smith & Associates - San Antonio Office",
"url": "https://www.smithlawfirm.com/locations/san-antonio"
}
],
"sameAs": [
"https://www.facebook.com/SmithLawAustin",
"https://www.linkedin.com/company/smith-law-austin",
"https://twitter.com/SmithLawATX"
]
}
Construyendo un Grafo de Schema Conectado
Aquí es donde la mayoría de sitios web de bufetes de abogados fallan. Tienen blobs de schema desconectados — un poco de LocalBusiness aquí, una Person allá — pero nada se vincula junto. La documentación de Google habla sobre "reconciliación de entidades", que es básicamente cómo se da cuenta de que todos estos pedazos de datos se refieren a las mismas entidades del mundo real.
La propiedad @id es tu herramienta para esto. Así es como debería conectarse el grafo:
| Página | Tipo de Schema | Referencias |
|---|---|---|
| Página de inicio | Organization + WebSite |
@id para la organización |
| Páginas de ubicación | LegalService |
parentOrganization → org @id |
| Biografías de abogados | Person |
worksFor → org @id |
| Páginas de áreas de práctica | Service + FAQPage |
provider → org @id |
| Publicaciones de blog | Article |
author → person @id, publisher → org @id |
| Página de contacto | ContactPoint |
Anidado en org o LegalService |
Aquí hay un ejemplo rápido de cómo una página de área de práctica se vincula de nuevo:
{
"@context": "https://schema.org",
"@type": "Service",
"name": "Personal Injury Representation",
"serviceType": "Personal Injury Law",
"provider": {
"@id": "https://www.smithlawfirm.com/#organization"
},
"areaServed": {
"@type": "State",
"name": "Texas"
},
"description": "Representación legal para accidentes automovilísticos, accidentes de camiones, lesiones laborales, y reclamos por muerte injusta en todo Texas.",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Personal Injury Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Car Accident Claims"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Truck Accident Claims"
}
}
]
}
}
Dónde Colocar JSON-LD en Tus Plantillas
JSON-LD va en una etiqueta <script type="application/ld+json">. Puedes colocarlo en el <head> o justo antes de la etiqueta de cierre </body> — a Google no le importa la colocación, pero prefiero <head> por cordura organizativa.
Si estás trabajando con un CMS sin cabeza y un marco como Next.js o Astro, querrás generar el schema dinámicamente desde tus datos de CMS. Aquí hay un ejemplo simplificado de Next.js:
// components/LegalServiceSchema.tsx
export function LegalServiceSchema({ firm }) {
const schema = {
"@context": "https://schema.org",
"@type": "LegalService",
"@id": `${firm.url}/#organization`,
"name": firm.name,
"url": firm.url,
"telephone": firm.phone,
"address": {
"@type": "PostalAddress",
"streetAddress": firm.address.street,
"addressLocality": firm.address.city,
"addressRegion": firm.address.state,
"postalCode": firm.address.zip,
"addressCountry": "US"
}
};
return (
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(schema) }}
/>
);
}
Este patrón funciona maravillosamente cuando tu contenido vive en un CMS sin cabeza. El schema permanece sincronizado con tus datos automáticamente — no hay actualizaciones manuales cuando el número de teléfono cambia. Si estás interesado en este enfoque, construimos estos tipos de sistemas regularmente con nuestro trabajo de desarrollo de CMS sin cabeza.
Validación y Pruebas
Antes de enviar cualquier cosa en vivo, pruébalo. Cada vez. Aquí están las herramientas que realmente uso:
| Herramienta | URL | Qué Hace |
|---|---|---|
| Google Rich Results Test | search.google.com/test/rich-results | Muestra para cuáles resultados enriquecidos tu página es elegible |
| Schema Markup Validator | validator.schema.org | Valida contra la especificación completa schema.org (más estricto que Google) |
| Google Search Console | search.google.com/search-console | Muestra errores y advertencias después del despliegue |
| Merkle Schema Markup Generator | technicalseo.com/tools/schema-markup-generator | Bueno para generar marcado inicial |
Mi flujo de trabajo:
- Escribo el JSON-LD manualmente o lo genero desde datos de CMS
- Valido con schema.org validator primero (detecta problemas estructurales)
- Pruebo con Google Rich Results Test (confirma que Google lo analizará)
- Despliego y monitoreo el reporte "Enhancements" de Search Console durante 2-4 semanas
- Verifico si resultados enriquecidos realmente aparecen en SERPs usando búsquedas
site:yourdomain.com
Errores Comunes que Destruyen Tus Resultados Enriquecidos
He depurado suficiente schema de bufetes de abogados para tener una lista de éxitos de errores:
Marcado invisible. Agregas schema de FAQ pero las preguntas y respuestas no son visibles en la página. Google explícitamente dice que los datos estructurados deben reflejar contenido visible en la página. Viola esto y arriesgas una acción manual.
Reseñas falsas o autopublicadas. Agregar AggregateRating con reseñas que solo existen en tu propio sitio web — no extraídas de Google Business Profile, Avvo, u otra tercera parte — viola las pautas de fragmentos de reseña de Google. Endurecieron mucho sobre esto en 2024 y no se ha aflojado.
Esquemas duplicados de complementos. Instalas Yoast o Rank Math, que genera schema Organization automáticamente. Luego tú (o tu desarrollador) también agregás JSON-LD personalizado. Ahora Google ve dos bloques Organization en conflicto. Elige una fuente de verdad.
Referencias faltantes de @id. Sin propiedades @id, tus bloques de schema son islas. Google no puede conectar tus abogados a tu bufete, tus servicios a tus ubicaciones. Siempre usa @id y referencíalo con {"@id": "..."} en schemas relacionados.
Datos obsoletos. Tu oficina se mudó hace seis meses pero el schema sigue teniendo la dirección anterior. O un abogado dejó el bufete pero su schema Person sigue vigente. Trata el schema como código — necesita mantenimiento.
Usar Attorney como tipo de schema. Esta es una confusión común. Schema.org no tiene un tipo Attorney. No hay @type: "Attorney". Usa Person con un jobTitle de "Attorney" y conéctalo a tu LegalService vía worksFor. Algunos complementos lo hacen mal.
FAQ
¿Qué tipos de schema debería tener cada sitio web de bufete de abogados?
Como mínimo, necesitas LegalService (u Organization con subtipos LegalService) en tu página de inicio, Person en cada página de biografía de abogado, y FAQPage en páginas de áreas de práctica. Si publicas contenido de blog, agrega schema Article con referencias de author apropiadas. Para bufetes con múltiples ubicaciones, cada oficina necesita su propio bloque LegalService con detalles específicos de ubicación.
¿Sigue funcionando el schema FAQPage para resultados enriquecidos en 2026?
Google redujo significativamente la visibilidad de resultados enriquecidos de FAQ en agosto de 2023, mostrándolos principalmente para sitios de autoridad gubernamental y de salud. Sin embargo, el schema FAQ sigue siendo valioso para sistemas de búsqueda de IA como Google AI Overviews, Bing Copilot, y Perplexity, que activamente analizan datos estructurados de FAQ al generar respuestas. Sigue siendo vale la pena implementar.
¿Existe un tipo de schema específicamente para abogados?
No. Schema.org no define un tipo Attorney. El enfoque correcto es usar Person con propiedades como jobTitle establecido a "Attorney" o "Partner", hasCredential para admisiones a la barra, y worksFor referenciando tu schema LegalService u Organization de tu bufete. Algunos complementos de SEO incorrectamente usan Attorney — evítalos u anula la salida.
¿Cómo manejo múltiples áreas de práctica en marcado de schema?
Cada página de área de práctica debería tener su propio schema Service con una referencia de provider de vuelta a tu @id de la firma. En tu página de inicio o página de servicios principales, usa un hasOfferCatalog con un OfferCatalog listando cada servicio. Esto crea señales a nivel de página individual y una visión general a nivel de firma.
¿Puede el schema markup ayudar a mi bufete a aparecer en Google AI Overviews?
Sí. Google AI Overviews y otras herramientas de búsqueda de IA usan datos estructurados como señal al seleccionar fuentes para respuestas generadas. Un grafo de schema bien conectado — con LegalService, Person, FAQPage, y enlaces sameAs apropiados — ayuda a los sistemas de IA a entender la autoridad de tu bufete, ubicación, y especializaciones. No es el único factor, pero es cada vez más importante.
¿Debería usar un complemento de schema o escribir JSON-LD manualmente?
Depende de tu plataforma y comodidad técnica. Para WordPress, complementos como Rank Math o Schema Pro pueden manejar lo básico. Pero para bufetes de abogados, los valores predeterminados raramente son suficientes — necesitarás personalizar la salida para LegalService, credenciales de abogados, y servicios de áreas de práctica. Si estás en un CMS sin cabeza con Next.js o Astro, generar JSON-LD programáticamente desde tus datos de CMS es el enfoque más limpio. Ayudamos a bufetes a configurar esto a través de nuestros servicios de desarrollo de CMS sin cabeza.
¿Cuánto tiempo tarda el schema markup en mostrar resultados?
Después de desplegar datos estructurados válidos, Google típicamente los procesa dentro de 2-4 semanas, aunque puede tomar más tiempo. Verás el schema detectado en el reporte "Enhancements" de Search Console primero. Los resultados enriquecidos (si es elegible) pueden tomar otras pocas semanas para aparecer. Las mejoras de cita de búsqueda de IA son más difíciles de medir y pueden tomar 1-3 meses para volverse notables.
¿Cuál es la relación entre schema markup y E-E-A-T?
El schema markup es una de las formas más directas de señalizar E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) a los motores de búsqueda. Los esquemas Person con hasCredential demuestran experiencia. Los esquemas AggregateRating y Review señalizan confiabilidad. Los enlaces sameAs a directorios legales autoritarios refuerzan autoridad. Las pautas de evaluador de calidad de Google no mencionan el schema explícitamente, pero los datos que codificas mapean directamente a lo que los evaluadores de calidad evalúan.