04 Dez 2006
Wordpress: mudança de permalinks sem perdas
O quadro é típico: você resolve fazer um blog, contrata hospedagem, instala o WordPress e começa a escrever. Um belo dia você resolve pôr o Adsense em seu site, fatura uns trocados, ouve estórias de quem ganha dinheiro blogando, e começa a se preocupar com aspectos que antes eram apenas coisas que importavam para os outros, como usabilidade, SEO e semântica.
Nesse dia você vai se preocupar, entre outras coisas, com os permalinks de seu blog, ou a URL completa de cada um dos seus artigos. E, se for como eu, vai descobrir que o padrão do WordPress (/AAAA/MM/DD/nome-do-artigo — sendo AAAA, MM e DD os algarismos que identificam ano, mês e dia em que o artigo foi publicado) não é a melhor estrutura de permalinks que você pode desejar. Porém, poderá ser tarde.
No meu caso, havia mais de 1.200 artigos já publicados e devidamente indexados pelo Google e outros mecanismos de busca, rendendo algum tráfego, que em hipótese alguma poderiam se tornar inalcançáveis. Pois quando eu trocasse os permalinks para, simplesmente, o post slug, os visitantes e os robôs de indexação empanturrar-se-iam de páginas de erro 404. Meu PageRank se perderia, e os mais de dois anos de trabalho teriam de ser recomeçados do zero.
Não sou de fugir sem ver do quê, e resolvi que esse problema poderia ser resolvido facilmente com algumas regrinhas no arquivo .htaccess, já que eu queria mesmo simplificar o permalink. Tolinho que eu fui de pensar que funcionaria: o WordPress 2 trata os permalinks de maneira muito diversa do WordPress 1.5, passando toda a URL como parâmetro para o index.php, que por sua vez faz o parsing dos parâmetros e exibe o artigo correto. Mexer com essas regras primeiro implicou não obter o efeito desejado, e em seguida bagunçar todo o funcionamento do WordPress.
(Não se preocupe se não entendeu o parágrafo acima: traduzindo para termos menos técnicos, eu quis dizer que minha idéia para fazer a troca dos permalinks sem trauma estava furada.)
Já estava prestes a desistir quando resolvi pesquisar mais um pouco no Google, e encontrei a solução para os meus problemas: um plugin chamado Dean’s Permalinks Migration.
Para utilizá-lo é muito simples: basta ativar, entrar nas opções do plugin (que já reconhece a estrutura atual dos permalinks), clicar em update, e alterar a estrutura de permalinks para aquilo que você desejar.
Seu wordpress então passará a reconhecer as duas estruturas, a antiga e a nova, e quando um visitante ou — o que é mais importante, devido à dificuldade de interação — um robô de indexação visitarem um artigo pelo permalink antigo, receberão um cabeçalho 301 (redirecionamento permanente) instruindo o navegador a ir para o novo endereço, e o robô de indexação para, além de ir para o lugar certo, atualizar os seus registros, de forma a substituir a URL antiga pela nova.
Quer ver como funciona? Então clique aqui: Burn, Baby, Burn!
Caso não tenha percebido, é um link para um artigo em meu blog pessoal. Observe que o permalink ainda é no formato antigo, com a informação da data. Mas quando clicar observe a barra de endereços do navegador, e poderá notar que as informações desnecessárias sumiram, mas você, ainda assim, foi levado para o artigo correto.
Espero que a dica possa ser de utilidade a quem queira dar uma enxugada em algum de seus blogs.



Janio, esse artigo será de grande utilidade pra muita gente. Eu mesmo pretendo mudanças no meu blog. Salvarei o link deste artigo nos meus favoritos.
Grande abraço e cada vez mais sucesso!
[Reply]
Obrigado, Thalis.
Se o artigo for útil para uma única pessoa além de mim já terá valido a pena.
Grande abraço, e considere seus votos devolvidos em dobro.
[Reply]
Maravilha!
Vou usar quando passar meu blog da DH para o PH!
Abraço!
[Reply]
[...] Ontem, achei, no Lucrando na Rede, a solução para os meus problemas, um plugin que redireciona a regra antiga para a nova, desta forma, você pode alterar a regra, sem perder indexação ou qualquer coisa do gênero. [...]
Era a luz que faltava para que eu mude minhas URLS.
Agora não tem mais desculpa
Muito Obrigado Janio.
[Reply]
Jânio, você pode me ajudar ?
No meu caso, o meu formato de permalink é:
http://www.arcanjo.org/blog/?p=N
Onde N = número da página.
Sabe como ficaria este “Old Permalink Structure” ?
[Reply]
Só para esclarecer, eu deixei em branco e cliquei em Update, depois fui lá e mudei o meu Permalink para custom, da seguinte forma:
/%postname%/
Porem, todo artigo que eu entro eu recebo um not found
então eu voltei com a opção antiga.
Qualquer ajuda é bem vinda.
[Reply]
Rafael, posso estar enganado, mas pelo que percebo você nem precisa ainda deste plugin. Desative-o e experimente colocar a estrutura de permalinks que você deseja (/%postname%/). Se eu estiver certo, você passará a contar com as URLs amigáveis E com as URLs tradicionais.
O seu é o único caso em que o plugin em questão não se faz necessário.
[Reply]
Verdade, Jânio.
Fiz o teste e ainda consigo entrar pela forma tradicional, com o número.
Só que, por algum motivo, eu recebo um ” not found ” a cada post que eu entrei com o novo modo, que ficou assim:
Era:
http://www.arcanjo.org/blog/?p=70
Foi para
http://www.arcanjo.org/blog/disponibilize-seu-feed-completo/
Só que quando eu clico em um link com a forma atualizada eu recebo o not found
Not Found
The requested URL /blog/disponibilize-seu-feed-completo/ was not found on this server.
Desculpa enviar esta mensagem aqui, acho que já está meio offtopic, não é ? se sim, sinta-se a vontade para falar, ok ?
Abraços e desculpe o incomodo.
[Reply]
Já achei meu problema:
“Terminada essa etapa de configuração, clique no botão Update Permalink Structure ». Se seu .htaccess estiver acessível, o próprio sistema se encarrega de escrever as regras do permalink nele; caso contrário, ele mostra um box na parte inferior da tela, com as regras, e cabe a você copiá-las para o .htaccess, manualmente. Este passo é imprescindível para que a dica funcione! Sem ele, todos os links do WordPress darão erro 404 (página não-encontrada).”
Encontrado no BlogAjuda.
Vou tentar fazer, visto que preciso do administrador do sistema onde meu site está hospedado para fazer isto para mim.
Obrigado Janio!
[Reply]
Rafael, não está off-topic.
Só que não estou entendendo o que possa estar acontecendo.
Aliás, isso acontece pra mim direto quando uso um plugin para manter um post sempre na primeira página (Adhesive, se não me engano). Experimente desativar seus plugins todos para ver se o problema persiste. Se resolver a URL, vá ativando um a um até achar o culpado.
Qualquer coisa me adicione no MSN: janiosarmento AT hotmail DOT com.
[Reply]
Rafael, eu acho que você tem que fazer alteração no arquico htaccess:
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
[Reply]
Olá Janio e Thalis
realmente era isto mesmo, acabei de ativar o mod_rewrite no blog e está funcionando que é uma maravilha
Obrigado pelas dicas!
[Reply]
Janio, acabei de fazer a mudança em meu site com sucesso. Seu blog tem sido muito útil!
Alterei para /%category%/%postname%
Em termos de SEO, essa é a melhor opção?
Abraço,
Guilherme
http://www.papodehomem.com.br
[Reply]
Guilherme.
Dizem que esta é a melhor opção, sim. Mas, particularmente, não estou muito preocupado com SEO. Mudei a estrutura de permalinks dos meus blogs por causa dos leitores e principalmente por minha própria causa, para simplificar os links.
Que bom que meu blog está sendo útil!

E gostei do seu site. Vou separar umas crônicas que escrevi há algum tempo e te enviar, de repente posso contribuir de vez em quando, se houver interesse dos editores e afinidade de assuntos, e tudo mais.
Abração!
[Reply]
Jânio, acabei de te mandar um email falando sobre como você pode contribuir! Temos espaço para convidados especiais no PapodeHomem. =D
Abração,
Guilherme
[Reply]
Janio, no meu caso além de migrar os permalinks, eu migrarei meu blog a um subdiretório (De nerdgames.net para blog.nerdgames.net e nerdgames.net/blog) .
Você sabe como redirecionar os artigos que estavam na pasta raiz agora para o subdomínio?
Abraços!
[Reply]
Excelente essa matéria, parabéns!
[Reply]
Excelente. Só assim conseguia colocar url-amigáveis e sem perder os links dos meus artigos já indexados pelo Google.
[Reply]
O meu problema era o /index.php/ que aparecia junto ao endereço quando mudava a estrutura de permalinks… e eu acho feio, rs.
E se eu colocava só /%postname%/ não funcionava… as páginas e artigos não abriam.
Mudei então meu .htaccess e funcionou corretamente.
Tá aí a dica pra quem tá com o mesmo probleminha!
[Reply]
[...] Como Migrar Seu Blog Para Outro Servidor e evite dores de cabeça. Conversando com o JÂNIO, sobre mudança de permalink sem perda de tráfego, ele me deu uma ótima solução para outro problema, que era redirecionar o trafego do blog velho [...]
Alguém sabe se é possível migrar todo o conteúdo de um blogspot para o wordpress?
[Reply]
Blog Dicas, o WordPress dispõe de um módulo de importação do Blogspot, mas não sei se realmente funciona.
Contudo, eu não importaria um blog por um dos dois motivos abaixo.
Se for um blog pequeno, vale a pena fazer CTRL-C, CTRL-V dos artigos, pois é certo que assim funciona.
Se for um blog grande, eu não faria nem isso, pois o novo blog pode ser injustamente penalizado por conteúdo duplicado (é como se você estivesse plagiando a si mesmo). O que eu faria seria alterar o template do blog no Blogspot, incluindo um link em todas as páginas para o novo blog, explicando rapidamente a mudança.
[Reply]
“Problema com permalinks - você ainda vai ter o seu!” Pra você ter uma idéia, tinha salvado esse artigo no Favoritos. Acho que a melhor saída vai ser mesmo simplificar o permalink e rezar pra esse plugin fazer o resto - e torcer para não ser penalizada pelos links duplicados no Google… mas acho que eles só vão aparecer por um tempo, né?
Vi uma outra solução na lista, via .htacess, mas pareceu grego pra mim.
[Reply]
Lu.
As duas funcionam, mas você tem que simplificar sua estrutura de permalinks; se for para complicar, acrescentar elementos, as chances de problemas aumentam.
Acredite: até em termos de SEO é melhor uma estrutura bem simples de permalinks.
Se o plugin não funcionar pra você, me aciona que eu te dou uma mão para mexer no .htaccess.
[Reply]
Olá Janio,
Estou começando um blog agora e estou com problema. Já procurei em todos os lugares e não encontrei a solução.
É o seguinte: Mandei me blog para o servidor e fui mudar o permalink para
/%category%/%postname%, mas quando eu clico no artigo - aquele que vem como padrão no Wordpress - dá o erro 404. Creio que seja um problema no .htaccess, pois não existe nenhuma regra definida nele. Como não entendo nada de .htaccess, queria saber se tenho que implementar alguma regra nova nele?
Obrigado!
[Reply]
estou precisando de uma ajuda sua. O meu blog está hospedado dentro de uma pasta e preciso fazer que o visitante ao acessar o endereço principal, automaticamente abra o conteúdo da pasta, que é o blog.
Pergunto isso porque estou precisando fazer isso no meu site não consigo de jeito nenhum.
aguardo contato,
obrigado
Rodrigo.
[Reply]
[...] Também vou alterar o sistema de permalinks (vou usar um plugin e colocar um sem a data, para facilitar o SEO, similar aos links internos da Cubagames. Devo fazer isso depois, e farei sem perder a referência dos links anteriores. [...]
Para a maioria das pessoas, esse plugin funciona realmente. O problema aparece quando você usa um plugin chamado 404 Notifier que te informa dos erros 404 (página não encontrada) que seu blog gerou.
Após ver essa dica nesse artigo e implementar o plugin no meu blog, descobri (através do 404 Notifyer) que os links antigos + /feed/ ou /trackback/ não estavam mais funcionando. Ou seja… Se a estrutura antiga é http://www.meuendereco.com/ano/mes/dia/postname/, após mudar a estrutura e acessar http://www.meuendereco.com/ano/mes/dia/postname/feed/, NÃO FUNCIONA.
Esse é um problema que considero grave… Façam os testes!
No meu blog, criei um artigo com a solução para o problema.
[Reply]
Pessoal, será que alguém me ajuda?
Eu criei o blog no serviço wordpress.com, e já tá tudo indexado pelo google.
Depois resolvi instalar o wordpress no servidor, e já exportei os posts do wordpress.com e importei para o blog no meu servidor; mas o problema é:
- como faço pra redirecionar com 301 as páginas dos posts do wordpress.com (que ainda estão no ar e, portanto, duplicadas) para as do blog no meu servidor?
Brigadinha desde já!
[Reply]
Lyane, sinto muito dizer, mas não há o que fazer.
Talvez o serviço pago deles conte com redirecionamento, mas no serviço gratuito não há nada a ser feito, porque você só tem acesso a escrever em seu próprio blog, mais nada.
[Reply]
Janio, obrigada pela informação.
Pelo menos agora sei que posso parar de buscar uma solução que não existe, e vou focar em cuidar do blog no servidor e logo excluir todas as páginas do wordpress.com pra acabar com o conteúdo duplicado (que já vi que está prejudicando a indexação do blog hospedado no server).
Aproveito pra elogiar teu post e agradecer pela dica do plugin. Já baixei, instalei, e até indiquei pra umas amigas que sei que precisam arrumar seus permalinks…
Obrigada!
[Reply]
[...] original). O responsável pela mágica é um plugin que descrevo com mais detalhes no artigo Mudança de Permalinks sem Perdas (no Lucrando na [...]
E eu já estava conformado em ter meus permalinks da forma que estão! Parabéns por compartilhar esse excelente plugin…
Abraço!
[Reply]