Implementei schema markup em dezenas de sites de escritórios de advocacia nos últimos anos, e o padrão é sempre o mesmo: o desenvolvedor da firma (ou pior, seu "cara de SEO") ou não fez nada, ou colocou algum schema auto-gerado do Yoast que mal arranha a superfície. Enquanto isso, o escritório concorrente do lado está puxando rich results de FAQ, dados de painel de conhecimento e sendo citado por ferramentas de busca com IA — tudo porque tiveram o trabalho de escrever JSON-LD adequado.

Este guia é aquele que gostaria que existisse quando comecei. Abordaremos cada tipo de schema que importa para escritórios de advocacia — LegalService, Attorney, FAQPage, Organization, e como todos se conectam — com JSON-LD real, pronto para produção, que você pode adaptar e implementar hoje.

Índice

Schema Markup para Escritórios de Advocacia: Guia Completo JSON-LD (2026)

Por que Schema Markup Importa para Escritórios de Advocacia em 2026

Sejamos diretos: schema markup não vai ranquear seu site magicamente. Não é um fator de ranqueamento no sentido tradicional. Mas faz três coisas que se multiplicam ao longo do tempo:

  1. Rich results em SERPs. Dropdowns de FAQ, classificações por estrelas, detalhes do negócio — estes ocupam mais espaço real na tela e aumentam as taxas de clique. Dados de um estudo de 2025 da Milestone Research mostrou que páginas com dados estruturados ganharam 40-50% de CTR maior que aquelas sem.

  2. Citações de busca com IA. Google AI Overviews, Bing Copilot, Perplexity e ChatGPT search todos analisam dados estruturados para entender entidades. Se você quer que seu escritório seja citado quando alguém pergunta "melhor advogado de lesão pessoal em Austin", schema ajuda esses sistemas a entender quem você é, o que faz e onde fica.

  3. Elegibilidade para painel de conhecimento. O Knowledge Graph do Google puxa muito de dados estruturados. Um escritório de advocacia devidamente marcado com links sameAs consistentes tem muito mais chance de disparar um painel de conhecimento de marca.

Para escritórios de advocacia especificamente, as apostas são altas. Palavras-chave legais estão entre as mais caras em busca paga ($50-150+ por clique para áreas de prática competitivas). Qualquer coisa que você possa fazer para melhorar a visibilidade orgânica vale o tempo de engenharia.

JSON-LD vs Microdata: Escolha o Formato Certo

Resposta curta: use JSON-LD. Sempre.

Google recomenda explicitamente JSON-LD. É mais fácil de manter, não polui sua marcação HTML e pode ser injetado dinamicamente via tags <script>. Microdata requer que você adicione atributos diretamente aos seus elementos HTML, o que fica bagunçado rapidinho — especialmente se você está trabalhando com um CMS headless como Sanity, Contentful ou Storyblok onde conteúdo e apresentação são desacoplados.

Recurso JSON-LD Microdata RDFa
Recomendado pelo Google ✅ Sim ⚠️ Suportado ⚠️ Suportado
Separado do HTML ✅ Sim ❌ Não ❌ Não
Fácil de manter ✅ Sim ❌ Bagunçado ❌ Bagunçado
Funciona com CMS headless ✅ Perfeito ⚠️ Possível ⚠️ Possível
Compatibilidade com busca IA ✅ Excelente ✅ Bom ✅ Bom
Injeção dinâmica ✅ Trivial ❌ Requer mudanças DOM ❌ Requer mudanças DOM

Se você está construindo com Next.js ou Astro (que fazemos muito na Social Animal — veja nossas capacidades de desenvolvimento Next.js e desenvolvimento Astro), JSON-LD é especialmente limpo. Você o gera como um objeto JavaScript e o coloca em uma tag <script type="application/ld+json"> no <head>.

Schema LegalService: A Fundação

LegalService é o tipo schema.org especificamente projetado para escritórios de advocacia e práticas legais. É um subtipo de LocalBusiness, o que significa que herda todas as propriedades de negócio local — endereço, telefone, horários — mais você pode especificar detalhes específicos legais.

Aqui está um exemplo pronto para produção:

{
  "@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 fornece serviços jurídicos de lesão pessoal, direito de família e planejamento imobiliário em 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": "Representação legal para acidentes de carro, quedas e lesões no trabalho."
        }
      },
      {
        "@type": "Offer",
        "itemOffered": {
          "@type": "Service",
          "name": "Family Law",
          "description": "Serviços de divórcio, custódia de filhos e acordos pré-nupciais."
        }
      }
    ]
  },
  "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"
  ]
}

Propriedades Principais Que Você Não Deve Pular

  • @id: Isto é crucial para conectar schemas juntos. Pense niso como um identificador único que outros blocos de schema podem referenciar.
  • geo: Google usa isto para resultados do local pack. Não pule.
  • areaServed: Se você atende múltiplas cidades ou condados, liste todas. Use GeoCircle para áreas de serviço baseadas em raio.
  • hasOfferCatalog: É assim que você enumera suas áreas de prática como serviços. Cada página de área de prática idealmente deve ter seu próprio schema Service também.
  • sameAs: Inclua seu Avvo, Justia, FindLaw, LinkedIn, Facebook — qualquer perfil autoritário. Isso ajuda Google a conectar os pontos para seu painel de conhecimento.
  • aggregateRating: Inclua apenas se estiver puxando de avaliações legítimas de terceiros. As diretrizes do Google são rígidas aqui — não fabrique classificações.

Schema Markup para Escritórios de Advocacia: Guia Completo JSON-LD (2026) - arquitetura

Schema Attorney com Markup Person

Cada advogado em seu escritório deve ter um schema Person na página de sua biografia. É aqui que E-E-A-T realmente funciona — você está explicitamente dizendo aos mecanismos de busca sobre credenciais, admissões à ordem, educação e experiência.

{
  "@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 é uma advogada de lesão pessoal em Austin, TX com mais de 15 anos de experiência e um histórico de US$ 50M+ em acordos.",
  "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 que Referências `worksFor` Importam

Veja aquela propriedade worksFor? Ela usa o @id do schema LegalService. É assim que você constrói um gráfico conectado — Google entende que Jane Smith trabalha em Smith & Associates, que é um provedor de serviços legais em Austin. Essas conexões fortalecem ambas as entidades.

A propriedade hasCredential é relativamente nova mas cada vez mais importante. Admissões à ordem, certificações de conselho, designações Super Lawyers — marque todas. Sistemas de busca com IA adoram esse tipo de dados de credencial verificável.

Schema FAQPage para Áreas de Prática

FAQPage schema teve uma história turbulenta. Google reduziu a visibilidade de rich results de FAQ em agosto de 2023, limitando-os principalmente a sites de governo e saúde autorizados. Mas aqui está a coisa — schema FAQPage ainda importa em 2026 por duas razões:

  1. Análise de busca com IA. LLMs ativamente consomem dados estruturados de FAQ ao gerar respostas. Perplexity e Google AI Overviews ambos citam conteúdo de FAQ.
  2. Bing e outros mecanismos. Bing ainda mostra rich results de FAQ mais liberalmente que Google.

Para cada página de área de prática, você deve ter uma seção FAQ relevante com schema correspondente:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Quanto custa um advogado de lesão pessoal em Austin?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A maioria dos advogados de lesão pessoal em Austin trabalha com honorários de contingência, o que significa que você não paga nada antecipadamente. Os honorários de contingência padrão variam de 33% a 40% do valor do acordo ou sentença. Se você não ganhar, você não paga honorários advocatícios."
      }
    },
    {
      "@type": "Question",
      "name": "Qual é o prazo de prescrição para lesão pessoal no Texas?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No Texas, você geralmente tem dois anos a partir da data da lesão para entrar com uma ação de lesão pessoal. Existem exceções para menores, entidades governamentais e casos onde a lesão não foi imediatamente descoberta. Consultar um advogado prontamente é crítico para preservar seus direitos."
      }
    },
    {
      "@type": "Question",
      "name": "Quanto tempo leva para um caso de lesão pessoal se resolver?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "A maioria dos casos de lesão pessoal no Texas se resolve em 6 a 18 meses. Casos mais simples como pequenas colisões com responsabilidade clara podem se resolver em alguns meses. Casos complexos envolvendo lesões catastróficas ou culpa disputada podem levar 2-3 anos ou mais se forem a julgamento."
      }
    }
  ]
}

Regras Críticas de FAQPage

  • O conteúdo deve aparecer na página. As diretrizes do Google são explícitas: seu markup de FAQ deve corresponder ao conteúdo visível na página. Não adicione schema de FAQ para perguntas que só existem no JSON-LD.
  • Mantenha as respostas concisas. Duas a três frases por resposta é o melhor desempenho. Se você precisa explicar algo complexo, faça um link para uma página dedicada.
  • Use perguntas reais. Puxe de dados de Search Console Query, caixas "People Also Ask" e conversas reais de intake de cliente. Não invente perguntas que ninguém faz.
  • Limite para 5-10 por página. Mais que isso e você está diluindo relevância.

Schema Organization: Unindo Tudo

Se seu escritório tem múltiplos escritórios, você vai querer um schema Organization na sua homepage que atue como entidade pai, com schemas LegalService individuais para cada localização.

{
  "@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"
  ]
}

Construindo um Gráfico de Schema Conectado

Este é o ponto onde a maioria dos sites de escritórios de advocacia fracassa. Eles têm blobs de schema desconectados — um pouco de LocalBusiness aqui, uma Person ali — mas nada se liga. A documentação do Google fala sobre "entity reconciliation", que é basicamente como ele descobre que todos esses pedaços de dados se referem às mesmas entidades do mundo real.

A propriedade @id é sua ferramenta para isso. Aqui está como o gráfico deve se conectar:

Página Tipo de Schema Referências
Homepage Organization + WebSite @id para a org
Páginas de localização LegalService parentOrganization → org @id
Bios de advogados Person worksFor → org @id
Páginas de área de prática Service + FAQPage provider → org @id
Posts de blog Article author → person @id, publisher → org @id
Página de contato ContactPoint Aninhado em org ou LegalService

Aqui está um exemplo rápido de como uma página de área de prática se liga de volta:

{
  "@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": "Representação legal para acidentes de carro, acidentes com caminhão, lesões no trabalho e morte por negligência em todo o 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"
        }
      }
    ]
  }
}

Onde Colocar JSON-LD em Seus Templates

JSON-LD vai em uma tag <script type="application/ld+json">. Você pode colocá-lo no <head> ou logo antes da tag </body> — Google não se importa com a colocação, mas prefiro <head> para sanidade organizacional.

Se você está trabalhando com um CMS headless e um framework como Next.js ou Astro, você vai querer gerar o schema dinamicamente a partir dos dados do seu CMS. Aqui está um exemplo 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 padrão funciona lindamente quando seu conteúdo vive em um CMS headless. O schema fica em sincronia com seus dados automaticamente — sem atualizações manuais quando o número de telefone muda. Se você estiver interessado nesta abordagem, construímos esses tipos de sistemas regularmente com nosso trabalho de desenvolvimento de CMS headless.

Validação e Teste

Antes de você colocar qualquer coisa em produção, teste. Toda vez. Aqui estão as ferramentas que realmente uso:

Ferramenta URL O que Faz
Google Rich Results Test search.google.com/test/rich-results Mostra para quais rich results sua página é elegível
Schema Markup Validator validator.schema.org Valida contra especificação schema.org completa (mais rigoroso que Google)
Google Search Console search.google.com/search-console Mostra erros e avisos após implementação
Merkle Schema Markup Generator technicalseo.com/tools/schema-markup-generator Bom para gerar markup inicial

Meu fluxo de trabalho:

  1. Escreva o JSON-LD manualmente ou gere-o a partir de dados CMS
  2. Valide com validador schema.org primeiro (detecta problemas estruturais)
  3. Teste com Google Rich Results Test (confirma que Google o analisará)
  4. Implante e monitore o relatório "Enhancements" do Search Console por 2-4 semanas
  5. Verifique se rich results realmente aparecem nos SERPs usando buscas site:seudominio.com

Erros Comuns que Destroem Seus Rich Results

Debugei schema suficiente de escritórios de advocacia para ter uma lista de sucessos de erros:

Markup invisível. Você adiciona schema de FAQ mas as perguntas e respostas não são visíveis na página. Google explicitamente diz que os dados estruturados devem refletir conteúdo visível da página. Viole isso e você arrisca uma ação manual.

Avaliações falsas ou auto-publicadas. Adicionar AggregateRating com avaliações que existem apenas em seu próprio website — não puxadas do Google Business Profile, Avvo ou outro terceiro — viola as diretrizes de snippet de avaliação do Google. Eles apertaram a segurança nisso em 2024 e não afrouxou.

Schemas duplicados de plugins. Você instala Yoast ou Rank Math, que gera schema Organization automaticamente. Então você (ou seu desenvolvedor) também adiciona JSON-LD customizado. Agora Google vê dois blocos Organization conflitantes. Escolha uma fonte de verdade.

Referências @id faltando. Sem propriedades @id, seus blocos de schema são ilhas. Google não consegue conectar seus advogados à sua firma, seus serviços às suas localizações. Sempre use @id e referencie-o com {"@id": "..."} em schemas relacionados.

Dados obsoletos. Seu escritório se mudou seis meses atrás mas o schema ainda tem o endereço antigo. Ou um advogado deixou a firma mas o schema Person deles ainda está ativo. Trate schema como código — precisa de manutenção.

Usando Attorney como tipo de schema. Esta é uma confusão comum. Schema.org não tem tipo Attorney. Não há @type: "Attorney". Use Person com um jobTitle de "Attorney" e conecte-os à sua LegalService via worksFor. Alguns plugins acertam isso errado.

FAQ

Quais tipos de schema cada site de escritório de advocacia deveria ter?

No mínimo, você precisa de LegalService (ou Organization com subtipos LegalService) na sua homepage, Person em cada página de bio de advogado e FAQPage em páginas de áreas de prática. Se você publica conteúdo de blog, adicione schema Article com referências adequadas de author. Para escritórios com múltiplas localizações, cada escritório precisa seu próprio bloco LegalService com detalhes específicos de localização.

Schema FAQPage ainda funciona para rich results em 2026?

Google reduziu significativamente a visibilidade de rich results de FAQ em agosto de 2023, mostrando-os principalmente para sites de autoridade de governo e saúde. No entanto, schema FAQPage permanece valioso para sistemas de busca com IA como Google AI Overviews, Bing Copilot e Perplexity, que ativamente analisam dados estruturados de FAQ ao gerar respostas. Ainda vale a pena implementar.

Existe um tipo de schema especificamente para advogados?

Não. Schema.org não define tipo Attorney. A abordagem correta é usar Person com propriedades como jobTitle definida para "Attorney" ou "Partner", hasCredential para admissões à ordem e worksFor referenciando seu schema LegalService ou Organization da firma. Alguns plugins SEO incorretamente usam Attorney — evite-os ou sobrescreva a saída.

Como lidar com múltiplas áreas de prática em markup de schema?

Cada página de área de prática deve ter seu próprio schema Service com uma referência provider de volta ao seu firm @id. Na sua homepage ou página de serviços principais, use um hasOfferCatalog com um OfferCatalog listando cada serviço. Isso cria tanto sinais de página individual quanto uma visão geral em nível de firma.

Markup de schema pode ajudar meu escritório a aparecer em AI Overviews do Google?

Sim. Google AI Overviews e outras ferramentas de busca com IA usam dados estruturados como sinal ao selecionar fontes para respostas geradas. Um gráfico de schema bem conectado — com LegalService, Person, FAQPage e links sameAs apropriados — ajuda sistemas de IA a entender a autoridade, localização e especializações da sua firma. Não é o único fator, mas é cada vez mais importante.

Devo usar um plugin de schema ou escrever JSON-LD manualmente?

Depende de sua plataforma e conforto técnico. Para WordPress, plugins como Rank Math ou Schema Pro podem lidar com o básico. Mas para escritórios de advocacia, os padrões raramente são suficientes — você vai precisar customizar a saída para LegalService, credenciais de advogados e serviços de área de prática. Se você está em um CMS headless com Next.js ou Astro, gerar JSON-LD programaticamente a partir dos dados do seu CMS é a abordagem mais limpa. Ajudamos firmas a configurar isso através de nossos serviços de desenvolvimento de CMS headless.

Quanto tempo leva para markup de schema mostrar resultados?

Após implementar dados estruturados válidos, Google tipicamente processa dentro de 2-4 semanas, embora possa levar mais. Você verá schema detectado no relatório "Enhancements" do Search Console primeiro. Rich results (se elegível) pode levar mais algumas semanas para aparecer. Melhorias de citação de busca com IA são mais difíceis de medir e pode levar 1-3 meses para se tornarem notáveis.

Qual é a relação entre markup de schema e E-E-A-T?

Markup de schema é uma das formas mais diretas de sinalizar E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness) para mecanismos de busca. Schemas Person com hasCredential demonstram experiência. Schemas AggregateRating e Review sinalizam confiabilidade. Links sameAs para diretórios legais autoritários reforçam autoridade. As diretrizes de quality rater do Google não mencionam schema explicitamente, mas os dados que você codifica mapeiam diretamente para o que quality raters avaliam.