8 min de leituraTutoriais

Como Redirecionar uma URL: Seis Formas, e Quando Usar Cada Uma

Um redirecionamento é uma resposta HTTP, então a pergunta real é qual camada responde a solicitação. Registrador, servidor, CMS, plataforma, lado do cliente, ou um link curto gerenciado.

Marius Voß
DevRel · edge infra
Como redirecionar uma URL mostrado como uma solicitação chegando a uma de seis camadas, cada uma retornando um 301 com um cabeçalho Location

Um redirecionamento é uma resposta HTTP: um status 301 ou 302 com um cabeçalho Location dizendo ao navegador para onde ir em vez disso. Isso é tudo o que ele é no fio, o que significa que a pergunta não é realmente como redirecionar uma URL, mas sim qual camada na frente do seu site deveria ser a responsável por responder.

Seis camadas podem fazer esse trabalho, e elas não são intercambiáveis. Elas diferem em quem serve a resposta, se o caminho e a query string sobrevivem à viagem, com que rapidez você consegue mudar de ideia, e quanto da configuração você controla. Este guia percorre as seis, a tabela que escolhe entre elas, e as duas verificações que separam um redirecionamento que funciona de um que silenciosamente engole os parâmetros da sua campanha. Para os próprios códigos de status, tipos de redirecionamento de URL é a referência por trás deste artigo.

Onde um Redirecionamento Realmente Vive

Comece pelo mito, porque ele desperdiça mais tardes do que qualquer outro: o DNS não consegue redirecionar uma URL. Um registro de DNS mapeia um hostname para um endereço. Ele nunca vê o caminho, nunca vê a query string, e não tem nenhum mecanismo para dizer "vá para outro lugar em vez disso". Um registro A ou CNAME aponta; ele não encaminha.

Então quando o seu registrador oferece "encaminhamento de URL", o que ele realmente faz é apontar o hostname para um pequeno servidor web que eles mantêm, que retorna o redirecionamento HTTP em seu nome. Útil, e perfeitamente legítimo, mas é um servidor web fazendo o trabalho, não o DNS. Assim que você enxerga dessa forma, os seis métodos abaixo param de parecer alternativas e passam a parecer uma única pergunta: qual máquina no caminho da solicitação você quer que responda?

Uma solicitação sendo resolvida através do DNS até um servidor, com o redirecionamento emitido como uma resposta HTTP 301 e o DNS marcado como incapaz de redirecionar

Seis Lugares Onde Você Pode Colocar um Redirecionamento

Cada uma delas termina com a mesma resposta no fio. O que difere é o custo de configuração, quem controla isso, e o que acontece com tudo que vem depois do nome de domínio.

encaminhamento de domínio no registrador

A opção mais rápida, e a mais direta. No painel de controle do seu registrador você aponta o domínio para um destino e escolhe permanente ou temporário. Boa para um domínio que você comprou defensivamente, um rebranding em que o nome antigo deveria simplesmente entregar o bastão, ou um domínio de campanha de curta duração.

A pegadinha é o que isso faz com o resto da URL: a maioria dos encaminhamentos de registrador achata cada solicitação para o único destino que você configurou, então um link profundo chega na página inicial. Alguns oferecem um modo que preserva o caminho; verifique antes de contar com isso.

uma regra no seu servidor web

Se você roda nginx ou Apache, o redirecionamento pertence aqui, porque você tem controle exato sobre correspondência e preservação. A documentação do Apache sobre remapeamento de URLs com regras de rewrite cobre os padrões, e a referência do módulo rewrite do nginx cobre return 301 e rewrite ... permanent, que é o caminho rápido para uma mudança simples.

Regras de servidor são a ferramenta certa para imposição de host canônico e HTTPS, reescritas de caminho depois de uma reestruturação, e qualquer coisa condicional. Elas também são onde as regras de redirecionamento silenciosamente se acumulam ao longo dos anos, então trate o arquivo como algo para podar em vez de apenas acrescentar.

uma regra na sua plataforma de hospedagem

A maioria das hospedagens modernas fica na frente da origem e oferece a sua própria camada de redirecionamento: um arquivo _redirects, um bloco de configuração, uma interface de regras no painel. Elas são avaliadas antes da sua aplicação rodar, o que as torna rápidas e seguras, e costumam ser o melhor lugar para redirecionamentos em massa depois de uma migração de site porque vivem no controle de versão junto com o resto do projeto.

um plugin ou configuração no seu CMS

Todo CMS sério tem um gerenciador de redirecionamentos, e para uma equipe de conteúdo é a resposta certa: sem deploy, sem acesso ao servidor, uma trilha de auditoria, e uma pessoa que entende do conteúdo tomando a decisão de mapeamento. A contrapartida é que a solicitação precisa chegar até a aplicação antes que o redirecionamento seja emitido, então é mais lento do que as camadas acima e para de funcionar se a aplicação estiver fora do ar.

meta refresh ou JavaScript na página

Um último recurso para quando você não consegue tocar em nada do lado do servidor. A página carrega, depois manda o visitante adiante com uma tag <meta http-equiv="refresh"> ou um script. Funciona, mas custa um carregamento de página completo, depende do cliente executá-lo, e os motores de busca tratam isso como um sinal mais fraco do que uma resposta do servidor. Use quando a alternativa for nada.

Quando a coisa sendo redirecionada é um link que você publicou em vez de uma página que você possui, o redirecionamento pertence a um gerenciador de links. O destino é um valor armazenado que você pode mudar sem tocar em DNS, servidores, ou um pipeline de deploy, cada salto é registrado, e o link continua funcionando depois de ter sido impresso ou compartilhado. Esse é todo o mecanismo por trás de o que é um encurtador de URL, e é por isso que um link de campanha impresso nunca deveria apontar direto para uma landing page.

Escolhendo Um em Trinta Segundos

A maior parte da decisão se resume a duas colunas: quem tem acesso, e o que precisa sobreviver.

MétodoQuem serveCaminho e query preservadosMelhor para
Encaminhamento do registradorServidor do registradorGeralmente não, verifique antesTransferência de domínio inteiro
Regra de servidor webSua origemSim, se escrita dessa formaHost canônico, reestruturação
Regra de plataformaHost na frenteSimRedirecionamentos de migração em massa
Plugin de CMSSua aplicaçãoSimEquipe de conteúdo, sem deploys
Meta refresh ou JSO navegadorSim, mas lentamenteNenhum acesso ao servidor
Link curto gerenciadoO serviço de linksSim, a partir da URL armazenadaLinks publicados e impressos

Preservando o Caminho e a Query String

Essa é a falha que sobrevive aos testes, porque todo mundo testa a raiz do domínio e a raiz sempre funciona.

Aponte oldsite.com para newsite.com com um encaminhamento de domínio simples e depois siga um link de entrada de verdade, oldsite.com/pricing?utm_source=newsletter. Com um redirecionamento que achata tudo, esse visitante cai na nova página inicial, o caminho desaparece, e os parâmetros de campanha desaparecem junto. Nada dá erro. O seu analytics simplesmente mostra tráfego direto para a página inicial, e a newsletter parece não ter feito nada.

Dois hábitos evitam isso. Teste com uma URL profunda que carrega uma query string, nunca com o domínio nu. E quando os dois sites têm estruturas diferentes, mapeie os caminhos importantes explicitamente em vez de mandar tudo para a raiz, o que também é o que mantém o valor de SEO das URLs antigas ligado à página nova mais parecida. A mesma disciplina se aplica quando você herda os links de outra pessoa, e é por isso que migrar links curtos sem quebrá-los é um exercício de mapeamento antes de ser um exercício técnico.

Se os links em questão forem links que você publicou, manter o destino editável vale mais do que tudo isso: coloque os seus links no seu próprio domínio e o mapeamento passa a ser um campo que você muda em vez de um arquivo de configuração que você faz deploy.

Verifique Antes de Anunciar

Um único comando resolve isso:

curl -sIL "https://oldsite.com/pricing?utm_source=newsletter" | grep -E '^HTTP|^[Ll]ocation'

Leia três coisas na saída. O código de status deveria ser o que você pretendia, 301 para permanente e 302 enquanto as coisas ainda estão em movimento, e 301 vs 302 cobre por que essa escolha importa mais do que parece. O cabeçalho Location deveria carregar o caminho completo e a query string, não um domínio nu. E deveria haver exatamente um redirecionamento: uma cadeia de três ou quatro ainda resolve, mas cada salto é latência e mais uma chance de perder parâmetros, e um hostname repetido significa que você construiu um loop de redirecionamento em vez de um redirecionamento.

Se você preferir não abrir um terminal, o nosso verificador de links rastreia a cadeia e mostra o status em cada salto.

Uma URL profunda com parâmetros UTM achatados para uma página inicial por encaminhamento de domínio, ao lado de um redirecionamento que preserva o caminho e a query string

O Que os Motores de Busca Fazem Com Isso

Um redirecionamento feito corretamente não é um risco de SEO, e a orientação é incomumente clara sobre isso. A documentação do Google sobre redirecionamentos e a Busca trata um redirecionamento permanente do lado do servidor como o sinal mais forte para consolidar uma URL no seu substituto, classifica os redirecionamentos do lado do cliente abaixo dele, e pede para você manter as cadeias curtas.

Os dois erros que realmente custam caro são colapsar várias URLs antigas na página inicial, o que joga fora a relevância específica que cada uma delas tinha, e deixar uma cadeia de saltos históricos no lugar depois de várias migrações. Nenhum dos dois é motivo para evitar redirecionamentos; os dois são motivos para auditá-los. Essa auditoria é o mesmo hábito semanal de prevenção de link rot, e se o redirecionamento estiver em um domínio curto personalizado, domínios personalizados para links curtos cobre a metade de DNS e certificado da configuração.

Escolha a camada que combina com quem é dono da mudança, preserve o caminho, mantenha em um único salto, e um redirecionamento para de ser algo com que você se preocupa.

Leia a Série Principal

Este artigo está no cluster de tutoriais. Para os códigos de status e a sua semântica, tipos de redirecionamento de URL é o mapa, e como os encurtadores de URL funcionam cobre o que acontece quando o redirecionamento é um link em vez de uma página.

Relacionado no Blog

Perguntas frequentes

Como eu redireciono uma URL para outra URL?

Faça o que quer que sirva a solicitação retornar um 301 ou 302 com um cabeçalho Location apontando para o novo endereço. Na prática isso significa escolher uma camada: encaminhamento de domínio no seu registrador, uma regra no seu servidor web ou plataforma de hospedagem, um plugin no seu CMS, ou um link curto gerenciado. O método muda quem serve a resposta e se o caminho e a query string sobrevivem, não o que o navegador recebe.

Eu posso redirecionar uma URL com DNS?

Não, e esse é o mal-entendido mais comum de todo o assunto. O DNS resolve um hostname para um endereço; ele não tem ideia de qual caminho foi solicitado e não consegue retornar um redirecionamento. Quando um registrador oferece encaminhamento de URL, ele está apontando o hostname para um pequeno servidor web deles que emite o redirecionamento HTTP por você.

Um redirecionamento mantém o caminho e a query string?

Depende inteiramente de qual método você escolheu. O encaminhamento de domínio do registrador costuma achatar tudo para um único destino, então /pricing?utm_source=email cai na página inicial com os parâmetros perdidos. Uma regra de servidor ou de plataforma pode preservar os dois se você escrever dessa forma, e um link curto gerenciado encaminha o destino armazenado incluindo a sua query string. Teste com uma URL profunda, não apenas com a raiz do domínio.

Eu devo usar um redirecionamento 301 ou 302?

Use um 301 quando a mudança for permanente e você quiser que os motores de busca consolidem os sinais na nova URL, e um 302 enquanto qualquer coisa ainda estiver em fluxo. A armadilha prática é que os navegadores fazem cache agressivo de um 301, então um redirecionamento permanente do qual você se arrependa depois continua disparando para visitantes recorrentes muito depois de você mudar o servidor. Teste com um 302, promova para 301 assim que o destino estiver definido.

Como eu verifico se o meu redirecionamento funciona?

Execute curl -sIL contra a URL e leia as linhas de status e os cabeçalhos Location. Você quer um redirecionamento, o código de status certo, e o destino que você esperava, com o caminho e a query intactos. Uma cadeia de vários saltos ainda funciona mas desperdiça latência, e um hostname repetido significa que você construiu um loop em vez de um redirecionamento.

Redirecionamentos prejudicam o SEO?

Um redirecionamento implementado corretamente não prejudica. O Google trata um 301 como um sinal forte para consolidar o ranking no destino, e cadeias longas, não os redirecionamentos em si, são o que causa problemas. Mantenha em um único salto, aponte URLs antigas para a página nova mais próxima em vez de jogar tudo na página inicial, e evite redirecionamentos do lado do cliente quando um redirecionamento do lado do servidor for possível.

Experimente Elido

Cole uma URL, obtenha um link curto

Sem cadastro. O link vive 30 dias. Cadastre-se para mantê-lo para sempre.

Grátis, sem necessidade de registo · 2 por dia

Experimente o Elido

Encurtador de URL hospedado na UE: domínios personalizados, análises profundas e API aberta. Plano gratuito - sem cartão de crédito.

Tags
how to redirect a url
domain forwarding
url forwarding
301 redirect
redirect a domain
path preserving redirect

Continuar lendo