Como corrigir o redirecionamento 301 que não funciona no SEOPress
O que é o redirecionamento 301 do SEOPress?
O módulo de Redirections do SEOPress PRO captura a URL de origem no momento em que o WordPress carrega a página e responde com um cabeçalho 301 apontando para a URL de destino que você definiu. Por ser processado em PHP, o redirect só vale para URLs que chegam ao WordPress: se outra camada (servidor, CDN ou outro plugin) já responde antes, a regra do SEOPress nunca é avaliada e o redirecionamento parece quebrado.
Como identificar
- A URL de origem continua abrindo a página antiga (HTTP 200) em vez de redirecionar para o destino, mesmo com a regra salva em SEO -> PRO -> Redirections.
- O navegador mostra a mensagem ERR_TOO_MANY_REDIRECTS ou a página fica em loop, sinal de origem e destino apontando para a mesma URL.
- A regra existe na lista de redirects mas a coluna de status aparece desligada (Enable redirection desmarcado).
- Um redirect com expressão regular pega URLs demais ou nenhuma, porque o padrão de origem casa errado.
- Ao testar pelo terminal, o cabeçalho de resposta retorna 200 ou 302 do servidor em vez do 301 do SEOPress.
Antes de começar: Antes de editar o .htaccess ou a config do Nginx, baixe uma cópia do arquivo. Uma regra mal formada nesses arquivos pode derrubar o site inteiro com erro 500.
Como prevenir
- Cadastre cada redirect sempre como 301 com origem relativa e destino absoluto, e ative o Enable redirection da regra antes de sair da tela.
- Centralize todos os redirecionamentos em um único módulo (o do SEOPress) e desative regras equivalentes no .htaccess, no Nginx e em outros plugins de redirect.
- Use o detector de erros 404 do SEOPress e converta o 404 em redirect direto pela ferramenta, evitando digitar URLs à mão e errar o formato.
- Ao usar expressão regular, teste o padrão em uma URL real antes de salvar, já que um regex amplo pode redirecionar páginas que deveriam ficar no ar.
Causa
- O toggle Enable redirection da regra está desmarcado: o SEOPress salva a entrada mas não a aplica enquanto o interruptor individual do redirect estiver desligado.
- A URL de destino foi salva em formato relativo (apenas o caminho) quando o SEOPress exige caminho absoluto completo com protocolo e domínio, então o redirect é ignorado.
- Existe um redirect concorrente no arquivo .htaccess do Apache, na config do Nginx ou em outro plugin de redirect que responde antes do WordPress carregar, anulando a regra PHP do SEOPress.
- Origem e destino apontam para a mesma URL (ou para URLs que se redirecionam em cadeia), criando o loop que dispara ERR_TOO_MANY_REDIRECTS.
- O padrão de expressão regular na origem está com a sintaxe errada (sem a âncora inicial ou com grupo de captura inválido), fazendo a regra não casar com a URL real.
- Um plugin de cache de página entregou a versão antiga da URL antes do PHP do SEOPress rodar, então o visitante recebe a página em cache em vez do 301.
Como resolver
- Confirme que a regra está ativa: No painel, vá em SEO -> PRO -> Redirections, localize a linha do redirect e verifique se o interruptor Enable redirection da própria regra está ligado, além do toggle global do módulo no topo da página. Uma regra salva mas desligada nunca dispara.
- Corrija o formato das URLs: Deixe a URL de origem como caminho relativo (sem o domínio) e a URL de destino como endereço absoluto completo, com protocolo e domínio. Esse é o formato que o módulo de redirects exige para aplicar o 301.
Origem (relativa): /página-antiga/ Destino (absoluta): https://seusite.com.br/página-nova/ Redirect type: 301 - Teste o cabeçalho real da resposta: Pelo terminal, consulte os cabeçalhos da URL de origem e confirme que a resposta é 301 e que o Location aponta para o destino correto. Se vier 200, a regra não está casando; se vier 302 ou um redirect do servidor, há outra camada interceptando.
curl -I https://seusite.com.br/página-antiga/ - Elimine o redirect concorrente: Procure regras de redirect duplicadas no .htaccess (Apache), no bloco server do Nginx e em outros plugins de redirecionamento que cubram a mesma URL. Remova a regra duplicada e mantenha apenas a do SEOPress para acabar com o conflito.
Redirect 301 /página-antiga/ https://seusite.com.br/página-nova/ - Quebre o loop e limpe o cache: Se o sintoma for ERR_TOO_MANY_REDIRECTS, confirme que origem e destino são URLs diferentes e que nenhuma regra encadeia o destino de volta para a origem. Depois, limpe o cache do plugin de cache e do navegador para que a próxima requisição passe pelo PHP do SEOPress.
BASH
# Confirma o codigo de status e o destino real da URL de origem
curl -sI https://seusite.com.br/pagina-antiga/ | grep -iE 'HTTP/|location'
# Resposta esperada quando o 301 do SEOPress funciona:
# HTTP/2 301
# location: https://seusite.com.br/pagina-nova/
Perguntas frequentes
Por que meu redirecionamento 301 do SEOPress não funciona mesmo salvo?
Quase sempre o toggle Enable redirection da própria regra está desligado, ou a URL de destino foi salva em formato relativo quando o SEOPress exige endereço absoluto completo. Ative o interruptor e corrija o destino.
Onde fica a tela de redirecionamentos do SEOPress?
No menu do WordPress, em SEO -> PRO -> Redirections. O recurso de redirects 301 faz parte do SEOPress PRO e não está disponível na versão gratuita do plugin.
Por que aparece ERR_TOO_MANY_REDIRECTS depois que criei o redirect?
Esse erro é loop: origem e destino apontam para a mesma URL ou uma cadeia de regras devolve o destino para a origem. Confirme que origem e destino são endereços diferentes e remova regras encadeadas.
O SEOPress 301 não redireciona porque tenho regra no .htaccess?
Sim. O redirect do SEOPress roda em PHP, depois do servidor. Se o Apache ou o Nginx já responde com um redirect próprio para aquela URL, a regra do SEOPress nunca é avaliada. Remova a regra duplicada do servidor.
A URL de destino precisa ser absoluta no SEOPress?
Sim. A origem deve ser o caminho relativo e o destino deve ser a URL absoluta completa, com protocolo e domínio. Destino em formato relativo é ignorado e o redirect não dispara.
Como confirmo que o redirect está retornando 301 de verdade?
Consulte os cabeçalhos da URL de origem pelo terminal com o comando curl de inspeção. A resposta correta traz o código 301 e um cabeçalho Location apontando para a URL de destino que você cadastrou.
O cache pode fazer o redirect do SEOPress parar de funcionar?
Pode. Um plugin de cache de página pode servir a versão antiga da URL antes do PHP do SEOPress rodar. Limpe o cache do plugin e do navegador após criar ou alterar a regra de redirect.














