technical
Usa hreflang para SEO internacional
O MetricSpot conta as etiquetas <link rel=alternate hreflang>. Dizem ao Google qual URL serve cada idioma ou região, para que o correto apareça em cada mercado.
O que esta verificação faz
Analisa cada etiqueta <link rel="alternate" hreflang="…" href="…"> no <head> da página (e no sitemap XML, se existir). A verificação falha quando:
- A página tem irmãs localizadas (outros URLs a servir o mesmo conteúdo num idioma diferente) mas sem declarações hreflang.
- Os valores hreflang não são etiquetas BCP 47 válidas (
en,en-US,es,de-AT,zh-Hant-TW). - A rede hreflang está partida: A aponta para B, B não aponta de volta para A.
- Falta o
x-default(recomendado como fallback internacional).
Porque é importante
O Google decide qual URL mostrar para uma pesquisa cruzando o idioma e a região do utilizador com a rede hreflang. Sem ela, três coisas correm mal:
- Rankeia o URL errado. Um utilizador dos EUA a pesquisar em inglês vê a tua página em espanhol (ou vice-versa) porque o Google escolheu o URL com mais autoridade, não o que corresponde à localidade do utilizador.
- Penalizações por conteúdo duplicado. Dois URLs com conteúdo quase idêntico (mesmo produto, cópia traduzida) competem entre si. O Google deixa cair um para evitar duplicados — por vezes o errado.
- Quebras de CTR. Mesmo quando o utilizador aterra na página certa, um snippet em inglês para um utilizador espanhol reduz o click-through. O hreflang permite ao Google mostrar o snippet localizado.
Hreflang são metadados sem opinião — não influencia o ranking, apenas encaminha o URL certo para o utilizador certo.
Como corrigir
Cada página numa rede multilingue precisa de:
- Listar todas as outras variantes dela própria, incluindo si mesma.
- Ser listada por todas as outras variantes.
- Incluir
x-defaultpara o idioma/região catch-all.
Exemplo: inglês (US por defeito), espanhol, alemão, x-default. Na página em inglês:
<link rel="alternate" hreflang="en" href="https://example.com/" />
<link rel="alternate" hreflang="es" href="https://example.com/es/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/" />
As mesmas quatro etiquetas têm de aparecer na página em espanhol, na página em alemão e em qualquer outra variante. Todas as quatro páginas declaram a rede inteira, incluindo a si próprias.
Astro:
---
const locales = ["en", "es", "de"] as const;
const path = Astro.url.pathname.replace(/^\/(es|de)\//, "/");
---
{locales.map(loc => (
<link rel="alternate" hreflang={loc}
href={`${Astro.site}${loc === "en" ? "" : loc + "/"}${path.slice(1)}`} />
))}
<link rel="alternate" hreflang="x-default" href={`${Astro.site}${path.slice(1)}`} />
Next.js:
// app/[locale]/page.tsx
export async function generateMetadata({ params }: { params: { locale: string }}) {
const path = "/"; // ou o caminho da tua rota
return {
alternates: {
canonical: `https://example.com${path}`,
languages: {
en: `https://example.com${path}`,
es: `https://example.com/es${path}`,
de: `https://example.com/de${path}`,
"x-default": `https://example.com${path}`,
},
},
};
}
WordPress — Polylang e WPML imprimem hreflang automaticamente assim que ligas cada tradução. WordPress Multisite precisa do plugin HREFLang Tags Lite ou equivalente.
Hreflang via sitemap — para sites com milhares de URLs localizados, declarar hreflang no sitemap é mais limpo do que em cada HTML:
<url>
<loc>https://example.com/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/"/>
<xhtml:link rel="alternate" hreflang="es" href="https://example.com/es/"/>
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/"/>
</url>
Testa. Google Search Console → Insights → International Targeting sinaliza ligações de retorno em falta e etiquetas inválidas. Corre o hreflang.org ou o validador hreflang da Merkle para uma verificação pontual.
Perguntas frequentes
en vs en-US vs en-GB?
Usa a etiqueta mais ampla que se ajuste. en cobre todos os falantes de inglês; en-US aponta especificamente para inglês dos EUA. Se serves conteúdo idêntico a utilizadores do Reino Unido e dos EUA, declara en uma única vez — não en-US e en-GB separadamente, o que dilui o sinal e aumenta a manutenção.
Preciso de hreflang se o meu site é monolingue?
Não. Hreflang só é útil quando tens URLs em idiomas alternativos. Um site monolingue precisa de <html lang="…"> (ver Declarar o idioma da página) mas não de hreflang.
Para que serve o x-default?
É o catch-all. Quando o idioma do utilizador não corresponde a nenhum hreflang declarado, o Google encaminha-o para o URL x-default. Tipicamente é a homepage em inglês ou uma página de seleção de idioma.
Fontes
Última atualização 2026-05-11