Resumo rápido. JSON-LD é o formato que o Google e os motores de IA preferem para entender que tipo de entidade é o seu site. Para clínica médica, quatro schemas resolvem 80% do trabalho: MedicalClinic, Physician, FAQPage e BreadcrumbList. Os outros oito abaixo cobrem casos específicos. Tudo pronto para copiar.
Como usar essa biblioteca
Cada bloco abaixo é um exemplo completo. Para usar:
- Copie o bloco.
- Substitua os campos com placeholder (
SUA_CLÍNICA,+5548991074090, etc.). - Cole dentro de
<script type="application/ld+json">...</script>no<head>da página. - Valide em search.google.com/test/rich-results.
Cada schema testado no Rich Results Test em maio de 2026.
01 — MedicalClinic (a entidade clínica)
Schema base. Vai na home e na página "sobre". Sem isso, o motor classifica o site como "negócio local genérico".
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"@id": "https://suaclinica.com.br/#clinic",
"name": "Clínica Exemplo Ortopédica",
"url": "https://suaclinica.com.br",
"logo": "https://suaclinica.com.br/logo.png",
"image": "https://suaclinica.com.br/foto-clinica.jpg",
"telephone": "+5548991074090",
"priceRange": "$$",
"address": {
"@type": "PostalAddress",
"streetAddress": "Av. Exemplo, 123",
"addressLocality": "Florianópolis",
"addressRegion": "SC",
"postalCode": "88063-000",
"addressCountry": "BR"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": -27.6749,
"longitude": -48.4869
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"opens": "08:00",
"closes": "19:00"
}
],
"medicalSpecialty": ["Orthopedic", "PhysicalTherapy"],
"sameAs": [
"https://www.instagram.com/suaclinica",
"https://www.google.com/maps/place/?q=place_id:CLINICA_ID"
]
}
02 — Physician (o profissional responsável)
Vai aninhado dentro de MedicalClinic.employee ou em página própria do profissional. CRM/CRO/CREFITO em identifier.
{
"@context": "https://schema.org",
"@type": "Physician",
"name": "Dr. João Exemplo",
"url": "https://suaclinica.com.br/equipe/joao-exemplo",
"image": "https://suaclinica.com.br/equipe/joao.jpg",
"jobTitle": "Médico Ortopedista",
"memberOf": { "@id": "https://suaclinica.com.br/#clinic" },
"medicalSpecialty": "Orthopedic",
"alumniOf": "Universidade Federal de Santa Catarina",
"identifier": [
{
"@type": "PropertyValue",
"propertyID": "CRM-SC",
"value": "12345"
},
{
"@type": "PropertyValue",
"propertyID": "RQE",
"value": "67890"
}
]
}
03 — FAQPage (o bloco de perguntas e respostas)
O schema mais citado por motor de IA. Cada Question vira um candidato independente para citação.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Quanto tempo dura uma sessão de fisioterapia?",
"acceptedAnswer": {
"@type": "Answer",
"text": "A sessão dura 50 minutos. As primeiras incluem avaliação postural completa e podem se estender para 60 minutos."
}
},
{
"@type": "Question",
"name": "Atende convênio?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Atendemos Unimed, Bradesco Saúde e SulAmérica. Particular com reembolso é aceito por todos os outros planos via nota fiscal."
}
}
]
}
04 — BreadcrumbList (a navegação hierárquica)
Pequeno mas valioso. Aparece nos resultados do Google como caminho de navegação.
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Início",
"item": "https://suaclinica.com.br"
},
{
"@type": "ListItem",
"position": 2,
"name": "Especialidades",
"item": "https://suaclinica.com.br/especialidades"
},
{
"@type": "ListItem",
"position": 3,
"name": "Fisioterapia Ortopédica",
"item": "https://suaclinica.com.br/especialidades/fisioterapia-ortopedica"
}
]
}
05 — MedicalProcedure (procedimento ou tratamento específico)
Para página dedicada a um procedimento. Útil para clínicas que ranqueiam por nome do procedimento.
{
"@context": "https://schema.org",
"@type": "MedicalProcedure",
"name": "Reabilitação de Joelho Pós-Cirúrgica",
"procedureType": "https://schema.org/TherapeuticProcedure",
"bodyLocation": "Joelho",
"preparation": "Trazer exames de imagem recentes e relatório do cirurgião.",
"followup": "Acompanhamento semanal por oito a doze semanas, com avaliação a cada quatro semanas.",
"howPerformed": "Protocolo de reabilitação supervisionado, com fisioterapia manual, exercícios proprioceptivos e fortalecimento progressivo."
}
06 — Review (avaliação individual)
Avaliação pontual. NÃO use AggregateRating só com nota inventada — Google penaliza schema fabricado.
{
"@context": "https://schema.org",
"@type": "Review",
"itemReviewed": { "@id": "https://suaclinica.com.br/#clinic" },
"author": { "@type": "Person", "name": "Maria Silva" },
"datePublished": "2025-11-12",
"reviewRating": {
"@type": "Rating",
"ratingValue": "5",
"bestRating": "5"
},
"reviewBody": "Resolveu em três sessões a dor crônica que ninguém conseguiu. Equipe atenciosa e clínica organizada."
}
07 — AggregateRating (média de avaliações reais)
Use apenas com nota real, baseada em avaliações públicas verificáveis (Google Business, Doctoralia).
{
"@context": "https://schema.org",
"@type": "MedicalClinic",
"@id": "https://suaclinica.com.br/#clinic",
"name": "Clínica Exemplo",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "5.0",
"reviewCount": "71",
"bestRating": "5",
"worstRating": "1"
}
}
08 — Service (serviço oferecido com preço a partir de)
Para página de serviço com pricing transparente.
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Fisioterapia Ortopédica",
"provider": { "@id": "https://suaclinica.com.br/#clinic" },
"areaServed": {
"@type": "Place",
"name": "Florianópolis e Grande Florianópolis"
},
"offers": {
"@type": "Offer",
"priceCurrency": "BRL",
"price": "180",
"availability": "https://schema.org/InStock",
"url": "https://suaclinica.com.br/agendamento"
}
}
09 — Article (publicação no blog da clínica)
Para post educativo ou case clínico.
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Recuperação de menisco em corredores: protocolo de 6 semanas",
"image": "https://suaclinica.com.br/blog/menisco.jpg",
"datePublished": "2026-04-22T10:00:00-03:00",
"dateModified": "2026-04-22T10:00:00-03:00",
"author": {
"@type": "Person",
"name": "Dr. João Exemplo",
"url": "https://suaclinica.com.br/equipe/joao-exemplo"
},
"publisher": { "@id": "https://suaclinica.com.br/#clinic" },
"mainEntityOfPage": "https://suaclinica.com.br/blog/recuperacao-menisco-corredores"
}
10 — Person (autor com credenciais)
Para página "sobre o autor" no blog. Reforça E-E-A-T (Experience, Expertise, Authoritativeness, Trustworthiness).
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Dr. João Exemplo",
"url": "https://suaclinica.com.br/equipe/joao-exemplo",
"image": "https://suaclinica.com.br/equipe/joao.jpg",
"jobTitle": "Médico Ortopedista",
"worksFor": { "@id": "https://suaclinica.com.br/#clinic" },
"knowsAbout": ["Ortopedia", "Medicina Esportiva", "Reabilitação de Joelho"],
"sameAs": [
"https://www.linkedin.com/in/joaoexemplo",
"https://www.doctoralia.com.br/joao-exemplo"
]
}
11 — VideoObject (vídeo institucional ou educativo)
Para vídeo do YouTube ou auto-hospedado embutido no site.
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Como funciona a primeira sessão de fisioterapia",
"description": "Tour pela clínica e explicação do protocolo de avaliação inicial em três minutos.",
"thumbnailUrl": "https://suaclinica.com.br/video/thumb.jpg",
"uploadDate": "2026-03-15",
"duration": "PT3M12S",
"contentUrl": "https://suaclinica.com.br/video/primeira-sessao.mp4",
"embedUrl": "https://www.youtube.com/embed/EXEMPLO"
}
12 — Event (palestra, workshop, ou turma)
Para evento aberto ao público (curso, palestra, workshop in loco).
{
"@context": "https://schema.org",
"@type": "Event",
"name": "Workshop de Reabilitação de Lesões em Corredores",
"startDate": "2026-06-15T19:00:00-03:00",
"endDate": "2026-06-15T21:00:00-03:00",
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"eventStatus": "https://schema.org/EventScheduled",
"location": [
{
"@type": "Place",
"name": "Clínica Exemplo Ortopédica",
"address": {
"@type": "PostalAddress",
"streetAddress": "Av. Exemplo, 123",
"addressLocality": "Florianópolis",
"addressRegion": "SC",
"postalCode": "88063-000",
"addressCountry": "BR"
}
}
],
"organizer": { "@id": "https://suaclinica.com.br/#clinic" },
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "BRL",
"availability": "https://schema.org/InStock"
}
}
Como combinar tudo numa página
Numa página de serviço de uma clínica em Florianópolis, o stack ideal é:
- MedicalClinic (na home, referenciada em todas as páginas via
@id) - Physician (na página "sobre" e/ou aninhado em MedicalClinic)
- Service (na página específica do serviço)
- FAQPage (com 5–7 perguntas reais por página)
- BreadcrumbList (em toda página interna)
- AggregateRating (na home, apenas se baseada em avaliações reais)
Tudo isso é cerca de 200–400 linhas de JSON-LD, gerado no build. Em Next.js, o padrão é montar via helper TypeScript e injetar com componente Script. Em WordPress, plugin como Rank Math ou Yoast cobre o básico, mas para MedicalClinic + Physician completos costuma ser melhor injetar manualmente via wp_head.
Para o setup completo de schema na prática, veja dados estruturados em dois dias.
Perguntas frequentes
Posso copiar esses schemas direto, sem ajuste?
Pode copiar como ponto de partida, mas precisa ajustar pelo menos: nome, endereço, telefone, CRM/CRO/CREFITO, e-mail e horário. Sem isso, o schema é inválido para a sua clínica.
Onde colar o JSON-LD no site?
Dentro de uma tag <script type='application/ld+json'> no <head> da página. Em Next.js, use o componente Script com strategy='afterInteractive', ou injete via metadata. Cada página pode ter mais de um bloco JSON-LD.
Como sei se o schema funciona?
Cole a URL da página em search.google.com/test/rich-results. O teste mostra erros, avisos e quais Rich Results a página é elegível. Validação no schema.org/validator também é boa prática.
Schema mais é melhor?
Não. Adicionar schema de tipos que não fazem sentido (Recipe em página de clínica, por exemplo) confunde o motor e pode prejudicar. Quatro a seis tipos relevantes por site é o sweet spot.
Preciso adicionar todos os campos opcionais?
Não. Comece com os obrigatórios e os mais usados. Vá adicionando o resto conforme detecta necessidade no Rich Results Test ou no Search Console.
