Saltar para o conteúdo
Artigos
Metodologia9 min de leitura

Schema.org para SaaS B2B: o mínimo viável em JSON-LD

Os cinco tipos de schema de que toda a empresa de SaaS B2B precisa, com snippets de JSON-LD prontos a colar: Organization, Service, FAQPage, BreadcrumbList e Article.

CTO

Fotografia que ilustra o artigo «Schema.org para SaaS B2B: o mínimo viável em JSON-LD»
Foto de Nangialai Stoman no Unsplash

Para uma empresa de SaaS B2B, há cinco tipos de schema que valem mais do que todos os outros combinados: Organization, Service, FAQPage, BreadcrumbList e Article. Implementados em JSON-LD, com @id estáveis e ligações entre eles, são o mínimo viável para começar a ser citável por IA. Este texto tem o snippet de cada um, pronto a adaptar.

Key takeaways
  • JSON-LD é a serialização certa em 2026
  • cinco tipos resolvem 80% do upside: Organization, Service, FAQPage, BreadcrumbList, Article
  • @id estáveis transformam entidades soltas em grafo
  • validar em validator.schema.org e no Rich Results Test
  • schema irrelevante é pior do que ausência de schema

Porque é que o schema importa para GEO

Schema.org é o vocabulário standard de dados estruturados. Em HTML, descrever que algo é uma organização é implícito (a partir de tags como header, de classes CSS, do contexto). Em schema, é explícito: @type: Organization.

Para motores tradicionais, o schema desbloqueia rich results (estrelas, FAQ expandida, breadcrumbs visíveis). Para LLMs, o schema é a única forma fiável de saber, sem ambiguidade, o que cada coisa é. Quando o ChatGPT cita "a Acme é uma consultora de cibersegurança em Lisboa", está a inferir três coisas, o que é, o que faz, onde, e o schema reduz o espaço de erro.

Os cinco tipos, um por separador

O fundamento. Uma entidade Organization por empresa, com @id estável, referenciada por todas as outras entidades como provider, author, publisher.

{
  "@context": "https://schema.org",
  "@type": "Organization",
  "@id": "https://acme.com/#organization",
  "name": "Acme SaaS",
  "url": "https://acme.com",
  "logo": "https://acme.com/logo.png",
  "description": "Plataforma de gestão de inventário para retalhistas da UE.",
  "foundingDate": "2021",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Rua X, 42",
    "postalCode": "1234-567",
    "addressLocality": "Lisboa",
    "addressCountry": "PT"
  },
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "sales",
    "email": "contacto@acme.com",
    "availableLanguage": ["pt-PT", "en", "es"]
  },
  "sameAs": [
    "https://www.linkedin.com/company/acme-saas",
    "https://github.com/acme-saas"
  ],
  "knowsAbout": ["Inventory Management", "Retail Tech", "ERP"]
}

Três campos críticos: sameAs (ligações para perfis externos consistentes, LinkedIn, GitHub, Wikipédia se existir), knowsAbout (3 a 10 tópicos que afirmam a expertise da empresa), e contactPoint com availableLanguage.

O conceito de @graph (e porque importa)

Se tiver várias entidades na mesma página, pode embrulhá-las num @graph em vez de espalhar múltiplos blocos application/ld+json:

{
  "@context": "https://schema.org",
  "@graph": [
    { "@type": "Organization", "@id": "https://acme.com/#organization", ... },
    { "@type": "WebSite",      "@id": "https://acme.com/#website",     ... },
    { "@type": "WebPage",      "@id": "https://acme.com/#webpage",     ... },
    { "@type": "Service",      "@id": "https://acme.com/#service-inv", ... },
    { "@type": "FAQPage",      "@id": "https://acme.com/#faq",         ... }
  ]
}

A vantagem: menos parsing, contexto partilhado, ligações explícitas através de @id. Para LLMs, um grafo coerente é significativamente mais legível do que cinco scripts soltos.

Como os cinco se ligam por @id
Tipo@idLiga a
Organization#organizationReferenciada pelas outras como provider, author, publisher
Service#service-inventoryprovider → #organization
FAQPage#faqisPartOf → #website
BreadcrumbList/produto/inventario#breadcrumbNenhuma no exemplo
BlogPosting/blog/integrar-sap#articleauthor, publisher → #organization; mainEntityOfPage → /blog/integrar-sap#webpage

Os @id dos exemplos da Acme acima, sem o https://acme.com do início.

A validação não é opcional

Schema sem validação é cilada. Antes de fazer deploy, três ferramentas:

  • validator.schema.org, verifica a conformidade com a especificação.
  • Rich Results Test, diz o que do seu schema é elegível para rich results no Google.
  • Inspeção manual no DevTools: copie o JSON, faça o parse, confirme que os @id estão ligados.

Erros típicos que vemos

  • Duplicação de entidades. Organization redeclarada em cada página em vez de referenciada por @id.
  • @id em falta. O schema funciona, mas os LLMs tratam cada bloco como entidade independente.
  • FAQPage com perguntas fabricadas. A equipa inventa perguntas amigas do SEO em vez de copiar perguntas reais. Resultado: descredibiliza tudo.
  • Article sem dateModified. Os modelos preferem citar conteúdo recente; sem dateModified, ficam sem sinal de atualização.
O mínimo viável, antes do deploy
0 de 9 feitos

Perguntas frequentes

Fontes