Skip to main content
Validação HTML

Valor inválido “en-EN” para o atributo “hreflang” no elemento “link”: Subtag de região inválida.

Sobre este problema HTML

O atributo hreflang num elemento link informa aos browsers e motores de busca o idioma e região opcional do recurso vinculado. O seu valor deve ser uma tag de idioma BCP 47 válida, que segue uma estrutura específica: uma subtag de idioma primário (como en, fr, de) opcionalmente seguida por uma subtag de região (como US, GB, FR). A subtag de região deve ser um código de país válido de duas letras ISO 3166-1 alpha-2.

A tag en-EN é inválida porque EN não é um código de país reconhecido. Não existe nenhum país com o código “EN” — é um erro comum onde o código do idioma é simplesmente repetido como região. Este padrão também aparece frequentemente com outros idiomas, como fr-FR (que por acaso é válido porque FR é o código de país para França), levando as pessoas a assumir que en-EN segue a mesma lógica. No entanto, EN não está atribuído a nenhum país na ISO 3166-1, pelo que o validador corretamente rejeita-o.

Por que isto é importante

  • SEO e internacionalização: Motores de busca como o Google usam valores hreflang para servir a versão localizada correta de uma página. Um valor inválido pode fazer com que os motores de busca ignorem completamente a tag, prejudicando a sua estratégia de localização.
  • Conformidade com padrões: Browsers e ferramentas dependem de tags de idioma bem formadas para aplicar comportamentos específicos de locale corretos, como seleção de fontes, sugestões de formatação de datas e idioma de verificação ortográfica.
  • Acessibilidade: Leitores de ecrã e tecnologias assistivas podem usar informações de idioma para selecionar a voz de síntese de fala correta. Tags de idioma inválidas podem levar a que o conteúdo seja lido com o sotaque ou idioma errado.

Subtags de região inválidas comuns

Este erro não se limita ao inglês. Aqui estão alguns padrões inválidos comumente vistos e as suas correções:

Inválido Por que está errado Alternativas válidas
en-EN EN não é um código de país en, en-US, en-GB, en-AU
de-DE ✅ Na verdade é válido — DE é Alemanha de, de-DE, de-AT, de-CH
ja-JA JA não é um código de país ja, ja-JP
zh-ZH ZH não é um código de país zh, zh-CN, zh-TW
ko-KO KO não é um código de país ko, ko-KR

A conclusão principal: não assuma que pode duplicar o código do idioma para fazer uma subtag de região. Verifique sempre contra a lista de códigos de país ISO 3166-1 alpha-2.

Como corrigir

  1. Se não precisar de uma variante regional, use apenas a subtag do idioma: en.
  2. Se precisar de uma variante regional específica, emparelhe a subtag do idioma com o código de país correto: en-US para inglês americano, en-GB para inglês britânico, en-AU para inglês australiano, etc.
  3. Procure o código do país se não tiver certeza. A subtag de região corresponde a um país, não a um idioma.

Exemplos

Incorreto — Subtag de região inválida

<link rel="alternate" href="https://example.com/en/" hreflang="en-EN">

A subtag de região EN não corresponde a nenhum país e irá desencadear um erro de validação.

Correto — Apenas idioma

Se o conteúdo está simplesmente em inglês sem uma variante regional específica, omita a região:

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

Correto — Idioma com subtags de região válidas

Quando precisa de diferenciar entre variantes regionais, use códigos de país adequados:

<link rel="alternate" href="https://example.com/en-us/" hreflang="en-US">
<link rel="alternate" href="https://example.com/en-gb/" hreflang="en-GB">
<link rel="alternate" href="https://example.com/en-au/" hreflang="en-AU">

Correto — Conjunto completo de ligações hreflang com x-default

Uma configuração multilíngue típica com tags de idioma adequadamente formadas:

<link rel="alternate" href="https://example.com/" hreflang="x-default">
<link rel="alternate" href="https://example.com/en/" hreflang="en">
<link rel="alternate" href="https://example.com/en-us/" hreflang="en-US">
<link rel="alternate" href="https://example.com/fr/" hreflang="fr">
<link rel="alternate" href="https://example.com/de/" hreflang="de">
<link rel="alternate" href="https://example.com/ja/" hreflang="ja">

Note o uso de x-default para indicar a página padrão ou de seleção de idioma — este é um valor especial reconhecido pelos motores de busca para propósitos de fallback.

Encontre problemas como este automaticamente

O Rocket Validator analisa milhares de páginas em segundos, detetando problemas HTML em todo o seu site.

Ajude-nos a melhorar os nossos guias

Este guia foi útil?

Pronto para validar os seus sites?
Comece o seu teste gratuito hoje.