Regex, no dia a dia do WordPress, não é aula de teoria. É o jeito de não escrever mil redirecionamentos na mão. Eu gravei a dica por dois casos reais: páginas /amp que eu não queria perder no Google, e uma palavra errada no slug de um monte de artigo — “animes” no plural em idioma que não usa esse plural. Muda o slug no banco, o Google ainda pede a URL antiga, e alguém tem que costurar as duas.
No Rank Math (que na época já trazia redirecionamento, ao contrário do Yoast gratuito), você marca a origem como regex, captura o pedaço variável entre parênteses e reutiliza no destino com $1, $2. Na Cloudflare Page Rules o coringa é * e o destino usa o mesmo $1. Três regras no plano grátis de 2021: eu já tinha gasto as minhas com HTTPS, HTML e cache. Hoje Redirect Rules existem e cabem mais; o vídeo ensina o Page Rules.
- Quando
- Padrão de URL: AMP, palavra no slug, lote
- WordPress
- Rank Math, origem em regex, destino com $1
- Cloudflare 2021
- Page Rules, * e $1; 3 regras no grátis
Dois motivos para não redirecionar URL por URL
Primeiro: você tira o AMP do site. As URLs antigas ainda estão no índice. Sem 301, a visita cai em 404 e a posição que existia naquela endereço se perde. Um redirecionamento por artigo não escala. Um padrão que pega “tudo que vinha antes do /amp” e manda para a página limpa, sim.
Segundo: você achou uma palavra ruim no slug — no meu exemplo, “animes” no alemão, onde o plural não é esse. Abre a tabela de posts, troca o slug em lote, língua japonesa no lugar de idioma japonês, o que for. O Google continua pedindo a URL velha. Sem regex, você escreve uma regra para cada post. Com regex, você descreve o pedaço que muda e o pedaço que permanece.
Expressão regular, no texto da aula, é isso: o padrão pega o que vem antes, depois ou no meio da palavra, e o destino cola o que foi capturado. Não precisa ser igualzinho, caractere por caractere, em cada linha.
Rank Math: parênteses na origem, cifrão no destino
Eu usei o Rank Math. Naquele momento eu chamava de um dos melhores plugins de SEO, e o redirecionamento já vinha incluso. Yoast, na versão que eu tinha na cabeça, empurrava isso para o Pro. Se o seu SEO plugin não tem a tela de Redirects, outro plugin só de 301 resolve — ou você sobe a regra para a Cloudflare e tira carga do PHP.
A mecânica no Rank Math: origem em modo Regex, destino com as variáveis de captura. Tudo que entra no primeiro par de parênteses vira $1. O segundo vira $2. A documentação oficial usa o mesmo desenho, por exemplo `^wordpress-tutorials/(.*)` para `https://example.com/$1`. O chapéu `^` ancora o começo. O cifrão no padrão ancora o fim. Sem âncora, a regra pega URL que você não planejou.
No exemplo do plural “animes”: uma regra que pega a palavra no fim do slug, outra no começo, outra no meio. Três padrões, não três mil posts. Cada um devolve o resto da URL no $1 (e no $2, se você capturou os dois lados). Eu errei uma fala no vídeo e corrigi na hora — o que importa é o mapeamento: o que está entre parênteses na origem é o que o cifrão cola no destino.
- No WordPress, abra Rank Math > Redirecionamentos (ou o plugin de 301 que você usa).
- Crie uma regra, tipo 301, e marque a origem como Regex — não como “exato”.
- Na origem, descreva o padrão. Exemplo de AMP: `(.*)/amp/?$`. Exemplo de pasta: `^animes/(.*)`.
- No destino, use a URL nova com `$1` no lugar do pedaço capturado. Se houver dois grupos, `$1` e `$2` na ordem dos parênteses.
- Salve e teste três URLs: uma que deve redirecionar, uma que não deve, e uma com barra no fim. Regex guloso pega o que você não viu na primeira tentativa.
- Só então rode o lote no banco de slugs. Ordem inversa — mudar slug antes da regra — deixa um buraco no Google até a regra existir.
Cloudflare Page Rules: asterisco no lugar do parênteses
Se você não tem o Rank Math Pro, ou não quer que o PHP do WordPress processe o 301, a Cloudflare faz o mesmo trabalho na frente. Em 2021 o caminho era Page Rules. O resultado no destino continua $1. O coringa na origem é outro: um asterisco, não um grupo de regex completo. `example.com/*/amp` e destino `https://example.com/$1` é o desenho. A documentação de wildcard matching descreve exatamente isso: cada `*` vira $1, $2, na ordem.
Eu recomendei pôr o site na Cloudflare mesmo quem ainda não usava: menos carga no servidor, página mais rápida. Redirecionar AMP ou slug na borda é um bônus. O 301 permanente era o tipo que eu escolhia para URL que não ia voltar.
Limite da época, e eu já tinha estourado: plano grátis com três Page Rules. As minhas estavam ocupadas — forçar HTML, ignorar query string no cache de HTML, e mandar www/HTTPS para um canônico, porque eu não confiava só no servidor para não errar o SEO. Se as três estão cheias, ou você apaga uma, ou sobe de plano, ou faz o regex no WordPress.
- No painel da Cloudflare, o caminho de 2021 era Regras > Page Rules. Hoje a Cloudflare empurra Redirect Rules; Page Rules ainda existe, mas está depreciado.
- Crie uma regra com a URL usando `*` no pedaço variável, por exemplo `exemplo.com/*/amp*` ou o padrão AMP que você copiar do próprio tutorial.
- Ação: Encaminhar URL, 301, destino com `$1` (e `$2` se houver dois asteriscos). Não cite `$2` se só existe um `*` — isso a Cloudflare documenta como 500.
- Ative e teste no modo anônimo. Confira se a regra mais específica está acima: Page Rules aplica a primeira que casa.
- Se o plano grátis já tem três regras, não invente a quarta. Mova o 301 de slug para o Rank Math e deixe a borda para HTTPS e cache.
O que mudou depois do vídeo — sem apagar a aula
Page Rules no grátis continua com três vagas na tabela oficial. Redirect Rules e Bulk Redirects, lançados depois, cabem bem mais URL. Se você está configurando agora, eu olharia Redirect Rules primeiro e usaria o vídeo como a lógica: coringa, $1, 301, não como o único botão da interface.
Regex no Rank Math não ficou velho. Continua sendo o jeito de pegar padrão dentro do WordPress, inclusive quando a Cloudflare não está no meio. Cuidado com loop: origem que também casa com o destino. Cuidado com query string que você quer preservar e a regra engole. Cuidado com AMP em URL que não era AMP — teste a home, o feed, o wp-admin.
O tracinho que aparecia num tutorial de AMP que eu copiei, eu disse no vídeo que não sabia se era necessário. Era honesto. Copiar regex de blog sem três URLs de teste é o jeito de redirecionar o site inteiro para o lugar errado. A regra curta parece esperta. O log de 404 no dia seguinte conta a história.
Na sequência
- Listar três URLs reais de origem e o destino esperado, antes de escrever o padrão.
- No Rank Math, ligar o modo Regex e usar `$1` só para grupo que existe.
- Na Cloudflare, usar `*` no Page Rules (ou o equivalente em Redirect Rules) e 301.
- Não estourar as 3 Page Rules do plano grátis com regra que o WordPress já faria.
- Testar um caso que NÃO deve redirecionar, para pegar regex guloso.
Onde isso quebra
Mudar todos os slugs no banco e só depois lembrar do 301.
Usar `$2` com um único `*` — a Cloudflare responde 500.
Deixar a regra de AMP pegar wp-admin, feed ou a home.
Perguntas frequentes
Rank Math gratuito redireciona com regex?
Na época da gravação o Rank Math já trazia a tela de redirecionamento, e o Yoast gratuito não. Confira o plano atual do plugin: nome de recurso muda, a ideia de origem em regex e destino com $1 não.
Page Rules ou Redirect Rules?
O vídeo é Page Rules. A Cloudflare depreciou esse produto e empurra Redirect Rules, com limite bem maior. A lógica do coringa e do $1 continua na documentação de wildcard.
Preciso de uma regra por posição da palavra no slug?
No exemplo do “animes”, sim: uma para a palavra no fim, uma no começo, uma no meio — ou um padrão único bem âncorado se você conseguir escrever. Três regras ainda ganham de três mil linhas.
301 na Cloudflare é melhor que no WordPress?
Na borda você poupa PHP e o redirecionamento responde mesmo se o WordPress cair. No plugin, você edita junto com o SEO. Eu usei os dois, conforme a cota de Page Rules.