logo hsb.horse

Registro de Decisão de Arquitetura

Política de otimização de SEO, metadados e AIO

Padronizar title/description, canonical/hreflang, OGP/Twitter e dados estruturados para melhorar descoberta em busca e em resumos gerados por IA.

Aceito #seo #metadata #aio #structured-data #i18n

Política de otimização de SEO, metadados e AIO

Decisão

  • Proibir saída ad-hoc de metadados por página e centralizar a geração de head em camada compartilhada (responsabilidade dedicada no Layout).
  • Garantir que páginas indexáveis nunca tenham contradições entre title, description, canonical, hreflang e og:url.
  • Tornar metadados Open Graph e Twitter obrigatórios para páginas compartilháveis, com URLs absolutas de imagem.
  • Usar noindex apenas para páginas intencionalmente excluídas de resultados de busca, alinhado às regras de inclusão no sitemap.
  • Para AIO (AI Overview e sistemas similares), evitar hacks e focar em conteúdo primário de alta qualidade com dados estruturados válidos.

Campos obrigatórios de metadados e regras

CampoRegra
titleObrigatório em todas as páginas. Formato padrão: `{Título da página}
descriptionObrigatório em todas as páginas, texto simples, conciso e consistente com o conteúdo visível.
canonicalURL absoluta obrigatória, sem query/hash, apontando para a URL indexável preferida.
robotsPadrão para páginas públicas: index,follow,max-image-preview:large.
og:urlDeve corresponder exatamente ao canonical.

Operação de canonical / hreflang

  • Emitir hreflang apenas para traduções que realmente existirem.
  • Usar URL representativa do locale padrão (ja) para x-default.
  • Não emitir hreflang para locales não traduzidos.
  • Cada página localizada deve canonicalizar para si mesma (sem canonical cruzado entre locales).

OGP / cartões Twitter

  • Os itens abaixo são obrigatórios para páginas compartilháveis:
    • og:type (website ou article por tipo de página)
    • og:title
    • og:description
    • og:url
    • og:image (URL absoluta)
    • og:image:alt
    • twitter:card (summary_large_image)
    • twitter:title
    • twitter:description
    • twitter:image
  • Usar /brand/og.jpg como imagem fallback global quando a página não tiver imagem social dedicada (arquivo real será adicionado em tarefa futura).

Alinhamento noindex / sitemap

  • Páginas com noindex: true devem emitir meta robots como noindex,nofollow e ser excluídas do sitemap.
  • Manter X-Robots-Tag: noindex para hosts não produtivos como workers.dev.
  • Manter significados distintos para draft e noindex:
    • draft: ainda não publicável
    • noindex: publicado, mas intencionalmente excluído da busca

Dados estruturados (núcleo para prontidão AIO)

  • Manter Person e BreadcrumbList já existentes.
  • Adicionar dados estruturados por tipo de página:
    • Páginas de detalhe (blog, notas de versão, ADR): Article (ou TechArticle quando apropriado)
    • Páginas de índice (changelog, tools etc.): CollectionPage
    • Página About: ProfilePage
  • JSON-LD deve refletir somente fatos realmente renderizados; não incluir avaliações, números ou afirmações fabricadas.

Princípios de conteúdo para reutilização em AIO

  • Não adicionar texto oculto exclusivo para IA. Colocar uma introdução concisa e de alto sinal no topo de cada página.
  • Manter hierarquia de headings válida e preferir um tema principal por página.
  • Tornar definições e procedimentos autoexplicativos, sem depender de contexto externo.

Contexto

A implementação atual já cobre, até certo ponto, title, description, canonical e hreflang, mas ainda há inconsistências e lacunas:

  • Política unificada de saída Open Graph e Twitter
  • Regras operacionais que conectem noindex e geração de sitemap
  • Política de dados estruturados por tipo de página
  • Critérios de conteúdo compartilhados que funcionem para snippets de busca e resumos gerados por IA

Dada a arquitetura multilíngue atual (ja como locale padrão, demais locales com prefixo de path), precisamos de uma política única que melhore a legibilidade para máquinas sem quebrar o roteamento existente.

Opções

  • Opção A: continuar customização de metadados página a página
  • Opção B: manter apenas tags mínimas (title/description/canonical)
  • Opção C: definir e aplicar política compartilhada de metadados + dados estruturados (escolhida)

Justificativa

  • Consistência: evitar divergências entre canonical/hreflang/og:url.
  • Segurança operacional: reduzir regressões de tags ausentes em novas páginas.
  • Reutilização: usar uma única fonte de verdade para busca, cartões sociais e resumos de IA.
  • Extensibilidade: permitir rollout gradual de automação de imagem social e checks de metadados.

Consequências

  • É necessário trabalho de implementação para introduzir responsabilidade compartilhada de SEO head (ou ampliar o papel atual do Layout).
  • Esquemas de Content Collection precisam de campos SEO consistentes (ogImage, noindex etc.).
  • Checks em CI devem detectar ausência de tags obrigatórias, inconsistências canonical-hreflang e páginas noindex vazando para sitemap.
  • Critérios de sucesso:
    • 100% de cobertura de metadados obrigatórios em páginas indexáveis
    • 100% de paridade entre canonical e og:url
    • 0 erros de validação de dados estruturados