FuncionalidadesPluginPreçosRecursos
Mudar idioma
RecursosComo Implementar Tags hreflang para WordPress Multilíngue

Como Implementar Tags hreflang para WordPress Multilíngue

SimplePoTranslate Team31 de maio de 2026
Como Implementar Tags hreflang para WordPress Multilíngue

Você traduziu todo o seu site WordPress para seis idiomas. Os arquivos .po estão limpos, os arquivos .mo estão compilados, e cada string é renderizada perfeitamente em francês, alemão e japonês. No entanto, semanas após o lançamento, você verifica o Google Search Console e encontra algo intrigante: sua página em francês está classificando para pesquisas em alemão, sua página em espanhol-México está sendo exibida para usuários na Espanha, e duas das suas versões de idioma estão canibalizando-se mutuamente nos rankings. O conteúdo está bom. O problema é que o Google não tem ideia de qual versão pertence a qual público.

Isso é exatamente o que as tags hreflang WordPress foram projetadas para corrigir. Hreflang é o sinal que informa aos motores de busca qual idioma e versão regional de uma página servir a cada usuário. Se você errar, sofrerá diluição de conteúdo duplicado, resultados no idioma errado e desperdício de orçamento de rastreamento. Se você acertar, cada página traduzida alcançará o público para o qual foi escrita. Este guia aborda a sintaxe, a diferença entre códigos de idioma e idioma-região, o x-default obrigatório, a reciprocidade das tags de retorno e três maneiras práticas de implementá-lo no WordPress.

O Que o hreflang Realmente Faz

Hreflang não traduz nada. É um mapa de relacionamentos. Quando você tem a mesma página em vários idiomas, as anotações hreflang dizem ao Google "esta URL é a versão em inglês, esta é a versão em alemão, esta é para falantes de espanhol no México." O Google usa esse mapa para servir a versão correta nos resultados de pesquisa com base nas configurações de idioma e localização do usuário.

A anotação reside no <head> do seu HTML como um conjunto de elementos <link>. Cada elemento nomeia uma página de destino e o idioma (e, opcionalmente, a região) que ela atende. Aqui está um conjunto correto de tags hreflang para uma página disponível em inglês dos EUA, inglês do Reino Unido e espanhol mexicano, com um fallback padrão:

<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/pricing/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/pricing/" />
<link rel="alternate" hreflang="es-MX" href="https://example.com/es-mx/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />

Cada página no conjunto deve exibir este mesmo bloco, listando todas as alternativas, incluindo ela mesma. Este último ponto confunde a maioria das pessoas, e voltaremos a ele.

Por Que Isso É Importante para SEO

Sem hreflang, o Google trata suas páginas traduzidas como quase-duplicatas competindo pelas mesmas palavras-chave. O resultado é a diluição: sinais de ranking divididos entre versões em vez de consolidados. Com hreflang correto, cada versão herda a autoridade do conjunto como um todo e aparece para os pesquisadores certos. Esta é uma das ações de SEO de maior alavancagem que um site multilíngue pode fazer, e complementa, em vez de substituir, a tradução real do conteúdo em seus arquivos .po. Cobrimos o lado do conteúdo em profundidade em nosso guia sobre como a tradução de arquivos PO impacta os rankings do Google.

Códigos de Idioma vs. Idioma-Região

Qual você deve usar, en ou en-GB? Use o código mais simples que seja verdadeiro. Se o seu conteúdo em inglês é genérico e você não mantém versões britânicas e americanas separadas, use apenas en. Adicione um subcódigo de região apenas quando você realmente serve conteúdo diferente para países diferentes.

Os valores hreflang seguem o formato idioma ou idioma-região. A parte do idioma é um código ISO 639-1 (en, es, de, pt). A região opcional é um código de país ISO 3166-1 Alpha 2 (US, GB, MX, BR). Assim:

  • en direciona todos os falantes de inglês, independentemente do país.
  • en-GB direciona falantes de inglês no Reino Unido.
  • es direciona todos os falantes de espanhol.
  • es-MX direciona especificamente falantes de espanhol no México.

Um detalhe crítico: o subcódigo de região é um país, não uma variante de idioma. es-MX não significa "dialeto espanhol mexicano", significa "espanhol, exibido para usuários no México." O Google ainda o serve com base na localização do usuário. Se você mantém dialetos regionais em suas traduções, o código de região é como você os direciona. Aprofundamos o lado linguístico disso em nosso guia sobre variantes regionais de espanhol e português.

Um Exemplo Comum de Erro

Aqui está um bloco hreflang incorreto que vemos constantemente:

<link rel="alternate" hreflang="en-uk" href="https://example.com/uk/" />
<link rel="alternate" hreflang="sp" href="https://example.com/es/" />
<link rel="alternate" hreflang="pt-PT_BR" href="https://example.com/pt/" />

Três erros. en-uk é inválido porque o código de país para o Reino Unido é GB, não UK. sp não é um código de idioma; espanhol é es. E pt-PT_BR mistura duas regiões com um underscore que não tem significado em hreflang. Os motores de busca ignoram silenciosamente valores malformados, então você não recebe nenhum erro e nenhum benefício, apenas horas de depuração se perguntando por que nada mudou.

Observe que hreflang usa um hífen (en-GB), enquanto os arquivos de localidade do WordPress usam um underscore (en_GB). Não copie os códigos de nome de arquivo .po diretamente para as tags hreflang.

O x-default e a Reciprocidade das Tags de Retorno

Duas regras causam mais falhas silenciosas de hreflang do que qualquer outra coisa: o x-default ausente e a reciprocidade quebrada.

O valor x-default informa ao Google qual página servir quando nenhum outro idioma corresponde ao usuário. É o seu fallback, tipicamente o seu seletor de idioma ou a página inicial do seu mercado primário. Não é estritamente obrigatório pela especificação, mas na prática você deve sempre incluí-lo. Sem ele, um visitante de língua portuguesa para quem você não tem uma versão em português recebe uma escolha aleatória em vez de um padrão deliberado.

A reciprocidade das tags de retorno não é negociável. Cada página em um conjunto hreflang deve apontar de volta para todas as outras páginas, incluindo ela mesma. Se sua página em inglês lista o alemão como uma alternativa, sua página em alemão deve listar o inglês como uma alternativa. Se a página em alemão omitir a referência de retorno, o Google desconfia de todo o relacionamento e ignora as anotações.

<!-- On the German page, the set must still list ALL versions -->
<link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/about/" />

A auto-referência (de apontando para a página em alemão enquanto visualiza a página em alemão) é obrigatória, não opcional. Um conjunto de cinco versões de idioma significa que cada uma das cinco páginas exibe todas as cinco tags <link> mais o x-default.

Três Formas de Implementar hreflang no WordPress

Você tem três opções práticas, que variam de controle manual total a totalmente automatizado.

Método 1: Manual via wp_head

Para um pequeno conjunto estático de páginas, você pode injetar tags hreflang diretamente através da ação wp_head no functions.php do seu tema:

add_action( 'wp_head', function () {
    if ( ! is_page( 'pricing' ) ) {
        return;
    }
    $alternates = array(
        'en-US' => 'https://example.com/en-us/pricing/',
        'es-MX' => 'https://example.com/es-mx/pricing/',
        'x-default' => 'https://example.com/pricing/',
    );
    foreach ( $alternates as $lang => $url ) {
        printf(
            '<link rel="alternate" hreflang="%s" href="%s" />' . "\n",
            esc_attr( $lang ),
            esc_url( $url )
        );
    }
} );

Isso lhe dá controle preciso, mas não escala. Manter a reciprocidade manualmente em centenas de posts é uma armadilha de manutenção.

Método 2: Um Plugin Multilíngue

Se você usa Polylang, WPML ou TranslatePress, o hreflang é gerado automaticamente com base nos seus relacionamentos de tradução. Esta é a resposta certa para a maioria dos sites porque o plugin já sabe qual post é a tradução de qual, então a reciprocidade e o x-default são tratados para você. O custo é a sobrecarga de tempo de execução que esses plugins adicionam, que é o trade-off que examinamos em nossa comparação de abordagens de tradução manual versus IA.

Em vez de colocar hreflang no <head> de cada página, você pode declarar os relacionamentos no seu sitemap XML usando o namespace xhtml:link. Cada entrada <url> lista todas as suas alternativas de idioma:

<url>
  <loc>https://example.com/en/about/</loc>
  <xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
  <xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
  <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
</url>

Isso mantém o HTML da sua página enxuto e centraliza o mapa de idiomas em um único arquivo rastreável, que o Google lê sem problemas. A maioria dos plugins de SEO pode gerar isso automaticamente.

hreflang Complementa a Tradução, Não a Substitui

Aqui está o ponto que todos perdem: hreflang é inútil se as páginas subjacentes não estiverem realmente traduzidas. A tag diz ao Google "esta é a versão em alemão", mas se a URL alemã ainda mostra strings de plugin em inglês, rótulos de checkout não traduzidos ou arquivos .po semi-acabados, você simplesmente disse ao Google para servir conteúdo quebrado aos usuários alemães com total confiança.

O SEO multilíngue real tem duas camadas. A camada de conteúdo são seus arquivos .po, .pot, .json e .xliff traduzidos, levando cada string de tema e plugin para o idioma de destino. A camada de sinal é o hreflang, que direciona cada versão finalizada para seu público. Ambas precisam ser sólidas. Um conjunto hreflang impecável em cima de um site 40% traduzido apenas garante uma experiência pior mais rapidamente.

É aqui que manter a camada de tradução limpa é mais importante. Ao traduzir seus arquivos de interface, placeholders como %s, %1$s e {name} devem permanecer intactos, ou sua página alemã "traduzida" será renderizada com tokens %s literais que parecem quebrados tanto para usuários quanto para motores de busca. Um pipeline de tradução compatível com gettext e com Syntax Locking protege esses tokens automaticamente, para que cada página alternativa para a qual você aponta o hreflang esteja genuinamente pronta para produção. Como ele funciona na nuvem com Smart Batching, você pode enviar um site multilocal completo através dele sem instalar plugins de tradução que incham o tempo de execução que servem essas mesmas páginas.

Primeiro, faça o conteúdo certo, depois deixe o hreflang fazer o seu trabalho. Os dois juntos são o que consolidam os sinais de ranking, eliminam resultados em idioma errado e colocam cada página traduzida na frente das pessoas que podem lê-la.

Pronto para corrigir os resultados de pesquisa em idioma errado na origem? Experimente o SimplePoTranslate gratuitamente — não é necessário cartão de crédito. Traduza seus arquivos .po, .pot e .json no plano gratuito e, em seguida, aponte suas tags hreflang para páginas que estão realmente prontas para todos os mercados.