Saltar para o conteúdo
duxt

SEO

O que cada página emite para rastreadores e cartões sociais, que módulo o escreve, e o único valor que a camada não consegue adivinhar.

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, 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. 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.

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. 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 ou um grafo que não se analisa. 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 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.

Esta página foi útil?