Motores de busca processam texto, mas entendem entidades. Quando o robô do Google rastreia uma página de contato ou a página inicial de uma empresa física, ele tenta extrair informações como razão social, endereço físico, telefone, área de cobertura e horário de funcionamento. Se essas informações estiverem espalhadas apenas no texto visual ou no rodapé em HTML simples, o algoritmo depende de heurísticas para interpretar o que cada sequência de caracteres significa.
O schema markup para negócio local resolve esse problema na camada de código. Ao utilizar a especificação da Schema.org no formato JSON-LD, você entrega ao Google um dicionário estruturado e inequívoco sobre a sua empresa. O rastreador não precisa deduzir se um número é o telefone comercial ou um código postal. Cada dado recebe uma tipagem semântica precisa.
Muitos desenvolvedores e gestores recorrem a plugins de SEO para automatizar esse processo. No entanto, depender de extensões para injetar dados estruturados costuma gerar código inflado, nós duplicados, campos incompletos e perda de controle sobre a hierarquia das entidades. Implementar o schema LocalBusiness diretamente no código é um procedimento mais leve, rápido e tecnicamente superior.
Por que dispensar plugins para gerenciar dados estruturados locais
Plugins de SEO generalistas cumprem funções básicas em plataformas como WordPress, mas apresentam falhas graves quando o assunto é personalização técnica de dados locais.
Primeiro, há o problema do impacto na performance. Extensões de terceiros adicionam consultas ao banco de dados e executam scripts pesados no carregamento de cada página apenas para imprimir algumas dezenas de linhas de texto. Para quem busca otimizar os Core Web Vitals e garantir respostas rápidas no servidor, carregar bibliotecas inteiras de plugins apenas para inserir dados estruturados é contraproducente.
Segundo, a maioria dos plugins gratuitos limita a definição de propriedades essenciais. Eles costumam aplicar o tipo genérico Organization ou LocalBusiness, deixando de lado subtipos específicos como clínicas médicas, escritórios de advocacia, encanadores ou autoescolas. Propriedades avançadas como coordenadas geográficas, polígonos de atendimento, cardápios, departamentos e vínculos diretos com o Perfil da Empresa no Google Maps frequentemente exigem assinaturas pagas ou simplesmente não estão disponíveis nas interfaces gráficas.
Terceiro, conflitos de marcação são frequentes. Temas modernos muitas vezes já possuem trechos antigos de microdata embutidos nos arquivos de template. Ao ativar um plugin que insere JSON-LD, o site passa a exibir duas marcações concorrentes que não se comunicam entre si, gerando inconsistências no rastreamento. Injetar o JSON-LD de forma manual ou por meio de componentes limpos no template garante total governança sobre a sintaxe, assegurando que o código atenda estritamente ao que a Schema.org e o Google exigem.
A anatomia do LocalBusiness em JSON-LD
O Google recomenda formalmente o formato JSON-LD (JavaScript Object Notation for Linked Data) para implementação de dados estruturados. Ao contrário de Microdata ou RDFa, que misturam atributos aos elementos visíveis do HTML, o JSON-LD fica isolado dentro de uma tag <script type="application/ld+json">, normalmente alocada no cabeçalho <head> ou antes do fechamento do <body>.
Subtipos específicos: abandone a categoria genérica
A Schema.org organiza as entidades em uma hierarquia estrita. O tipo LocalBusiness é filho de Organization e Place. Embora o Google reconheça LocalBusiness, utilizá-lo isoladamente é perder uma oportunidade de fornecer contexto detalhado.
Sempre que existir um subtipo que corresponda exatamente à atividade da empresa, ele deve ser a escolha primária. Alguns exemplos comuns:
- Setor de saúde:
MedicalClinic,Dentist,PhysiotherapyClinic,Pharmacy. - Serviços profissionais:
LegalService,AccountingService,InsuranceAgency,RealEstateAgent. - Serviços automotivos:
AutoRepair,AutoDealer,GasStation. - Construção e reparos:
Plumber,Electrician,RoofingContractor,HVACBusiness. - Alimentação e lazer:
Restaurant,CafeOrCoffeeShop,Bakery.
Se o seu nicho possuir um tipo ainda mais específico, use-o. Um consultório odontológico deve utilizar Dentist em vez de LocalBusiness, pois o algoritmo associa esse nó diretamente a consultas sobre tratamentos dentários e especialidades locais.
Propriedades obrigatórias e recomendadas
Para que o schema de um negócio local seja considerado completo e funcional pelos validadores, determinadas propriedades precisam estar presentes:
@context: Sempre definido como"https://schema.org".@type: O subtipo do negócio (exemplo:"Dentist").@id: O identificador exclusivo da entidade em formato de URI. Esta propriedade é indispensável para evitar duplicações e conectar nós em diferentes páginas.name: Nome comercial oficial da empresa. Deve coincidir exatamente com o nome adotado nos canais físicos e digitais.url: A URL canônica do site ou da página de localidade.telephone: Telefone principal com código de discagem internacional (formato E.164, como+5511999999999).address: Objeto do tipoPostalAddresscontendo logradouro (streetAddress), bairro ou complemento, cidade (addressLocality), estado (addressRegion), CEP (postalCode) e país (addressCountry). A precisão deste endereço deve respeitar integralmente a consistência NAP e citações locais para evitar dúvidas sobre a localização do estabelecimento.geo: ObjetoGeoCoordinatescomlatitudeelongitude. Deve refletir com exatidão o ponto geográfico da entrada do negócio.openingHoursSpecification: Lista de horários de funcionamento por dia da semana (dayOfWeek), hora de abertura (opens) e hora de fechamento (closes).priceRange: Indicador aproximado de faixa de preço (por exemplo,"$$"ou"R$ 100 - R$ 300").image: URL de uma foto representativa da fachada ou do interior do estabelecimento.sameAs: Lista de URLs que comprovam a identidade digital da empresa em plataformas de autoridade externa.
Template pronto de LocalBusiness em JSON-LD
Abaixo está um modelo técnico pronto para aplicação, modelado para uma clínica odontológica com atendimento em São Paulo. O bloco utiliza propriedades avançadas sem depender de scripts intermediários:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"@id": "https://exemplo.com.br/#localbusiness",
"name": "Clínica Odontológica Exemplo",
"url": "https://exemplo.com.br",
"logo": "https://exemplo.com.br/assets/logo.png",
"image": "https://exemplo.com.br/assets/fachada-clinica.jpg",
"description": "Clínica odontológica especializada em implantes e ortodontia estética no bairro de Pinheiros, São Paulo.",
"telephone": "+551130000000",
"email": "contato@exemplo.com.br",
"priceRange": "$$",
"currenciesAccepted": "BRL",
"paymentAccepted": "Cash, Credit Card, Debit Card, Pix",
"address": {
"@type": "PostalAddress",
"streetAddress": "Rua dos Pinheiros, 1000, Sala 42",
"addressLocality": "São Paulo",
"addressRegion": "SP",
"postalCode": "05422-001",
"addressCountry": "BR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": -23.567890,
"longitude": -46.689012
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": [
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday"
],
"opens": "08:00",
"closes": "19:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Saturday",
"opens": "08:00",
"closes": "13:00"
}
],
"areaServed": [
{
"@type": "AdministrativeArea",
"name": "São Paulo"
},
{
"@type": "Place",
"name": "Pinheiros"
}
],
"hasMap": "https://maps.google.com/?cid=1234567890123456789",
"sameAs": [
"https://www.instagram.com/clinicaexemplo",
"https://www.facebook.com/clinicaexemplo",
"https://www.linkedin.com/company/clinicaexemplo"
]
}
</script>
Esse bloco cobre os pontos centrais de validação e constrói um registro sólido da empresa para os algoritmos de busca.
Conexão de entidades via @id e sameAs com o Google Maps
O maior erro em implementações manuais de dados estruturados é tratar o site como uma ilha isolada. O Google não mantém índices separados e estanques: o algoritmo de busca orgânica e a base de dados geográficos do Google Maps conversam continuamente.
Para potencializar as chances de como aparecer no Google Maps e disputar posições para ficar no top 3 do Google Maps, os dados estruturados do seu site precisam apontar explicitamente para a entidade cadastrada no mapa.
Isso é feito com duas propriedades centrais:
-
A propriedade
@id: Ao definir um identificador único, como"https://exemplo.com.br/#localbusiness", você cria uma âncora permanente para a entidade. Se em outra página você publicar um artigo ou uma oferta de serviço, pode referenciar o autor ou o provedor apenas mencionando{"@id": "https://exemplo.com.br/#localbusiness"}. O Google entende imediatamente que se trata do mesmo estabelecimento físico, unificando a autoridade de todo o domínio. -
A propriedade
sameAse a propriedadehasMap: No camposameAs, adicione os perfis oficiais da empresa em redes sociais e anuários setoriais confiáveis. Na propriedadehasMap, insira a URL direta do seu Perfil da Empresa no Google (preferencialmente a URL que contém o CID numérico exclusivo da sua ficha no Google Maps).
Esse alinhamento consolida a ponte técnica descrita em como integrar site e perfil da empresa no Google. Quando o robô do Google lê o site e encontra o mesmo endereço, mesmo telefone e a confirmação via hasMap, a confiança algorítmica sobre a legitimidade daquele negócio se eleva consideravelmente.
Estrutura para empresas com múltiplas filiais (location pages)
Negócios que operam em mais de um endereço físico exigem uma arquitetura diferente. Um erro recorrente é listar todos os endereços da rede na página inicial dentro de um único array de schemas. Essa prática confunde os rastreadores, que não conseguem determinar qual ponto geográfico responde pelas buscas de proximidade da home.
A estratégia correta baseia-se em páginas dedicadas para cada unidade. Cada filial deve ter sua própria página de destino, com um schema LocalBusiness exclusivo configurado conforme os princípios detalhados no guia de arquitetura de location pages para franquias no SEO local.
A diferenciação deve ocorrer da seguinte forma:
- Cada filial recebe um
@idexclusivo, comohttps://exemplo.com.br/unidades/pinheiros/#localbusinessehttps://exemplo.com.br/unidades/moema/#localbusiness. - O endereço (
PostalAddress), as coordenadas geográficas (GeoCoordinates), o telefone e o link do Google Maps devem ser específicos daquela unidade. - Para manter a hierarquia corporativa, utilize a propriedade
parentOrganizationno schema da filial, apontando para o@idda marca matriz:
"parentOrganization": {
"@type": "Organization",
"@id": "https://exemplo.com.br/#organization",
"name": "Rede Exemplo de Clínicas"
}
Dessa maneira, a matriz transfere autoridade para as filiais sem misturar as coordenadas de atendimento de cada bairro ou município.
Como injetar o JSON-LD no código sem sobrecarregar o site
A remoção de plugins exige um método direto para colocar o código nas páginas. A escolha depende da tecnologia em que o site foi construído.
Implementação nativa em Astro ou geradores estáticos
Em plataformas modernas como Astro, Next.js ou qualquer gerador de sites estáticos (SSG), você pode criar um componente reutilizável ou injetar os dados diretamente no layout principal.
No Astro, basta declarar o objeto em TypeScript no frontmatter do layout ou componente e inseri-lo no cabeçalho:
---
const localBusinessSchema = {
"@context": "https://schema.org",
"@type": "MedicalClinic",
"@id": "https://cayogalotti.com.br/#localbusiness",
"name": "Consultoria Cayo Galotti",
"url": "https://cayogalotti.com.br",
"telephone": "+5511958092333",
"address": {
"@type": "PostalAddress",
"streetAddress": "Av. Paulista, 1000",
"addressLocality": "São Paulo",
"addressRegion": "SP",
"postalCode": "01310-100",
"addressCountry": "BR"
}
};
---
<head>
<script type="application/ld+json" set:html={JSON.stringify(localBusinessSchema)} />
</head>
Durante o build, o Astro compila o objeto em JSON puro sem processamento em tempo de execução, garantindo velocidade máxima e zero dependências externas.
Implementação limpa no WordPress via functions.php
Se o seu site estiver hospedado em WordPress, não é necessário instalar plugins volumosos apenas para incluir esse bloco. Você pode utilizar o arquivo functions.php do seu tema filho (child theme) ou um plugin de snippets ultraleve.
Insira a seguinte função para injetar o schema somente na página inicial:
function injetar_schema_localbusiness_puro() {
if ( is_front_page() ) {
?>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LegalService",
"@id": "https://seusite.com.br/#localbusiness",
"name": "Escritório de Advocacia Silva",
"url": "https://seusite.com.br",
"telephone": "+551133334444",
"address": {
"@type": "PostalAddress",
"streetAddress": "Rua Boa Vista, 200",
"addressLocality": "São Paulo",
"addressRegion": "SP",
"postalCode": "01014-000",
"addressCountry": "BR"
}
}
</script>
<?php
}
}
add_action( 'wp_head', 'injetar_schema_localbusiness_puro' );
Esse método consome zero recursos extras do servidor e não quebra quando outros plugins de marketing forem atualizados.
Validação técnica e erros comuns que anulam o schema
Depois de escrever e inserir o JSON-LD, o passo seguinte é validar a sintaxe e a aderência aos padrões do Google. Um schema com erros de digitação é simplesmente descartado pelos rastreadores.
Ferramentas de validação indispensáveis
Trabalhe sempre com duas ferramentas complementares:
- Validador de Schema da Schema.org (Schema Markup Validator): Verifica se a sintaxe JSON está correta e se as propriedades declaradas existem na documentação oficial da biblioteca semântica.
- Teste de Resultados Avançados do Google (Rich Results Test): Informa se o código atende às exigências específicas do Google para exibição de rich snippets e carrosséis locais.
Erros graves a evitar
Durante auditorias técnicas, alguns desvios aparecem com regularidade:
- Vírgulas sobrando ou faltando no JSON: O JSON não aceita vírgula após o último elemento de uma lista ou objeto. Uma única vírgula fora do lugar invalida todo o bloco
<script>. - Divergência entre dados visíveis e dados ocultos: O Google proíbe marcar informações no JSON-LD que o usuário humano não consegue enxergar na tela. Se o telefone no schema for diferente do telefone no rodapé da página, sua marcação pode sofrer penalidade por dados estruturados enganosos.
- Inserção de avaliações fictícias (
aggregateRatingmanipulado): Colocar notas de 5 estrelas e contagem de avaliações manuais no schema sem que haja um sistema real e auditável de reviews na página viola as políticas contra spam do Google. Se quiser entender o impacto legítimo de depoimentos, confira como as avaliações no Google funcionam no contexto de ranqueamento. - Uso de
Organizationem vez de tipos locais: Se sua empresa atende clientes presencialmente ou em uma região delimitada, nunca use apenasOrganization. Isso impede que o buscador associe sua empresa às coordenadas de mapas locais.
Checklist de auditoria de dados estruturados locais
Antes de publicar as alterações e submeter a URL no Google Search Console, revise os seguintes itens:
- O subtipo escolhido reflete a atividade mais específica possível na Schema.org.
- O
@idfoi definido como uma URI canônica estável. - Nome, endereço e telefone batem caractere por caractere com o rodapé e com o Perfil da Empresa no Google.
- As coordenadas geográficas foram extraídas com precisão decimal no Google Maps.
- Os horários de funcionamento cobrem todos os dias úteis e finais de semana com
opensecloses. - A propriedade
hasMapcontém o link direto para o localizador da empresa. - As redes sociais e perfis públicos oficiais estão listados em
sameAs. - O código foi testado no Rich Results Test e não apresenta erros nem alertas impeditivos.
- Não existem plugins secundários gerando nós duplicados de schema na mesma página.
Garantir essa precisão técnica faz parte de uma estratégia de SEO para negócios focada em autoridade e presença orgânica duradoura. Se você também está revisando sua ficha no buscador, utilize nosso checklist de otimização do perfil da empresa no Google para sincronizar todos os pontos de contato da sua marca.
Implementar dados estruturados de forma nativa e sem plugins confere velocidade, estabilidade e clareza semântica para o seu negócio local. Ao entregar ao Google um bloco de código enxuto e estritamente padronizado, sua empresa se destaca da concorrência na disputa por relevância geográfica nas buscas orgânicas e no mapa.
Para desenhar uma arquitetura técnica sob medida ou auditar a infraestrutura de SEO do seu site, conheça nossas soluções em serviços especializados de SEO ou entre em contato para avaliar seu projeto.