Hreflang

O que é hreflang, as três formas de implementá-lo, as regras recíprocas e autorreferenciais, códigos válidos de idioma/região e como auditar clusters em escala.

Publicado pela primeira vez: 25 de jun. de 2026 · Última atualização: 3 de ago. de 2026 · Avançado
1 sinal de evidência nesta página

Hreflang informa aos mecanismos de busca qual versão de idioma/região de uma página mostrar para qual usuário. Você o declara de uma de três maneiras — tags no head do HTML, cabeçalhos HTTP ou sitemap XML — usando códigos de idioma ISO 639-1 + códigos de região ISO 3166-1 alpha-2. Ele só funciona como um cluster recíproco: cada página deve linkar para si mesma e para todas as suas alternativas, e se algum link de retorno estiver faltando, o Google ignora o par. É uma dica, não uma diretriz — hreflang incorreto é ignorado, não penalizado. Também é frágil: no meu estudo de 374 756 domínios que usam hreflang, mais de 67% tinham pelo menos um problema. O Bing quase não o usa (content-language é o sinal mais forte lá). Este hub explica tudo e aponta para os mergulhos profundos.

«> TL;DR — Hreflang is a reciprocal cluster signal: every page lists itself and

all alternates, and a missing return tag voids the pair. Declare it one way only — HTML head, HTTP Link headers (PDFs), or XML sitemap (best at scale). Codes are ISO 639-1 language + ISO 3166-1 alpha-2 region; en-UK is wrong, it’s en-GB. It’s a hint, not a directive (Mueller) — wrong hreflang is ignored, not penalized, and Google can override it for same-language consolidation or indexing reasons. It breaks constantly: in my Ahrefs study of 374,756 domains, over 67% had at least one issue. Bing treats it as a far weaker signal than content-language. Audit clusters visually rather than in spreadsheets. » (Tradução) (Síntese localizada do trecho quarenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Hreflang is a cluster, not a tag » (Tradução) (Síntese localizada do trecho quarenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

O hreflang fica entre um conteúdo e a versão correta que aparece para a pesquisa de cada mercado. Fonte: /international-seo/hreflang/

© Patrick Stox LLC · CC BY 4.0 ·

Um cluster hreflang é um grafo bidirecional — um link de retorno ausente quebra apenas esse par. Fonte: /international-seo/hreflang/

© Patrick Stox LLC · CC BY 4.0 ·

«The mental model that fixes most hreflang confusion: it isn’t a per-page tag, it’s a bidirectional graph. Google’s own requirement is blunt — “Each language version must list itself as well as all other language versions,” and “if two pages don’t both point to each other, the tags will be ignored.” So if page X points to Y but Y doesn’t point back to X, that edge is silently dropped. One missing return tag can cause the affected annotations to be ignored or interpreted incorrectly — but Google says it can still process the pairs that are correctly reciprocal, so one broken relationship doesn’t necessarily take down every annotation in a larger cluster.

Evidência desta afirmação Each hreflang set should include the page itself, use fully qualified URLs, and include return links; without reciprocity, the affected annotations may be ignored or misinterpreted. Escopo: Google Search hreflang guidelines; the documentation does not say one missing return link invalidates every annotation in a cluster. Confiança: alta · Verificado: Google: Localized versions guidelines

» (Tradução) (Síntese localizada do trecho quarenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Two non-negotiables flow from that: » (Tradução) (Síntese localizada do trecho quarenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- Reciprocity. Every reference must be returned. This is where implementations break at scale — the moment one template, one CMS field, or one region’s pages fall out of sync, return links go missing.

  • Self-reference. Each page lists itself. Mueller calls it “optional—but good practice”; in practice, a self-referential set is the cleanest way to keep clusters consistent and is flagged as an issue when missing. » (Tradução) (Síntese localizada do trecho cinquenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Absolute, fully-qualified URLs are required too — https://example.com/foo, never //example.com/foo or /foo. » (Tradução) (Síntese localizada do trecho cinquenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Three methods — and the trade-offs » (Tradução) (Síntese localizada do trecho cinquenta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Google treats HTML tags, HTTP headers, and XML sitemaps as equivalent — there’s no Search benefit to implementing more than one. Pick one method per site based on what your stack can maintain reliably; mixing them invites conflicts. » (Tradução) (Síntese localizada do trecho cinquenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- HTML <head> tags. Simplest, most visible. Downside: on a site with dozens of locales, every page carries a large block of <link> tags, adding markup weight, and any page in the <body> (from malformed HTML or JS injection) is invalid — hreflang only counts in the <head> of the page as Google renders/parses it.

  • HTTP Link headers. The only option for non-HTML resources like PDFs. Sent in the response, so they don’t bloat the document.
  • XML sitemaps. The right call at scale. The annotations live centrally (xhtml:link children under each <url>, with the xmlns:xhtml="http://www.w3.org/1999/xhtml" namespace), so you can regenerate the whole cluster from a database without redeploying pages. There’s no “faster” method — both HTML and sitemaps are resolved at crawl time — but sitemaps are far easier to QA because you can validate the entire graph in one file instead of crawling every page.
Evidência desta afirmação Google accepts hreflang in HTML, HTTP headers, or XML sitemaps and says the methods are equivalent from its perspective. Escopo: Google Search hreflang implementation methods. Confiança: alta · Verificado: Google: Localized versions

» (Tradução) (Síntese localizada do trecho cinquenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Reciprocal linking at scale — where it breaks » (Tradução) (Síntese localizada do trecho cinquenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«In a 5-locale site, that’s a 5×5 matrix of references per page set, regenerated every time you add or remove a locale, fix a slug, or migrate a URL. The failure modes are predictable: » (Tradução) (Síntese localizada do trecho cinquenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- Inconsistent URL formats. Trailing-slash vs. not, http vs. https, www vs. apex, or uppercase vs. lowercase paths — any mismatch between the URL in the hreflang and the URL Google actually indexes breaks the return-link match.

  • Pointing at redirected or broken URLs. A locale URL changes, the redirect goes in, but the hreflang still points at the old URL. The cluster now references a 301 or a 404.
  • Code drift. jp instead of ja for Japanese, three-letter codes where two-letter is required, en-UK instead of en-GB. Invalid codes are ignored. » (Tradução) (Síntese localizada do trecho cinquenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«### Worked deployment example: the return tag points to yesterday’s URL » (Tradução) (Síntese localizada do trecho cinquenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Suppose the UK product page moved from /gb/shoes/ to /uk/shoes/. The US page was not regenerated, so it still publishes: » (Tradução) (Síntese localizada do trecho cinquenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

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

«The old UK URL redirects to /uk/shoes/, while the new UK page links back to the US page from its final canonical URL. That leaves two distinct problems: the US annotation targets a redirect, and the final UK URL is not the same URL the US page declared. Fix the generator so both pages publish the complete set using final, indexable URLs: » (Tradução) (Síntese localizada do trecho sessenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

<link rel="alternate" hreflang="en-US" href="https://shop.example/us/shoes/" />
<link rel="alternate" hreflang="en-GB" href="https://shop.example/uk/shoes/" />

«Validate both directions after deployment; checking only the US source tag would miss the return-tag failure. This is an illustrative .example cluster. » (Tradução) (Síntese localizada do trecho sessenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«The lesson from my conference talks holds: automate hreflang generation from a single source of truth. Hand-maintained hreflang at scale is a guarantee of return-tag rot. » (Tradução) (Síntese localizada do trecho sessenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Canonicalization conflicts » (Tradução) (Síntese localizada do trecho sessenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Hreflang depends on what’s indexed, not on what’s canonicalized — but the two interact, and getting it wrong breaks clusters: » (Tradução) (Síntese localizada do trecho sessenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- Self-referencing canonicals are the safe default. Each language version should canonicalize to itself. If your Spanish page canonicalizes to the English page, you’re telling Google the Spanish URL isn’t the one to index — and hreflang pointing at a non-canonical URL is one of the more common errors.

  • The same-language, multi-country edge case. When you have, say, en-us and en-gb pages that are near-identical, Google may consolidate them and index one — but it can still swap the displayed URL in the SERP to the correct country version via the hreflang links. So a “canonicalized-away” URL can still surface for the right user. That’s a feature, not a bug, but it surprises people auditing index coverage.
  • noindex and robots.txt. A page blocked from indexing can’t participate in a cluster — its hreflang can’t be acted on, and pointing to a noindexed/blocked URL breaks the return link. Don’t block or noindex language variants you want served. » (Tradução) (Síntese localizada do trecho sessenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## It’s a hint, not a directive » (Tradução) (Síntese localizada do trecho sessenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«This is the framing to internalize. In May 2025 on Bluesky, John Mueller responded to a case of fr-be pages showing up in fr results despite correct hreflang: “hreflang doesn’t guarantee indexing, so it can also just be that not all variations are indexed,” and “I suspect this is a ‘same language’ case where our systems just try to simplify things for sites.” Google reserves the right to override hreflang for same-language consolidation, indexing gaps, or its own canonical choices. » (Tradução) (Síntese localizada do trecho sessenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Google’s canonicalization guidance is the flip side of that: it recommends choosing a canonical in the same language as the page (or the best available substitute), and it says it prefers URLs that are part of a complete reciprocal hreflang cluster over otherwise-similar URLs sitting outside it. That’s a preference, not a promise — being in a correctly-built cluster improves your odds of the right URL getting selected, but it doesn’t guarantee indexing or which URL shows. » (Tradução) (Síntese localizada do trecho setenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«The practical consequence: wrong hreflang is ignored, not penalized. If your cluster is broken, Google falls back to its own language/region detection. The cost is opportunity (the wrong URL shows for some users), not a ranking hit. So “my hreflang is wrong” is rarely an emergency — but it’s also rarely doing anything useful. » (Tradução) (Síntese localizada do trecho setenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Bing and the other engines use a different stack » (Tradução) (Síntese localizada do trecho setenta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Hreflang is a Google (and Yandex) signal. Bing’s signal stack is completely different. Fabrice Canel, Principal Program Manager on Microsoft Bing, has said plainly that “hreflang is indeed a far weaker signal than content-language at Bing.” Bing leans on the content-language HTTP header / meta tag, the <html lang=""> attribute, inbound links, visitor geography, and server/ccTLD location, and Canel has advised against “duplicating URLs just to have them tagged with these language-markets” in most cases. Baidu doesn’t support hreflang at all (it keys off hosting location, Chinese domain registration, ICP licensing, and content-language). So a robust international setup pairs hreflang for Google with a correct content-language / html lang for everyone else. » (Tradução) (Síntese localizada do trecho setenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## The error rate is the story » (Tradução) (Síntese localizada do trecho setenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

Mais de 67% dos domínios que usam hreflang têm pelo menos um problema — a ausência de x-default é o principal vilão. Fonte: Data: Ahrefs

«When I ran the largest hreflang study to date at Ahrefs — 374,756 domains, nearly 10× larger than any prior study — over 67% of domains using hreflang had at least one issue. The distribution: » (Tradução) (Síntese localizada do trecho setenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«| Issue | % of domains | | --- | --- | | Missing x-default | 56.3% | | Missing self-referencing tags | 18.0% | | Referencing broken/redirected pages | 16.9% | | Missing reciprocal tags | 15.3% | | Pointing to non-canonical URLs | 8.0% | | Incorrect language/country codes | 4.6% | | Inconsistent language attributes | 3.2% | | Multiple pages for same language | 2.5% | | Same page for multiple languages | 2.5% | » (Tradução) (Síntese localizada do trecho setenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«My study’s summary still stands: hreflang is complex and hard to get right, and it can break in a lot of different ways. » (Tradução) (Síntese localizada do trecho setenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Auditing at scale — visualize the cluster, don’t read a spreadsheet » (Tradução) (Síntese localizada do trecho setenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«See your own cluster with returntag: » (Tradução) (Síntese localizada do trecho oitenta, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«1. Paste one page URL, a sitemap URL, or a list of page URLs into the tool. 2. Click Validate cluster. 3. Read the GRAPH view — broken or missing return links stand out by severity color — or switch to MATRIX for a row-by-row view, and export a fix-list CSV if you need to hand it to someone else. » (Tradução) (Síntese localizada do trecho oitenta e um, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«The reason hreflang errors hide is that a return-tag problem is a relationship between pages, and relationships are nearly impossible to read across rows of a spreadsheet. Ahrefs Site Audit was the first tool to render the hreflang cluster as a graph — open any page’s URL details and the Hreflangs tab draws the whole cluster as a network, with the broken pages and missing/incorrect links highlighted in red. You can see at a glance which return tag is missing or which link was added by mistake — and it’s far easier to show a stakeholder than a CSV. Site Audit also runs the underlying checks (invalid annotation, missing self-reference, more than one page per language, hreflang/html lang mismatch, missing reciprocal tag, non-canonical target, broken target) that map directly to the study’s error list. » (Tradução) (Síntese localizada do trecho oitenta e dois, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Beyond that: » (Tradução) (Síntese localizada do trecho oitenta e três, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- GSC URL Inspection confirms how a single URL was crawled and indexed. Note the old International Targeting report was deprecated on September 22, 2022 — Google said it “had little value for the ecosystem.” Hreflang tags themselves still work; only the report is gone.

  • Manual SERP testing with the &hl= (host language) and &gl= (geolocation) parameters on a Google search URL lets you preview what a given locale’s results look like. » (Tradução) (Síntese localizada do trecho oitenta e quatro, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Hreflang is also a technical-SEO audit concern » (Tradução) (Síntese localizada do trecho oitenta e cinco, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«Although hreflang’s home is international SEO, it shows up in nearly every technical SEO audit of a multi-language or multi-region site — it sits right alongside canonicalization, indexing, and crawl-accessibility checks, and it’s one of the items most likely to be silently broken. If you’re running a technical audit and the site has more than one locale, the hreflang cluster belongs on the checklist. » (Tradução) (Síntese localizada do trecho oitenta e seis, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«## Where to go next » (Tradução) (Síntese localizada do trecho oitenta e sete, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«This hub is the map for the hreflang sub-cluster. The first deep dive: » (Tradução) (Síntese localizada do trecho oitenta e oito, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«- x-default — the fallback value for users whose locale matches none of your explicit tags (a country selector or a global homepage). It’s not required, but it was the single most common omission in my study (56.3% of sites). The dedicated subtopic covers when to use it, when to skip it, and how it interacts with the rest of the cluster. » (Tradução) (Síntese localizada do trecho oitenta e nove, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

«For the broader strategy this implements, see the International SEO pillar — hreflang is the technical layer of an international strategy; it doesn’t replace genuine localization (local intent, local content, local authority). » (Tradução) (Síntese localizada do trecho noventa, parte um: o texto-fonte foi preservado para conferência na revisão nativa.)

Adicionar uma nota de especialista

Fixar uma citação de especialista

É uma pessoa nova? Crie o perfil não reivindicado dela em /admin/experts/ → Fixar uma citação de especialista primeiro.