Erros de hreflang em sites multilíngues|7 razões técnicas pelas quais as tags falham

本文作者:Don jiang

Por exemplo, erros no formato do código de idioma ou caminhos de link incompletos podem fazer com que os motores de busca não consigam identificar corretamente o idioma ou a região da página, ou até causar competição entre páginas multilíngues, fazendo com que o tráfego seja perdido para o público-alvo.

Este artigo, a partir de uma perspectiva técnica prática, resume os 7 erros mais comuns na configuração de hreflang, recomendando o uso de ferramentas para validação periódica e evitar que pequenos erros prejudiquem a otimização global.

Erros hreflang em sites multilíngues

Erro no formato do código de idioma ou região

Por exemplo, usar letras maiúsculas (como EN-US) ou erros de digitação (como escrever zh-CN como zh-CH) podem fazer com que os motores de busca não reconheçam corretamente a região alvo da página, e até considerem o código inválido.

Mesmo que o código pareça correto (como usar es-ES em vez de es), a informação redundante pode atrapalhar a lógica de correspondência.

O impacto pode ser grande, por exemplo, o tráfego de usuários espanhóis pode ser atribuído erroneamente para a página em português.

Regras dos códigos segundo padrões ISO

  • Código de idioma: deve usar letras minúsculas segundo o padrão ISO 639-1 (ex: en, es, zh), somente abreviação de 2 letras.
  • Código de região: opcional, deve usar letras maiúsculas segundo o padrão ISO 3166-1 (ex: US, GB, CN), somente abreviação de países/regiões.
  • Formato combinado: idioma e região são separados por hífen, por exemplo en-US (inglês americano), zh-CN (chinês simplificado).

Exceções:

  • Caso apenas o código do idioma seja usado (ex: fr), significa que é para todos os usuários que falam francês, sem restrição de região.
  • Para chinês tradicional, deve-se usar zh-Hant (chinês tradicional) ou zh-Hant-TW (chinês tradicional de Taiwan), em vez de zh-TW para evitar ser interpretado como chinês simplificado de Taiwan.

Cenários típicos de erro e consequências

Erro 1: Confusão de maiúsculas e minúsculas

  • Exemplos errados: EN-us (idioma em maiúsculas + região em minúsculas), Zh-cn (primeira letra em maiúscula no idioma).
  • Consequência: os motores de busca podem ignorar totalmente a tag, fazendo com que a página não seja mostrada ao público alvo.

Erro 2: Erros de digitação ou códigos fictícios

  • Exemplos errados: pt-BZ (o código correto para Brasil é BR), eu (código para basco, mas alguns motores podem não suportar idiomas minoritários).
  • Consequência: idiomas raros ou códigos incorretos podem fazer a página não ser indexada corretamente, perdendo tráfego para a página padrão.

Erro 3: Códigos redundantes ou combinações erradas

  • Exemplos errados: es-ES (espanhol + Espanha, mas muitas vezes basta es), en-US-UK (combinação inválida de múltiplas regiões).
  • Consequência: informações redundantes podem confundir o motor de busca, que pode preferir páginas concorrentes mais simples.

Ferramentas recomendadas e métodos de validação

  • Ferramenta de teste hreflang do Google: insira a URL para verificar se o código é reconhecido (requer Search Console).
  • Screaming Frog: rastreia o site, filtra as tags hreflang e exporta os erros em lote (versão paga).
  • Hreflang Validator (ferramenta de terceiros): validação online gratuita que marca erros de formato e links conflitantes.

Passos práticos para correção

Verifique os códigos existentes: em sites WordPress, use plugins (como Yoast SEO) ou veja diretamente o código-fonte da página para localizar as tags <link rel="alternate" hreflang="..." />.

Substituição em massa de códigos incorretos

  1. Se você usa um plugin multilíngue (como WPML), altere diretamente o formato do “código de idioma” nas configurações de idioma.
  2. Ao modificar manualmente, certifique-se de que todas as páginas tenham um formato unificado (por exemplo, substituir globalmente EN por en).

Adicionar código regional (opcional)

  • Adicione apenas se precisar segmentar regiões (como en-GB para usuários do Reino Unido), caso contrário, mantenha apenas o código de idioma (como fr).

Revalidação:Use ferramentas para verificar novamente, garantindo que as páginas corrigidas retornem código 200 e não apresentem erros de rastreamento.

Não usar URLs absolutas completas

Muitos administradores de sites pensam erroneamente que caminhos relativos (como /de/page) ou omitir o protocolo (como example.com/de) simplificam a configuração, mas isso pode causar problemas sérios.

Por exemplo, se uma página existir nas versões http e https, não especificar o protocolo pode fazer com que o mecanismo interprete como duas páginas separadas, dispersando a autoridade.

Além disso, em sites com subdomínios ou estruturas de subdiretórios, não usar URLs completas pode causar ambiguidade de caminho e fazer as tags falharem (por exemplo, misturar URLs da versão móvel e desktop).

Definição e necessidade de URLs absolutas

URL absoluta deve incluir protocolo (http:// ou https://), domínio completo e caminho (como https://www.example.com/de/page).

Necessidade

  1. Os motores de busca precisam distinguir claramente as páginas. Caminhos relativos (como /de/page) podem ser interpretados como qualquer versão do domínio (http ou https), causando conteúdo duplicado.
  2. Em subdomínios ou subdiretórios, não usar URLs absolutas pode levar os mecanismos a confundirem a propriedade da página (por exemplo, de.example.com/page e www.example.com/de/page podem ser vistos como páginas distintas).

Cenários típicos de problemas

  • Páginas existem nas versões http e https, mas hreflang não inclui o protocolo, dispersando a autoridade.
  • Conteúdo compartilhado entre versões móvel e desktop com URLs diferentes (como m.example.com/de e example.com/de) sem usar URLs absolutas para vinculá-los.

Erros comuns e consequências

Erro 1: Caminhos relativos ou falta de protocolo

Exemplos incorretos

  1. <link hreflang="de" href="/de/page" /> (caminho relativo)
  2. <link hreflang="es" href="www.example.com/es/page" /> (sem https://)

Consequências

  • Os motores podem interpretar /de/page como http://example.com/de/page, mas a página real está em https, causando falha na tag hreflang.
  • Versões http e https são vistas como entidades separadas, causando conteúdo duplicado e dispersão de autoridade.

Erro 2: Subdomínios não unificados

  • Exemplo incorreto: o site principal usa https://example.com/fr/page, mas o subsite francês usa outro URL.
  • https://fr.example.com/page e os atributos hreflang não apontam mutuamente para URLs absolutas.
  • Consequência: Os mecanismos de busca não conseguem associar o subdomínio às páginas do site principal, fazendo com que usuários de língua francesa possam ser redirecionados para a página do idioma padrão.
  • Erro 3: Parâmetros dinâmicos não padronizados

    • Exemplo de erro: <link hreflang="ja" href="https://example.com/page?lang=ja" /> (contendo parâmetros de rastreamento)
    • Consequência: Os mecanismos podem considerar essas URLs como páginas diferentes (por exemplo, ?lang=ja e ?lang=ja&utm=ads), levando a uma cobertura incompleta das tags hreflang.

    Métodos de verificação com ferramentas

    • Google Search Console:
      Verifique no relatório de cobertura erros por “páginas duplicadas” ou “hreflang não marcado” para localizar URLs incompletas.
    • Screaming Frog:
      Após rastrear o site, filtre as tags hreflang e verifique se todos os atributos href são URLs absolutas (filtro: //example.com ou /path).
    • Sitebulb:
      No relatório de auditoria SEO internacional, indica diretamente “URLs hreflang incompletas” com sugestões de correção.

    Soluções e passos práticos

    Sistemas CMS (como WordPress):

    Configuração do plugin:
    Se usar plugins como Yoast SEO, ative a opção “gerar URLs absolutas” nas configurações multilíngues (normalmente desative “caminhos relativos”).

    Substituição em massa no banco de dados:
    Por comandos SQL ou plugins (como Better Search Replace), substitua href="/ por href="https://www.example.com/.

    Correção manual do código:
    No HTML ou na lógica do servidor, assegure que todos os links hreflang usem URLs completas, por exemplo:

    <link rel="alternate" hreflang="de" href="<?php echo site_url('/de/page'); ?>" />

    Configuração do servidor:

    • Forçar protocolo unificado: via .htaccess ou configuração Nginx, redirecione automaticamente http para https para evitar conteúdo misto.
    • Normalização de URL: aplique redirecionamentos 301 para diferentes variações de caminho que levam ao mesmo conteúdo (ex: /de e /de/) para garantir uma única URL absoluta.

    Falta da tag hreflang de auto-referência

    Por exemplo, se uma página em francês apenas marcar links para versões em inglês ou espanhol, mas não declarar hreflang="fr" apontando para si mesma,

    os motores de busca podem não identificar corretamente o idioma da página, levando a uma classificação incorreta para usuários francófonos.

    Função e necessidade da tag hreflang auto-referenciada

    A tag auto-referenciada é a declaração hreflang na página que aponta para si mesma (por exemplo, a página em francês deve incluir <link rel="alternate" hreflang="fr" href="URL da própria página"/>).

    Principais funções:

    • Define claramente para os motores de busca o idioma e a região da página, evitando erros de classificação.
    • Forma um vínculo fechado entre as versões em diferentes idiomas para garantir a correta transmissão de autoridade entre as páginas.

    Consequências da falta

    • Os motores de busca podem considerar a página como “idioma não declarado” e atribuí-la por padrão ao diretório principal do idioma, resultando em perda de tráfego de usuários-alvo.
    • Em cenários de competição multilíngue (por exemplo, páginas em inglês e espanhol sem autorreferência), pode gerar problemas de conteúdo duplicado interno.

    Cenários comuns de erro e análise de casos

    Erro 1: Uso incorreto do hreflang em sites de idioma único

    • Cenário: Página com apenas uma versão de idioma, mas com hreflang apontando para versões inexistentes em outros idiomas.
    • Exemplo de consequência: Uma página de site somente em inglês adiciona hreflang="en" apontando para si mesma, mas também linka incorretamente para uma página inexistente com hreflang="es", causando confusão nos motores de busca.

    Erro 2: Falha na configuração do plugin multilíngue

    • Exemplo de cenário: Ao usar o plugin WPML, a opção “Gerar hreflang autorreferenciado automaticamente” não está marcada.
    • Consequência: As tags geradas contêm apenas links para outras versões de idioma, faltando a declaração da página atual.

    Erro 3: Página dinâmica sem carregamento completo das tags

    • Exemplo de cenário: Em páginas baseadas em JavaScript (como React/Vue), a tag hreflang não é corretamente injetada no <head>.
    • Consequência: Os robôs de busca podem não reconhecer a tag autorreferenciada gerada dinamicamente.

    Ferramentas e métodos de detecção

    Passo 1: Verificação manual do código-fonte

    • Pressione Ctrl+U para ver o código-fonte, procure por hreflang="xx" e confirme se existe uma tag que aponta para a URL atual (nota: xx é o código do idioma da página atual).

    Passo 2: Validação pelo Google Search Console

    • Na ferramenta “Inspeção de URL”, insira a URL da página e verifique o relatório “Alvo internacional” — se mostrar “Nenhuma tag hreflang autorreferenciada detectada”, o problema existe.

    Passo 3: Ferramenta Hreflang Validator

    • Insira a URL da página, a ferramenta listará todos os links hreflang relacionados e marcará em vermelho a ausência da tag autorreferenciada.

    Soluções e passos práticos

    Correção em CMS (exemplo WordPress)

    Configuração do plugin

    • Se usar Yoast SEO: ative “Adicionar hreflang autorreferenciado” nas configurações avançadas.
    • Se usar WPML: vá para “Configurações de idioma” → “Opções de SEO” e marque “Incluir link próprio”.

    Correção manual (sites estáticos ou código personalizado)

    Adicione o seguinte código dentro da seção <head> (exemplo para página em francês):

    <link rel="alternate" hreflang="fr" href="https://www.example.com/fr/page-actuelle" />
    <link rel="alternate" hreflang="x-default" href="https://www.example.com/" />

    Correção de páginas renderizadas dinamicamente (como React)

    Na lógica de renderização no servidor (SSR), a tag de auto-referência é gerada dinamicamente de acordo com o idioma atual da página:

    const hreflangSelf = `<link rel="alternate" hreflang="${currentLang}" href="${currentURL}"/>`;
    document.head.insertAdjacentHTML('beforeend', hreflangSelf);

    Páginas multilíngues não estão relacionadas entre si

    Por exemplo, a página em alemão aponta para a versão em inglês, mas a página em inglês não vincula de volta à alemã.

    Links unilaterais impedem que os motores de busca reconheçam a relação entre versões multilíngues, o que pode resultar em apenas algumas páginas sendo indexadas, ou até serem consideradas conteúdo duplicado.

    Princípio e necessidade de associação fechada

    A regra principal do hreflang é todas as páginas associadas devem se referir umas às outras, formando um circuito fechado completo. Por exemplo:

    • A página em alemão (de) deve apontar para as versões em inglês (en), francês (fr) e outros idiomas;
    • As páginas em inglês e francês também devem apontar de volta para a alemã.

    Necessidade:

    • Transferência de autoridade: A associação fechada ajuda os motores de busca a entender que as páginas multilíngues são equivalentes, evitando dispersão de autoridade.
    • Prevenção de conteúdo duplicado: Se houver apenas links unilaterais (por exemplo, a página em inglês aponta para a alemã, mas a alemã não aponta para a inglesa), os motores podem considerar as páginas como conteúdo independente e penalizar por conteúdo duplicado.

    Exceções:

    • Páginas em um único idioma (por exemplo, apenas inglês) não precisam de associação fechada, mas precisam de auto-referência.
    • Variantes regionais (como en-US e en-GB) devem se referir mutuamente, mas não precisam vincular a outros idiomas.

    Cenários comuns de quebra de associação e consequências

    Cenário 1: Adição de nova versão de idioma sem atualização das páginas antigas

    • Exemplo: Um site de notícias adicionou uma página em japonês (ja), mas as páginas originais em inglês e chinês não adicionaram links hreflang para a página japonesa.
    • Consequência: A página japonesa fica “isolada” e os motores de busca indexam apenas as outras páginas vinculadas.

    Cenário 2: Falha na lógica do plugin CMS

    • Exemplo: Plugins multilíngues do WordPress (como Polylang) ao gerar páginas em massa não adicionam automaticamente links para os novos idiomas no conteúdo antigo.
    • Consequência: Algumas páginas perdem a associação e os usuários não conseguem mudar para a nova versão do idioma a partir do conteúdo antigo.

    Cenário 3: Parâmetros dinâmicos causam falhas na associação

    • Exemplo: A URL da página em espanhol contém parâmetros (como ?lang=es), mas outras páginas não incluem este parâmetro no hreflang.
    • Consequência: Os motores de busca veem a página com o parâmetro es como conteúdo não relacionado às outras versões do idioma.

    Ferramentas de detecção e métodos de inspeção

    Ferramenta 1: Screaming Frog

    • Nos resultados da varredura, acesse a aba “Hreflang” e filtre por “Missing Reciprocal Links” (links recíprocos ausentes).
    • Ação: Exporte a lista de erros para localizar grupos de URLs sem associação fechada.

    Ferramenta 2: Sitebulb

    • No relatório “Auditoria SEO Internacional”, verifique o alerta “Unreciprocated hreflang links” que mostra páginas quebradas e idiomas faltantes.

    Ferramenta 3: DeepCrawl

    • Configure regras personalizadas para monitorar a associação entre páginas multilíngues e receba relatórios automáticos semanais sobre problemas de links quebrados.

    Soluções e passos práticos

    Solução 1: Correção em massa via plugin CMS (exemplo Shopify)

    Nas configurações do plugin multilíngue (como Langify), ative a opção “Associar automaticamente todas as versões de idioma”.

    Na seção “Configurações do modelo”, certifique-se de que a lógica da tag hreflang inclua um loop que percorra todas as versões de idioma:

    {% for language in shop.languages %}
    <link rel="alternate" hreflang="{{ language.iso_code }}" href="{{ canonical_url | replace: shop.domain, language.domain }}" />
    {% endfor %}

    Solução 2: Correção manual do código (site estático)

    Crie uma lista de associação para cada versão de idioma (como um arquivo Excel), listando todos os grupos de URLs que precisam ser interligados.

    Adicione as tags na página de acordo com a lista, por exemplo:


    <link rel="alternate" hreflang="en" href="https://example.com/en/page" />
    <link rel="alternate" hreflang="de" href="https://example.com/de/page" />
    <link rel="alternate" hreflang="fr" href="https://example.com/fr/page" />

    Sincronize também as tags hreflang nas páginas em alemão e francês para garantir que contenham links para a página em inglês.

    Solução 3: Automação do lado do servidor (como Nginx)

    Gere dinamicamente as tags hreflang por meio de proxy reverso e regras de mapeamento:

    location / {
    add_header Link "<https://$host/en$uri>; rel=alternate; hreflang=en";
    add_header Link "<https://$host/de$uri>; rel=alternate; hreflang=de";
    }

    Conflito com tags Canonical

    Por exemplo, se a página de um produto em alemão tiver uma tag Canonical apontando para a página principal em inglês, os mecanismos de busca entenderão que a página em alemão é uma cópia da página em inglês, e não a distribuirão para os usuários de língua alemã.

    O problema mais comum é que muitos sistemas CMS configuram por padrão todas as versões de idioma para apontar com Canonical para a página principal do idioma principal (por exemplo, x-default), impedindo que outras páginas de idioma sejam indexadas separadamente.

    Princípio do conflito e regras de prioridade

    Ordem de prioridade que os mecanismos de busca seguem ao processar as tags hreflang e Canonical:

    Canonical tem prioridade: se a página A aponta para a página B com a tag Canonical, os mecanismos de busca considerarão A como uma cópia de B, mesmo que A tenha uma declaração hreflang, esta será ignorada.

    Cenários em que hreflang falha:

    1. A página em francês aponta para a página em inglês com Canonical → a página em francês não será distribuída aos usuários franceses.
    2. Páginas multilíngues têm um Canonical unificado apontando para a página principal → todas as versões de idioma são consideradas conteúdo duplicado.

    Regra de exceção:

    • Se a tag Canonical aponta para si mesma (ou seja, <link rel="canonical" href="URL da página atual"/>), hreflang funcionará corretamente.

    Cenários típicos de erros e consequências

    Erro 1: Conflito na configuração padrão de plugins multilíngues

    • Exemplo: O plugin Yoast SEO do WordPress, por padrão, faz com que a tag Canonical das páginas multilíngues aponte para a página do idioma principal. Por exemplo, a página em alemão terá a tag Canonical assim: <link rel="canonical" href="https://example.com/en/page"/>.
    • Consequência: A página em alemão é considerada uma cópia da página em inglês e não aparece nos resultados de busca em alemão, causando uma perda de tráfego superior a 50%.

    Erro 2: Interferência de parâmetros dinâmicos

    • Exemplo: URLs com parâmetros (como example.com/page?lang=de) têm o Canonical apontando para a versão sem parâmetros (example.com/page), mas esta última não está configurada com hreflang.
    • Consequência: A página em alemão com parâmetros não é indexada, e os usuários veem apenas a página no idioma padrão ao buscar.

    Erro 3: Variantes regionais não declaradas separadamente

    • Exemplo: A página en-US tem o Canonical apontando para a página geral em inglês (en), fazendo com que os motores de busca considerem que a página em inglês americano não tem valor independente.
    • Consequência: Usuários nos EUA podem ser direcionados para a página en (por exemplo, inglês britânico), reduzindo a experiência local.

    Ferramentas de detecção e métodos de diagnóstico

    Ferramenta 1: Google Search Console

    • Acesse o relatório “Cobertura”, filtre a aba “Excluídos” por “Páginas duplicadas” ou “Enviadas mas não indexadas” e verifique se há falhas no hreflang causadas por conflitos de Canonical.

    Ferramenta 2: Screaming Frog

    • Após rastrear o site, filtre páginas que contenham simultaneamente tags hreflang e Canonical, e verifique se o Canonical aponta para outra página (não para si mesma).
    • Exporte os dados e filtre com a condição: Canonical != Self-URL.

    Ferramenta 3: DeepCrawl

    • Configure regras de alerta personalizadas para disparar avisos quando hreflang e o destino do Canonical não coincidirem.

    Planos de correção e passos práticos

    Plano 1: Correção via plugin CMS (exemplo Yoast SEO)

    1. Vá para as configurações multilíngues e desative a opção “Canonical unificado apontando para o idioma principal”.
    2. Nas “Configurações avançadas”, ative “Gerar tags Canonical independentes para cada versão de idioma”.

    Plano 2: Correção manual de código

    No <head>, certifique-se que a tag Canonical aponte para sua própria URL, por exemplo:

    <!-- Página em alemão com Canonical apontando para si mesma -->
    <link rel="canonical" href="https://example.com/de/page" />

    Plano 3: Configuração do servidor (exemplo Nginx)

    Gerar dinamicamente a tag Canonical correspondente à versão do idioma atual:

    location /de/ {
    add_header Link "<https://example.com/de/$uri>; rel=canonical";
    }

    Erros de servidor ou falta de suporte a requisições HTTP

    Por exemplo, páginas geradas dinamicamente que não carregam o HTML completo devido a timeout do servidor, resultando na ausência das tags hreflang dentro do <head>;

    Ou páginas móveis que retornam redirecionamento temporário 302 ao invés do código 200, o que pode levar os motores de busca a ignorar as marcações;

    Algumas regras de CDN ou firewall bloqueiam requisições de crawlers, impedindo que páginas em determinados idiomas regionais sejam acessadas.

    Tipos de erros de servidor e seus impactos

    Códigos de status chave e suas consequências:
    404 Not Found

    • Cenário: Uma página em francês está sendo referenciada por páginas em outros idiomas via hreflang, mas a URL real foi removida ou o caminho está incorreto.
    • Consequências: Os motores de busca consideram a associação hreflang inválida, a página em francês não é indexada, o que também diminui a confiança nas páginas de outros idiomas.

    500 Internal Error

    • Cenário: Falha do servidor faz com que as tags hreflang geradas dinamicamente não sejam carregadas.
    • Consequências: A página retorna erro 500, hreflang deixa de funcionar completamente, podendo levar a bloqueio temporário do site pelos robôs de busca.

    302 Temporary Redirect

    • Cenário: Página móvel redireciona temporariamente para a URL da versão desktop, mas não transmite as tags hreflang.
    • Consequências: O motor de busca pode capturar apenas o hreflang da página desktop, ignorando a versão móvel em outros idiomas.

    Problemas de carregamento de páginas dinâmicas

    Defeitos na renderização JavaScript

    • Exemplo: Aplicações SPA (Single Page Applications) em React/Vue inserem tags hreflang dinamicamente via JS, mas sem pré-renderização.
    • Consequências: Motores de busca podem não executar JS, fazendo com que as tags hreflang não sejam lidas.

    Interferência na configuração de CDN/cache

    • Exemplo: Configuração do CDN ignora hreflang no <head> ou cacheia versão errada do idioma.
    • Consequências: Usuários podem acessar versões diferentes do idioma no mesmo URL, causando confusão nas associações hreflang.

    Timeout e problemas de desempenho do servidor

    • Exemplo: Tempo de carregamento da página é muito longo (>5 segundos), o motor de busca encerra a captura antes do tempo e não lê as tags hreflang completamente.
    • Consequências: Algumas associações de idioma se perdem, afetando principalmente sites multilíngues grandes.

    Ferramentas de detecção e métodos de diagnóstico

    Google Search Console

    • Use o relatório de cobertura para revisar páginas excluídas por erros de servidor (404/500), filtrando URLs multilíngues.

    Screaming Frog

    1. Ative a opção “Verificar hreflang” nas configurações de rastreamento.
    2. Filtre os resultados por erros de servidor (4xx, 5xx) para ver páginas relacionadas ao hreflang.

    Análise de logs do servidor

    • Filtre os logs do servidor (como access.log do Nginx) para requisições de crawlers (User-Agent com Googlebot) e localize URLs que retornam erros frequentemente.

    Soluções e passos práticos

    Correção de erros de servidor

    Problema 404

    • Verifique se todos os URLs indicados no hreflang existem e corrija links quebrados.
    • Se a página foi removida, remova o link hreflang correspondente nas outras versões de idioma.

    Problema 500

    • Otimize os recursos do servidor (como aumentar memória, pool de conexões de banco) para reduzir o risco de falhas.
    • Configure monitoramento e alertas (como New Relic) para detectar e corrigir falhas em tempo real.

    Otimização de páginas dinâmicas

    Solução de pré-renderização

    • Use frameworks SSR como Next.js ou Nuxt.js para garantir que o hreflang esteja presente no HTML inicial.
    • Configure ferramentas de pré-renderização (como Prerender.io) para fornecer versões estáticas para crawlers.

    Correção na configuração do CDN

    1. Nas configurações do CDN, defina os caminhos de idioma (como /de/, /fr/) para “não cachear” ou com curto tempo de cache (por exemplo, 1 hora).
    2. Assegure que o CDN transmita o conteúdo completo do <head> sem modificar o HTML.

    Otimização de desempenho

    • Comprima os recursos da página (imagens, CSS/JS) para reduzir o tempo de carregamento para menos de 3 segundos.
    • Use ferramentas como Google Lighthouse para detectar e corrigir problemas que bloqueiam a renderização.

    Conteúdo duplicado causado por parâmetros dinâmicos

    O uso excessivo de parâmetros dinâmicos (como ?utm_source=ads ou ?sessionid=123) nas URLs é um “fator oculto” que gera problemas de conteúdo duplicado em sites multilíngues.

    Por exemplo, uma página em espanhol pode gerar múltiplas URLs com diferentes parâmetros (como /es/page?ref=facebook e /es/page?ref=email), que os motores de busca consideram páginas distintas, causando duplicação de conteúdo.

    Impacto e classificação dos parâmetros

    Parâmetros que devem ser mantidos:

    1. Parâmetros de paginação (como ?page=2): usados para diferenciar blocos de conteúdo, devem ser mantidos, mas normalizados (por exemplo, com rel="canonical" apontando para a página principal).
    2. Parâmetros de idioma/região (como ?lang=de): se o idioma não for indicado no caminho da URL (como /de/), esses parâmetros devem ser mantidos e corresponder ao hreflang.

    Parâmetros que devem ser removidos:

    1. Parâmetros de rastreamento (como ?utm_source, ?ref=social): não alteram o conteúdo da página e devem ser removidos do hreflang.
    2. ID de sessão (como ?sessionid=123): parâmetros de rastreamento de usuário que podem gerar muitos URLs duplicados.

    Cenários comuns de erro e consequências

    Erro 1: parâmetros não normalizados

    • Exemplo: A mesma página em francês existe com múltiplos URLs com parâmetros diferentes (como /fr/page?utm=ads e /fr/page?utm=email), e ambos são declarados no hreflang como páginas independentes.
    • Consequência: Os motores de busca rastreiam múltiplas versões duplicadas, dispersando autoridade e diminuindo o ranking da página em francês.

    Erro 2: hreflang omite parâmetros

    • Exemplo: A página em inglês no hreflang aponta para /de/page, mas a URL real da página alemã é /de/page?lang=de, causando uma quebra na associação.
    • Consequência: A página alemã é considerada conteúdo independente e não está vinculada à página em inglês.

    Erro 3: parâmetros de paginação interferem no conteúdo principal

    • Exemplo: A página de lista de produtos /es/products?page=2 no hreflang não aponta para a página principal da lista /es/products.
    • Consequência: A paginação pode ser interpretada como uma página de idioma independente, competindo por tráfego com a página principal.

    Métodos de detecção com ferramentas

    Google Search Console:

    • No relatório de “Cobertura”, filtre URLs “Enviadas mas não indexadas” para verificar se foram excluídas por duplicação de parâmetros.

    Screaming Frog:

    1. Ao rastrear o site, ative a opção “Ignorar parâmetros de URL” e compare o conteúdo das páginas com e sem parâmetros.
    2. Filtre as tags hreflang para detectar URLs com parâmetros não normalizados.

    Expressões regulares:

    • Em ferramentas de análise de logs (como ELK Stack), filtre solicitações de bots contendo parâmetros específicos (como utm_*) usando regex e contabilize as repetições.

    Soluções e passos práticos

    Solução 1: normalização de parâmetros (configuração do servidor)

    Exemplo de regra para Apache:

    RewriteCond %{QUERY_STRING} ^utm_
    RewriteRule ^(.*)$ /$1? [R=301,L]
    • Função: remove automaticamente todos os parâmetros utm_ e redireciona 301 para a URL sem parâmetros.

    Solução 2: alinhamento entre hreflang e canonical

    • Use apenas URLs sem parâmetros no hreflang (por exemplo, /de/page).
    • Para URLs com parâmetros, adicione a tag canonical apontando para a versão sem parâmetros:
    <link rel="canonical" href="https://example.com/de/page" />

    Solução 3: configuração de parâmetros no Google Search Console

    1. Nas configurações de parâmetros de URL, marque parâmetros como utm_ e sessionid como “Sem efeito no conteúdo da página”.
    2. Marque parâmetros de paginação (como page) como “Paginação” para ajudar os mecanismos a entender sua função.

    A otimização hreflang para sites multilíngues não é uma configuração “única e definitiva”.
    O aprimoramento contínuo começa por evitar esses pequenos erros técnicos.

    滚动至顶部