// FERRAMENTA GRATUITA · GERADOR HREFLANG

gerador hreflang

Informe um padrão de URL e a lista de códigos de idioma: você recebe o conjunto completo de tags hreflang — todas as versões, x-default incluído — e o bloco xhtml:link equivalente para o sitemap. Grátis e dentro do seu navegador.

GrátisNa horaSem cadastroRoda no navegador

Também emEnglishDeutschEspañolFrançais日本語한국어Português (Brasil)繁體中文

hreflang · gerador

Onde você escreve {locale} entra o segmento de idioma. Ele é trocado pelo código em minúsculas (pt-br); um segmento vazio recolhe a URL para a raiz do site.

Códigos ISO 639-1, com -Script ou -REGIÃO quando fizer diferença (pt-BR, pt-PT, zh-Hant). Depois do código cabe um caminho (pt-BR /precos/ deixa o português na raiz), uma URL completa ou um segmento próprio (pt-PT pt).

A versão mostrada para quem busca num idioma que não está na sua lista. Normalmente a versão em inglês, a raiz ou um seletor de idioma.

Erros e avisos
    Bloco do head — cole em todas as versões
    
                
    Bloco do sitemap — um <url> por versão
    
              

    Como gerar as tags hreflang

    Um padrão, uma lista e dois botões de copiar. O gerador deriva todas as URLs do mesmo padrão, então o conjunto sai completo e recíproco por construção — não sobra nada para conferir na mão.

    1. Informe o padrão de URL. Pegue a URL de uma das versões e coloque {locale} onde fica o segmento de idioma: https://exemplo.com.br/{locale}/precos/. O código entra em minúsculas e um segmento vazio recolhe a URL para a raiz do site.
    2. Liste os códigos de idioma. Um por linha: pt-BR, pt-PT, en, es. Se alguma versão não segue o padrão — o português está na raiz, por exemplo — escreva o caminho depois do código: pt-BR /precos/. Se o idioma mora em outro domínio, escreva a URL completa na mesma linha.
    3. Escolha o x-default. Defina qual versão aparece para quem busca num idioma que não está na sua lista. Costuma ser a raiz, a versão em inglês ou um seletor de idioma. Dá para omitir, mas o gerador avisa: um conjunto sem x-default entrega essa decisão ao buscador.
    4. Copie os dois blocos. Cole o bloco do head, sem mexer, no head de todas as versões: cada página precisa citar todas, inclusive ela mesma. Cole o bloco do sitemap dentro de um urlset que declare o namespace xhtml. Um canal já basta; se mantiver os dois, eles precisam dizer a mesma coisa.

    O que o hreflang faz e por que o conjunto precisa ser recíproco

    hreflang é um atributo do elemento link que informa aos buscadores para qual idioma e, quando faz diferença, para qual região cada versão de uma página foi escrita. Sem ele, quem procura em português pode cair na sua página em inglês enquanto a versão brasileira fica sem indexar, tratada como quase duplicata. Com ele, o Google troca pela versão certa e junta os sinais do grupo em vez de espalhá-los entre várias URLs.

    A regra em que quase todo site tropeça é a reciprocidade. Cada versão precisa citar todas as outras e ela mesma. Se a página A aponta para a B mas a B não devolve o link para a A, o Google considera a anotação não confiável e descarta — o par inteiro, não só um lado. Conjuntos mantidos na mão desalinham no instante em que você acrescenta um idioma, e é por isso que este gerador escreve o conjunto inteiro a partir de um único padrão e devolve um bloco para colar em todo lugar, em vez de um trecho por página para você ficar sincronizando.

    A mesma derivação monta o hreflang do próprio clize.ai: o sitemap e cada página de idioma saem de um único inventário de prefixos, então nenhuma página consegue declarar uma versão que o sitemap desconhece.

    pt-BR, pt-PT ou só pt: o português dividido em dois

    O português é a língua em que a escolha do código depende quase inteiramente de uma pergunta: você tem uma versão ou duas? pt sozinho vale para qualquer falante de português — Brasil, Portugal, Angola, Moçambique. pt-BR e pt-PT restringem a um país. A forma mais específica ganha: quem busca de Lisboa recebe pt-PT se essa versão existir e, se não existir, o Google recai em pt.

    Na prática isso vira uma regra simples. Se o site tem uma única página em português escrita no padrão brasileiro e você não pretende atender Portugal de forma diferente, declarar pt-BR é honesto, mas pt abre a porta para o leitor português sem custo nenhum. Se você tem mesmo duas versões, aí pt-BR e pt-PT são obrigatórios — e vale a pena conferir se o conteúdo justifica: preços em real ou em euro, Pix e boleto de um lado, Multibanco e MB WAY do outro, CPF e CNPJ contra NIF, frete e prazos, e o vocabulário que muda mais do que se imagina (celular e telemóvel, tela e ecrã, time e equipa, ônibus e autocarro).

    O erro mais comum por aqui é escrever br. BR é código de país, não de idioma, e todo valor de hreflang precisa começar por um idioma. Escrever br não invalida só aquela linha: derruba a reciprocidade daquele par. O certo é pt-BR — ou pt, se uma versão atende todo mundo. Pela mesma lógica pt-PT não pode virar pt mais pt, e uk significa ucraniano, não Reino Unido.

    Muitos sites brasileiros separam por domínio em vez de por pasta: exemplo.com.br para o português e exemplo.com para o inglês. O hreflang atravessa domínios sem problema — basta que os dois se citem. Neste gerador é só escrever a URL completa depois do código, uma linha para pt-BR https://exemplo.com.br/precos/ e outra para en https://exemplo.com/pricing/, e colar o mesmo bloco nos dois domínios. Colar em um só é o mesmo que não ter colado em nenhum.

    Um aviso honesto sobre a validação: o gerador confere a parte do idioma contra a ISO 639-1 e corrige maiúsculas e hífens, mas não verifica a região. pt-XX passa aqui sem reclamar e é o Google que vai ignorar depois. A lista de países é você quem revisa.

    Canonical e hreflang trabalhando juntos

    Cada versão precisa de uma canonical que aponte para ela mesma: na página brasileira, <link rel="canonical" href="https://exemplo.com.br/precos/">, ou seja, ela própria. A canonical é a única tag do head que muda de versão para versão, e por isso não faz parte do bloco compartilhado acima: escreva página por página e nunca aponte para outro idioma. Se a canonical da página brasileira indica a URL portuguesa, você está pedindo ao Google que indexe aquela no lugar — e a brasileira sai do grupo hreflang. Em sites divididos por domínio esse é o acidente mais frequente.

    As outras duas exigências são mecânicas: toda URL do conjunto precisa devolver 200 e ser indexável — sem redirecionamento, sem noindex — e as URLs precisam ser absolutas, com esquema e host. O gerador não emite outra coisa. O estado real você confere num rastreamento ou, de graça no seu próprio domínio, com clize seo check, que lista cada página com o status HTTP e a situação no índice do Google.

    Erros comuns de hreflang

    • br como código de idioma. BR é país. Escreva pt-BR ou apenas pt.
    • Faltam os links de volta. A cita B e B não cita A: o par é descartado. Cole o mesmo bloco completo em todas as versões.
    • Sem autorreferência. Cada página precisa se incluir no conjunto. O bloco gerado já faz isso.
    • Domínios separados que não se citam. O hreflang atravessa domínios; escreva a URL completa e cole o bloco dos dois lados.
    • Canonical apontando para outro idioma. Aquela página sai do conjunto. Canonical autorreferente em todas.
    • URLs relativas. O hreflang exige URLs absolutas com esquema e host. O gerador não produz outra coisa.
    • Versões redirecionadas ou com noindex. Toda URL do conjunto precisa ser um 200 vivo e indexável.
    • O head diz uma coisa e o sitemap diz outra. Fique com um canal só, ou gere os dois da mesma fonte — como aqui.

    As outras faces legíveis por máquina da mesma página seguem a mesma regra de fonte única: o gerador de FAQ schema escreve o JSON-LD e o HTML visível a partir de uma única lista, e se você publica um llms.txt para agentes, passe pelo validador de llms.txt (ambos em inglês): um link relativo lá é o mesmo tipo de erro que um hreflang relativo aqui.

    // Perguntas frequentes

    O que é hreflang?

    hreflang é um atributo do elemento link que informa aos buscadores para qual idioma e, quando faz diferença, para qual região cada versão de uma página foi escrita. O Google usa isso para mostrar a versão que combina com o idioma e a localização de quem busca, e para tratar as versões como um grupo em vez de duplicatas.

    Devo usar pt-BR ou apenas pt?

    Depende de quantas versões você tem. Com uma única página em português, pt atende Brasil e Portugal sem custo nenhum. Com duas versões de verdade, use pt-BR e pt-PT — e vale conferir se o conteúdo justifica: preços em real ou euro, Pix e boleto contra Multibanco e MB WAY, CPF contra NIF, e o vocabulário que muda.

    Posso usar br como código de idioma?

    Não. BR é código de país e todo valor de hreflang precisa começar por um idioma. O certo é pt-BR, ou apenas pt quando uma versão atende todo mundo. Escrever br derruba a reciprocidade do par inteiro, não só daquela linha.

    Meu site em português e o em inglês estão em domínios diferentes. Dá para conectar?

    Dá. O hreflang atravessa domínios sem problema, desde que os dois se citem. Neste gerador basta escrever a URL completa depois do código, uma linha para cada domínio, e colar o mesmo bloco gerado nos dois lados. Colar só em um é o mesmo que não ter colado em nenhum.

    O que é x-default?

    x-default indica qual versão aparece quando nenhum dos idiomas da lista combina com quem está buscando — um seletor de idioma, a raiz ou a versão em inglês. Não é obrigatório, mas é recomendado: sem ele, quem decide é o buscador.

    O hreflang vai no head ou no sitemap?

    Cada canal basta sozinho: elementos link no head, um cabeçalho HTTP Link para arquivos que não são HTML, ou entradas xhtml:link no sitemap.xml. Com muitas versões, o sitemap mantém o head leve. Se usar os dois, eles precisam concordar, então gere ambos da mesma fonte.

    hreflang e canonical se contradizem?

    Não, desde que cada versão tenha uma canonical apontando para ela mesma. Uma canonical que aponta para outra versão de idioma pede ao buscador que indexe aquela, e então a página sai do grupo hreflang.

    clize seo check — grátis no seu próprio domínio

    Tags no lugar? Veja o que o Google está enxergando de verdade.

    Checar o próprio site não custa nada: cada página com o status HTTP e a situação no índice do Google, as posições e impressões do Search Console comparadas ao período anterior, e o tráfego por origem com os motores de IA contados à parte. Um comando de dentro do seu agente.

    $ npm i -g @clize/clize && clize install
    $ clize seo check --domain seudominio.com.br
    [ Agent SEO by Clize → ]