Comecemos pelo fato que derruba metade das ideias sobre esta tag: rel="canonical" é uma sugestão, não uma ordem.

O Google a pondera junto com todos os outros sinais: links internos, sitemap, redirecionamentos, hreflang. Quando esses sinais se contradizem, o buscador escolhe a URL que considera correta e ignora o seu canonical. Isso está na documentação oficial do Google sobre consolidação de duplicatas.

Daí decorre todo o resto: canonical não funciona sozinho, apenas quando os demais sinais apontam para o mesmo lugar.

Sintaxe

A tag fica no <head>:

<link rel="canonical" href="https://example.com/pagina">

Três regras que são quebradas com mais frequência:

URL absoluta. Caminhos relativos são tecnicamente permitidos, mas qualquer erro na URL base os transforma em lixo. Escreva por extenso, com esquema e domínio.

Exatamente uma tag. Dois links canonical diferentes numa página e o Google descarta os dois. É o resultado clássico de rodar dois plugins de SEO ao mesmo tempo.

Somente dentro do <head>. Um canonical que acaba no <body> — injetado por um script no lugar errado, por exemplo — não é contado.

Para arquivos sem HTML próprio (PDF, imagens), o canonical viaja como cabeçalho HTTP:

Link: <https://example.com/documento.pdf>; rel="canonical"

O que o canonical resolve

Um único problema: o mesmo conteúdo vive em várias URLs e todas precisam continuar acessíveis.

Casos típicos:

  • parâmetros de ordenação e filtros: ?sort=price, ?color=red;
  • tags UTM e identificadores de publicidade;
  • um produto listado em várias categorias;
  • versões para impressão;
  • o mesmo material em subdomínios diferentes.

Em nenhum deles dá para simplesmente redirecionar: a página é necessária. O canonical diz ao buscador qual endereço tratar como principal e consolida os sinais nele.

Canonical para si mesmo

Uma página pode apontar seu canonical para ela mesma. Não é obrigatório, mas é útil: protege você de alguém abrir sua URL com um parâmetro solto no fim e o buscador tratar aquilo como página separada.

O que o canonical não é

É aqui que mora a maioria dos erros, então vejamos as ferramentas vizinhas numa tabela.

Objetivo Ferramenta Por que não canonical
A página mudou definitivamente Redirecionamento 301 O canonical deixa a URL antiga acessível
O destino muda temporariamente Redirecionamento 302 Mesmo motivo
A página não deve estar no índice noindex O canonical não remove nada do índice
A página não deve ser rastreada robots.txt Que também não a remove do índice
Mesmo conteúdo em vários idiomas hreflang + canonical próprio Não são duplicatas
Listagens paginadas Nada As páginas 2, 3, 4 são autônomas

Dois itens merecem destaque.

Canonical não substitui um 301. Se a página realmente mudou, redirecione. O canonical é para quando as duas URLs precisam continuar funcionando.

Paginação não é duplicação. Apontar o canonical de todas as páginas da listagem para a primeira é um erro comum: o conteúdo das páginas 2 e 3 é diferente, e você simplesmente o está removendo do índice.

Canonical e hreflang

A parte mais delicada, e onde mora o erro mais caro desta área.

O erro: canonizar todas as versões de idioma para a inglesa. A lógica parece razoável — o inglês é a versão «principal». O resultado é o oposto: você diz ao buscador que as páginas alemã e espanhola não são independentes, e elas somem dos resultados nos próprios mercados.

O arranjo correto:

  1. cada versão de idioma aponta seu canonical para si mesma;
  2. todas as versões listam umas às outras via hreflang, incluindo a si próprias;
  3. as relações são recíprocas: se A referencia B, B precisa referenciar A;
  4. o hreflang aponta para URLs canônicas, não para variantes com parâmetros;
  5. o x-default indica a versão de reserva para quem não se encaixa em nenhum idioma.

É assim que o site que você está lendo foi construído. A página sobre encurtar links do YouTube existe em 21 versões de idioma, e cada uma se canoniza para si mesma. A chinesa é assim:

<link rel="canonical" href="https://lix.li/suoduan-youtube-lianjie">
<link rel="alternate" hreflang="en" href="https://lix.li/shorten-youtube-link">
<link rel="alternate" hreflang="zh" href="https://lix.li/suoduan-youtube-lianjie">
<link rel="alternate" hreflang="es" href="https://lix.li/acortar-link-youtube">

Repare que o canonical aponta para a URL chinesa e não para a inglesa, e que a versão chinesa consta da sua própria lista de hreflang.

Erros frequentes

O Google catalogou os principais anos atrás na nota sobre cinco erros com rel=canonical, e a lista quase não mudou desde então.

Canonical apontando para uma URL que devolve 404. A tag é ignorada por inteiro.

Canonical apontando para uma página com noindex. Sinais contraditórios: você diz «trate esta como principal» e «não a indexe» ao mesmo tempo.

Canonical apontando para uma URL bloqueada no robots.txt. O rastreador não consegue buscá-la, portanto não consegue confirmá-la.

Cadeias. A aponta para B, B aponta para C. No Search Console isso vira «URL canônica não selecionada». Aponte direto para a URL final.

Misturar http com https, www com sem-www. O esquema e o host do canonical devem coincidir com a versão do site que você trata como principal.

Canonical e noindex na mesma página. Escolha um dos dois.

Quando o Google escolhe outra URL

No Search Console isso aparece como «Duplicada: o Google escolheu um canônico diferente do indicado pelo usuário».

Não é erro de marcação nem punição. É um aviso de que os demais sinais pesaram mais que a sua tag. O que verificar:

  1. Links internos. Se o site inteiro aponta para a variante com parâmetro enquanto o canonical aponta para a URL limpa, o buscador acredita nos links.
  2. O sitemap. Ele deve conter apenas URLs canônicas.
  3. Redirecionamentos. Se o canonical aponta para uma URL que por sua vez redireciona, a tag perde força.
  4. Se são mesmo duplicatas. Se o conteúdo difere de forma perceptível, o buscador faz bem em tratá-las como páginas distintas.

Alinhe os sinais e a tag passa a funcionar. Discutir com o algoritmo não adianta: ele lê o quadro inteiro.

Uma pergunta que aparece com frequência e que os guias gerais não respondem.

Um link encurtado cria uma duplicata da página? Não.

Um encurtador não serve uma cópia do conteúdo: ele devolve um redirecionamento HTTP. Uma resposta 302 não tem corpo nem <head>, então não há fisicamente onde colocar um canonical. O rastreador segue o redirecionamento e trabalha com o destino, que carrega o próprio canonical. Como esse mecanismo funciona está explicado em como funcionam os encurtadores de links.

Os links curtos deste site devolvem ainda o cabeçalho X-Robots-Tag: noindex, nofollow, pedindo explicitamente que o próprio redirecionamento não seja indexado.

E um domínio curto próprio? Também não cria duplicatas enquanto redirecionar. As duplicatas surgem quando você serve conteúdo idêntico em dois domínios sem redirecionar — aí sim é preciso um canonical apontando para o principal. Por que vale ter um domínio próprio para links curtos está tratado à parte, e você pode conectar um na página de domínio próprio.

Checklist

  • Um canonical por página, dentro do <head>, com URL absoluta.
  • O destino devolve 200, não está bloqueado no robots.txt nem marcado como noindex.
  • Sem cadeias: aponte direto para a URL final.
  • Cada versão de idioma se canoniza para si mesma; hreflang recíproco.
  • Sitemap e links internos levam às mesmas URLs canônicas.
  • Paginação e páginas mudadas se resolvem com ferramentas próprias, não com canonical.