Cada página emite um head completo, uma descrição estruturada de si mesma, um
cartão social e uma entrada no sitemap. A maior parte é escrita pelo [Nuxt
SEO](https://nuxtseo.com), que a camada instala como um único pacote; o resto é a
parte que depende de versões e traduções, e essa é da própria camada. Um valor
tem de vir de ti.

## Por página

- **Meta** — o título com o nome do site acrescentado, a descrição e o par
  `og:`/`twitter:` derivado de ambos. `og:type` e `og:url` são definidos por
  página; `og:locale` e as suas alternativas vêm dos idiomas que o site serve.
- **JSON-LD** — um grafo por página: um `WebSite` (e a tua `Organization`, uma
  vez definida) declarados para todo o site, mais um `TechArticle` e uma
  `BreadcrumbList` construída a partir do mesmo trilho que a migalha desenha.
- **Uma imagem de Open Graph**, renderizada a partir do modelo da própria camada
  — também na página inicial. Publica um componente com o mesmo nome para a
  substituir.
- **`canonical` e `robots`**, que são a metade das versões — ver
  [URL e versões](/concepts/urls-and-versions). A canónica de uma versão antiga
  aponta para a atual, e é por isso que a camada a escreve em vez de deixar a
  automática do módulo.
- **Uma alternativa em Markdown e o seu índice** — `rel="alternate"
  type="text/markdown"` aponta para esta página mais `.md`, e `rel="describedby"`
  para `/llms.txt`. Ao contrário da canónica, a alternativa nomeia a página que
  está a ser apresentada, pelo que uma versão antiga entrega o seu próprio
  código-fonte — ver [Leitores automáticos](/concepts/machine-readers).

A página de erro leva `noindex, follow`: uma 404 indexada concorre com a página
que quem lê procurava, e as sugestões nela são páginas reais que um rastreador
deve continuar a alcançar.

## Em todo o site

`/sitemap.xml` lista as páginas da versão predefinida, por idioma. Uma versão que
não é a predefinida fica excluída porque as suas páginas levam `noindex` de
qualquer forma, e uma versão `eol` fica excluída seja ou não a predefinida:
listar qualquer uma delas pede a um rastreador que vá buscar exatamente aquilo
que a página lhe dirá depois para descartar. O `/robots.txt` é gerado ao lado.

`duxt.organization` é o que nomeia quem publica — ver
[Configuração](/reference/configuration). Por definir, o site continua a
descrever-se como um `WebSite`; o que perde é a entidade por detrás, que é o que
um painel de conhecimento ou um resumo de IA lê para creditar uma fonte.

## O que é verificado e o que é apenas relatado

`pnpm check:seo` lê as páginas construídas e falha perante uma segunda
`canonical`, um `hreflang` em falta, uma página de erro indexável, um `og:locale`
no formato errado, um grafo que não se analisa ou uma página que não liga à sua
alternativa em Markdown e a `/llms.txt`. Corre no `pnpm check` depois da
compilação, porque estas etiquetas só existem no HTML renderizado.

O verificador de ligações relata em vez de falhar. Uma ligação que não leva a
lado nenhum já faz a compilação falhar através das
[verificações de compilação](/concepts/build-checks) da própria camada, que são
as que percebem versões e recuos de idioma; o valor do módulo aqui é o painel de
devtools e a verificação ao vivo enquanto se escreve.

## O único valor que tens de indicar

A origem. `hreflang`, `canonical`, o sitemap e as imagens Open Graph são todos
URL absolutos, e uma camada não pode conhecer o domínio onde será implementada.
Define `i18n.baseUrl` ou `NUXT_PUBLIC_I18N_BASE_URL`; a camada copia-o para
`site.url`, que é onde os módulos de SEO procuram.

Se ficar por definir, cada um deles recai em saída relativa em vez de inventar
um domínio. É essa a escolha deliberada: um `canonical` relativo continua a
resolver corretamente, e um adivinhado está ativamente errado — apontaria um
rastreador para o site de outra pessoa.

## Mais uma variável para uma implementação progressiva

`NUXT_OG_IMAGE_SECRET` assina os URL das imagens Open Graph. Sem ela é gerado um
segredo por compilação, o que serve para uma instância e está errado para duas:
um cartão cujo URL foi assinado por uma instância é rejeitado pela seguinte, por
isso uma ligação partilhada durante uma implementação progressiva perde a
imagem. Gera-a uma vez; não roda.