social

sameAs nos perfis sociais

O MetricSpot verifica se o teu JSON-LD Organization tem um array sameAs de URLs sociais. É o que alimenta o Knowledge Graph da Google e a resolução de entidades por agentes de IA.

O que esta verificação faz

Procura um bloco JSON-LD Organization (ou Person, LocalBusiness, Corporation) na página e confirma que contém uma propriedade sameAs cujo valor é um array não vazio de URLs. A verificação é puramente estrutural — não vai buscar nenhum dos URLs. A vitalidade dos URLs é tratada pela regra companheira correspondência de perfis em sameAs.

Um resultado positivo exige:

  • Um ou mais blocos application/ld+json que façam parse como JSON válido.
  • Um objeto com @type de Organization (ou um subtipo).
  • Um campo sameAs cujo valor é um array com pelo menos uma string de URL.

Porque é importante

O sameAs é a forma estruturada de dizer “a entidade descrita aqui é a mesma entidade real do mundo que a do URL ali.” O Schema.org define-o precisamente para este propósito, e três grandes consumidores dependem dele:

  • Knowledge Graph da Google. Entity-linking, Knowledge Panels de marca, o favicon e a atribuição “Sobre este resultado” usam todos o sameAs como um dos sinais principais para resolver “que marca é este site”. Sem ele, a Google tem de recorrer a pistas mais fracas (ocorrência do nome da marca, backlinks de páginas de entidades conhecidas) e falha frequentemente a fusão da entidade.
  • Wikidata. Quando editores criam ou expandem uma entrada de entidade, usam sameAs do teu site como evidência de apoio para referências cruzadas. Um array sameAs limpo é a forma mais aborrecida e eficaz de alimentar a Wikidata — que por sua vez alimenta dezenas de bases de conhecimento a jusante.
  • Motores de resposta. Perplexity, ChatGPT search, AI Overviews da Google e Bing Copilot correm todos passes de resolução de entidades ao decidir se citam uma fonte. Sites com Organization + sameAs limpos resolvem-se limpamente e são citados como marcas nomeadas (“segundo a Acme Corp”). Sites sem resolvem para “segundo acme.example” ou pior, sem atribuição.

A versão on-page da mesma afirmação — ícones sociais visíveis no rodapé — é verificada em separado por ligações para perfis sociais. Envia as duas; cobrem consumidores diferentes.

Como corrigir

1. Bloco Organization + sameAs completo. Coloca isto no <head> da home, idealmente via o layout partilhado para que cada página o carregue:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "Acme Corp",
  "alternateName": "Acme",
  "url": "https://acme.example",
  "logo": "https://acme.example/logo.png",
  "description": "Acme builds developer tools for distributed systems.",
  "foundingDate": "2019-04-01",
  "sameAs": [
    "https://www.linkedin.com/company/acme-corp",
    "https://x.com/acmecorp",
    "https://www.youtube.com/@acmecorp",
    "https://github.com/acme",
    "https://www.crunchbase.com/organization/acme",
    "https://en.wikipedia.org/wiki/Acme_Corp",
    "https://www.wikidata.org/wiki/Q123456789"
  ]
}
</script>

Que URLs incluir — por fase da empresa.

  • Toda a marca: LinkedIn, X / Twitter, YouTube.
  • Startups: adiciona Crunchbase, GitHub (se entregas código), o LinkedIn do fundador sob um schema Person separado em vez do sameAs da Organization.
  • Empresas estabelecidas: adiciona Glassdoor, páginas de perfil Bloomberg / Reuters se existirem, Wikipedia se qualificas.
  • Notável o suficiente para a Wikipedia: inclui também o URL do Q-ID do Wikidata. É o sinal individual mais forte — o Wikidata é a fonte da verdade em que a Google mais se apoia.

Salta plataformas onde não tens presença ou tens um perfil morto. Uma página de Facebook vazia magoa mais do que a ligação ajuda. Vê correspondência de perfis em sameAs para a receita de auditoria.

2. Next.js (App Router) — injeta a partir de app/layout.tsx:

import Script from "next/script";

const organizationLd = {
  "@context": "https://schema.org",
  "@type": "Organization",
  name: "Acme Corp",
  url: "https://acme.example",
  logo: "https://acme.example/logo.png",
  sameAs: [
    "https://www.linkedin.com/company/acme-corp",
    "https://x.com/acmecorp",
    "https://github.com/acme",
    "https://www.youtube.com/@acmecorp",
  ],
};

export default function RootLayout({ children }) {
  return (
    <html>
      <head>
        <Script
          id="ld-org"
          type="application/ld+json"
          dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationLd) }}
        />
      </head>
      <body>{children}</body>
    </html>
  );
}

3. Astro — emite a partir de BaseLayout.astro:

---
const organizationLd = {
  "@context": "https://schema.org",
  "@type": "Organization",
  name: "Acme Corp",
  url: "https://acme.example",
  logo: "https://acme.example/logo.png",
  sameAs: [
    "https://www.linkedin.com/company/acme-corp",
    "https://x.com/acmecorp",
    "https://github.com/acme",
  ],
};
---
<head>
  <script type="application/ld+json" set:html={JSON.stringify(organizationLd)} />
</head>

4. WordPress.

  • Yoast SEO: Settings → Site representation → define para “Organization”, preenche os campos de perfil social em General → Site info → Other profiles. O Yoast emite o JSON-LD Organization completo com um sameAs populado automaticamente.
  • Rank Math: Titles & Meta → Local SEO → preenche os URLs de perfil social. A mesma emissão automática.

Ambos os plugins também tratam o nome da empresa, logo e ponto de contacto. Não escrevas um bloco concorrente à mão — schemas Organization duplicados confundem a Google.

5. Valida. Corre duas passagens depois de enviar:

  • Schema Markup Validator para sintaxe (apanha JSON malformado, tipos errados).
  • Google Rich Results Test para confirmar que a Google consegue ir buscar e fazer parse. O relatório Logos no Search Console (em Enhancements) eventualmente mostra se a Google captou a entidade — tipicamente 1–4 semanas após o deploy.

Vê também: organization sameAs para cobertura mais profunda do schema Organization, correspondência de perfis em sameAs para verificar que os URLs funcionam, dados estruturados JSON-LD para o primer geral de dados estruturados.

Perguntas frequentes

O sameAs deve ficar no Organization ou no WebSite schema?

Organization (ou Person, para marcas pessoais). O schema WebSite é para o próprio site — o seu sameAs referiria outros websites que são o mesmo website, o que raramente faz sentido. A identidade da marca vive no Organization. Liga os dois via WebSite.publisher → Organization.

Posso incluir sameAs em todas as páginas ou só na home?

Qualquer um funciona. Pô-lo em todas as páginas via um layout partilhado é a opção mais segura — a Google pode fazer crawl primeiro de uma página interna, e encontrar lá o bloco Organization acelera a resolução da entidade. A desvantagem é algumas centenas de bytes de JSON-LD repetido por página, o que é negligenciável.

A ordem dos itens no array sameAs afeta alguma coisa?

Não. O sameAs é tratado como um conjunto não ordenado por cada consumidor. Otimiza para legibilidade ao editar, não para SEO — não há nada para otimizar.

Fontes

Última atualização 2026-05-11