# Como corrigir redirecionamentos em cadeia (redirect chains) no WordPress

Redirect chains no WordPress acontecem quando uma URL redireciona para outra que redireciona de novo, somando vários saltos até o destino final. Isso atrasa o site, gasta orçamento de rastreamento e dilui a autoridade dos links; a correção é apontar cada origem direto ao destino em um único 301.

## O que é os redirecionamentos em cadeia no WordPress?

Um redirect chain é uma sequência de dois ou mais redirecionamentos encadeados: a URL A leva à B, que leva à C, em vez de A apontar direto para C. No WordPress, isso surge quando regras de HTTP para HTTPS, de www, de barra final e de migrações se acumulam sem ninguém achatar. Cada salto adiciona uma requisição extra, atrasa a página, consome orçamento de rastreamento e enfraquece a transferência de autoridade entre os links.

## Como identificar

- Uma auditoria com Screaming Frog ou Ahrefs lista a URL com "Redirect Chain" e mostra dois ou mais saltos até o destino.
- A aba Network do navegador (F12) mostra vários status 301 em sequência ao abrir uma única URL.
- O comando curl -I na URL retorna mais de um cabeçalho "Location:" antes da resposta 200 final.
- Páginas demoram visivelmente mais para abrir em links antigos, e o Search Console aponta perda de equity em URLs redirecionadas.

**Antes de começar:** Antes de editar o .htaccess, faça backup do arquivo. Uma condição de redirecionamento mal escrita pode criar um loop infinito (ERR_TOO_MANY_REDIRECTS) e derrubar o site inteiro.

## Como prevenir

- Combine protocolo, domínio e barra final em uma única regra de redirecionamento, nunca em regras separadas
- Redirecione pelo .htaccess ou pelo plugin para cada URL, evitando regras duplicadas que se sobrepõem
- Após cada migração, audite as cadeias com Screaming Frog e aponte cada origem direto ao destino final

Erros relacionados

- [Como corrigir URLs canonicas duplicadas no WordPress](https://full.services/wp-fixer/corrigir-canonical-duplicado-wordpress/)
- [Como corrigir páginas com noindex acidental no WordPress](https://full.services/wp-fixer/corrigir-noindex-acidental-wordpress/)
- [Como corrigir sitemap XML com erro no WordPress](https://full.services/wp-fixer/corrigir-sitemap-xml-erro-wordpress/)

## Causa

- Uma regra de HTTP para HTTPS e outra de não www para www estão separadas, então a URL salta de http sem www para https sem www e só então para https com www.
- Migrações sucessivas deixaram redirecionamentos antigos apontando para URLs que, por sua vez, já foram redirecionadas de novo.
- Um plugin de redirecionamento (Redirection, Rank Math) tem regras encadeadas que apontam uma para a outra em vez de para o destino final.
- A regra de barra final (adicionar ou remover a barra) cria um salto extra somado ao redirecionamento de protocolo ou de domínio.
- Redirecionamentos no .htaccess e no plugin coexistem e se sobrepõem, gerando um salto duplicado para a mesma URL.

## Como resolver

1. Mapeie as cadeias: rode uma varredura com Screaming Frog e filtre por Redirect Chains, ou teste URLs individuais com curl para ver cada salto. Liste origem e destino final de cada cadeia.

```
curl -sIL https://seudominio.com/url-antiga | grep -i location
```

2. Unifique protocolo e domínio numa regra: no .htaccess, force HTTPS e o formato de domínio escolhido (com ou sem www) em uma única condição combinada, para a URL ir direto ao formato final sem saltos intermediários.
3. Aponte cada origem para o destino final: no plugin de redirecionamento, edite cada regra encadeada para apontar a URL de origem diretamente para o destino final, eliminando o passo do meio.
4. Remova regras duplicadas: decida entre redirecionar pelo .htaccess ou pelo plugin, nunca pelos dois para a mesma URL. Apague a regra duplicada que cria o salto extra.
5. Revalide e atualize links internos: rode a varredura de novo para confirmar um único 301 por URL e troque os links internos que ainda apontam para a URL antiga pelo destino final.

## Código

```apache
# .htaccess — força HTTPS + www em UM unico salto, evitando cadeia de redirecionamentos
# Coloque ANTES do bloco # BEGIN WordPress
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^seudominio.com [NC]
RewriteRule ^(.*)$ https://www.seudominio.com/$1 [R=301,L]
```

## Perguntas frequentes

### O que é uma redirect chain no WordPress?

É quando uma URL redireciona para outra que também redireciona, somando dois ou mais saltos até o destino. Em vez de A ir direto para C, ela passa por B. Cada salto extra atrasa a página e enfraquece a transferência de autoridade.

### Por que cadeias de redirecionamento prejudicam o SEO?

Cada salto adiciona uma requisição, consome orçamento de rastreamento e dilui parte da autoridade transferida pelo link. O Google segue a cadeia, mas pode rastrear menos páginas e demorar mais para consolidar os sinais na URL final.

### Como descobrir se tenho redirect chains?

Rode uma varredura com Screaming Frog e filtre por Redirect Chains, ou teste uma URL com o comando curl seguindo os redirecionamentos. Se aparecer mais de um status 301 antes da resposta 200, há uma cadeia a achatar.

### Qual a diferença entre redirect chain e redirect loop?

A cadeia tem um destino final, só que com saltos demais no caminho. O loop não tem fim: as URLs apontam umas para as outras em círculo e o navegador exibe ERR_TOO_MANY_REDIRECTS. O loop derruba o acesso; a cadeia só o atrasa.

### Devo redirecionar pelo .htaccess ou por plugin?

Os dois funcionam, mas não use ambos para a mesma URL, senão criam saltos duplicados. O .htaccess é mais rápido por agir antes do WordPress carregar; o plugin é mais prático de gerenciar. Escolha um padrão e mantenha a consistência.

### Preciso atualizar os links internos depois de corrigir?

Sim. Mesmo com o redirecionamento correto, links internos apontando para a URL antiga continuam gerando um salto. Troque-os pelo destino final para o visitante e o Google chegarem direto à página, sem passar pelo redirecionamento.

**Fonte:** [Google Search Central — Redirects and Google Search](https://developers.google.com/search/docs/crawling-indexing/301-redirects)
